]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkapplication.h
GtkBubbleWindow: allocate CSS borders and paddings
[~andy/gtk] / gtk / gtkapplication.h
index 929cb29323d71dfe5a1ea9602e11e0485c1d1694..7a6f8c2d20dc81ade2a7fd15914537e127667ca2 100644 (file)
@@ -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 <http://www.gnu.org/licenses/>.
  *
- * Author: Colin Walters <walters@verbum.org>
+ * Author: Ryan Lortie <desrt@desrt.ca>
  */
 
-/*
- * 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 <gtk/gtk.h> can be included directly."
 #endif
 
-#ifndef __GTK_APPLICATION_H__
-#define __GTK_APPLICATION_H__
-
+#include <gtk/gtkwidget.h>
 #include <gio/gio.h>
-#include <gtk/gtkaction.h>
-#include <gtk/gtkactiongroup.h>
-#include <gtk/gtkwindow.h>
 
 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 *application);
-  void       (* activated)     (GtkApplication *application,
-                                GVariant       *args);
-  void       (* action)        (GtkApplication *application,
-                                const gchar    *action_name);
-  gboolean   (* quit)          (GtkApplication *application);
-                              
-
-  /* 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