]> 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 c975f08af1b3825ccd40c67c77a786046ed1cd64..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__
 
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
 #include <gtk/gtkwidget.h>
-#include <gtk/gtkmenu.h>
 #include <gio/gio.h>
 
 G_BEGIN_DECLS
@@ -61,22 +58,69 @@ struct _GtkApplicationClass
                           GtkWindow      *window);
 
   /*< private >*/
-  gpointer padding[14];
+  gpointer padding[12];
 };
 
-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);
-
+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