]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkapplication.h
Ensure the insertion handle stays on fake events (eg from IM)
[~andy/gtk] / gtk / gtkapplication.h
index a4ff6c5d0ad3ac5515d2b566ab79907b6a1dec78..7a6f8c2d20dc81ade2a7fd15914537e127667ca2 100644 (file)
  * 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 <http://www.gnu.org/licenses/>.
  *
  * Author: Ryan Lortie <desrt@desrt.ca>
  */
 
-#if defined(GTK_DISABLE_SINGLE_INCLUDES) && !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
-#error "Only <gtk/gtk.h> can be included directly."
-#endif
-
 #ifndef __GTK_APPLICATION_H__
 #define __GTK_APPLICATION_H__
 
-#include <gtk/gtkactiongroup.h>
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
 #include <gtk/gtkwidget.h>
 #include <gio/gio.h>
 
@@ -55,17 +52,75 @@ struct _GtkApplicationClass
 {
   GApplicationClass parent_class;
 
-  /*< vfuncs >*/
-  GtkWindow *(* create_window) (GtkApplication *application);
+  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       *application_id,
-                                                                         GApplicationFlags  flags);
+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