X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkapplication.h;h=7a6f8c2d20dc81ade2a7fd15914537e127667ca2;hb=17d3775555888151780fa404242e734a8e7f6b21;hp=a6b2e8bfc6baa21c701d91653e32e0d8107ab760;hpb=27bc88f7c2269ac750504c7fe6c7c02c43183149;p=~andy%2Fgtk diff --git a/gtk/gtkapplication.h b/gtk/gtkapplication.h index a6b2e8bfc..7a6f8c2d2 100644 --- a/gtk/gtkapplication.h +++ b/gtk/gtkapplication.h @@ -1,43 +1,31 @@ -/* GTK - The GIMP Toolkit - * - * Copyright (C) 2010 Red Hat, Inc. +/* + * Copyright © 2010 Codethink Limited * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. + * version 2 of the licence, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * License along with this library. If not, see . * - * Author: Colin Walters + * Author: Ryan Lortie */ -/* - * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ +#ifndef __GTK_APPLICATION_H__ +#define __GTK_APPLICATION_H__ -#if defined(GTK_DISABLE_SINGLE_INCLUDES) && !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) +#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) #error "Only can be included directly." #endif -#ifndef __GTK_APPLICATION_H__ -#define __GTK_APPLICATION_H__ - +#include #include -#include -#include -#include G_BEGIN_DECLS @@ -57,7 +45,6 @@ struct _GtkApplication GApplication parent; /*< private >*/ - GtkApplicationPrivate *priv; }; @@ -65,41 +52,75 @@ struct _GtkApplicationClass { GApplicationClass parent_class; - /*< vfuncs >*/ - GtkWindow *(* create_window) (GtkApplication *app); - void (* activated) (GtkApplication *app, - GVariant *args); - void (* action) (GtkApplication *app, - const gchar *action_name); - gboolean (* quit) (GtkApplication *app); - - - /* Padding for future expansion */ - void (*_gtk_reserved1) (void); - void (*_gtk_reserved2) (void); - void (*_gtk_reserved3) (void); - void (*_gtk_reserved4) (void); - void (*_gtk_reserved5) (void); - void (*_gtk_reserved6) (void); - void (*_gtk_reserved7) (void); - void (*_gtk_reserved8) (void); - void (*_gtk_reserved9) (void); - void (*_gtk_reserved10) (void); + void (*window_added) (GtkApplication *application, + GtkWindow *window); + void (*window_removed) (GtkApplication *application, + GtkWindow *window); + + /*< private >*/ + gpointer padding[12]; }; -GType gtk_application_get_type (void) G_GNUC_CONST; -GtkApplication* gtk_application_new (const gchar *appid, - gint *argc, - gchar ***argv); -void gtk_application_set_action_group (GtkApplication *app, - GtkActionGroup *group); -GtkWindow * gtk_application_create_window (GtkApplication *app); -GtkWindow * gtk_application_get_window (GtkApplication *app); -G_CONST_RETURN GSList * gtk_application_get_windows (GtkApplication *app); -void gtk_application_add_window (GtkApplication *app, - GtkWindow *window); -void gtk_application_run (GtkApplication *app); -void gtk_application_quit (GtkApplication *app); +GType gtk_application_get_type (void) G_GNUC_CONST; + +GtkApplication * gtk_application_new (const gchar *application_id, + GApplicationFlags flags); + +void gtk_application_add_window (GtkApplication *application, + GtkWindow *window); + +void gtk_application_remove_window (GtkApplication *application, + GtkWindow *window); +GList * gtk_application_get_windows (GtkApplication *application); + +GDK_AVAILABLE_IN_3_4 +GMenuModel * gtk_application_get_app_menu (GtkApplication *application); +GDK_AVAILABLE_IN_3_4 +void gtk_application_set_app_menu (GtkApplication *application, + GMenuModel *app_menu); + +GDK_AVAILABLE_IN_3_4 +GMenuModel * gtk_application_get_menubar (GtkApplication *application); +GDK_AVAILABLE_IN_3_4 +void gtk_application_set_menubar (GtkApplication *application, + GMenuModel *menubar); + +GDK_AVAILABLE_IN_3_4 +void gtk_application_add_accelerator (GtkApplication *application, + const gchar *accelerator, + const gchar *action_name, + GVariant *parameter); +GDK_AVAILABLE_IN_3_4 +void gtk_application_remove_accelerator (GtkApplication *application, + const gchar *action_name, + GVariant *parameter); + +typedef enum +{ + GTK_APPLICATION_INHIBIT_LOGOUT = (1 << 0), + GTK_APPLICATION_INHIBIT_SWITCH = (1 << 1), + GTK_APPLICATION_INHIBIT_SUSPEND = (1 << 2), + GTK_APPLICATION_INHIBIT_IDLE = (1 << 3) +} GtkApplicationInhibitFlags; + +GDK_AVAILABLE_IN_3_4 +guint gtk_application_inhibit (GtkApplication *application, + GtkWindow *window, + GtkApplicationInhibitFlags flags, + const gchar *reason); +GDK_AVAILABLE_IN_3_4 +void gtk_application_uninhibit (GtkApplication *application, + guint cookie); +GDK_AVAILABLE_IN_3_4 +gboolean gtk_application_is_inhibited (GtkApplication *application, + GtkApplicationInhibitFlags flags); + +GDK_AVAILABLE_IN_3_6 +GtkWindow * gtk_application_get_window_by_id (GtkApplication *application, + guint id); + +GDK_AVAILABLE_IN_3_6 +GtkWindow * gtk_application_get_active_window (GtkApplication *application); G_END_DECLS