]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkuimanager.h
Improve wording. String change! (#355128, David Lodge)
[~andy/gtk] / gtk / gtkuimanager.h
index ee9013f0639d015f970525b889f2f0f9acf42a42..7e1e6ead68e5eb265e6bdcf9f619b4b26431355f 100644 (file)
 #include <gtk/gtkaction.h>
 #include <gtk/gtkactiongroup.h>
 
+G_BEGIN_DECLS
+
 #define GTK_TYPE_UI_MANAGER            (gtk_ui_manager_get_type ())
 #define GTK_UI_MANAGER(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_UI_MANAGER, GtkUIManager))
 #define GTK_UI_MANAGER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_UI_MANAGER, GtkUIManagerClass))
 #define GTK_IS_UI_MANAGER(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_UI_MANAGER))
-#define GTK_IS_UI_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), GTK_TYPE_UI_MANAGER))
+#define GTK_IS_UI_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_UI_MANAGER))
 #define GTK_UI_MANAGER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), GTK_TYPE_UI_MANAGER, GtkUIManagerClass))
 
 typedef struct _GtkUIManager      GtkUIManager;
@@ -61,31 +63,51 @@ struct _GtkUIManager {
 struct _GtkUIManagerClass {
   GObjectClass parent_class;
 
+  /* Signals */
   void (* add_widget)       (GtkUIManager *merge, 
                              GtkWidget    *widget);
   void (* actions_changed)  (GtkUIManager *merge);
+  void (* connect_proxy)    (GtkUIManager *merge,
+                            GtkAction    *action,
+                            GtkWidget    *proxy);
+  void (* disconnect_proxy) (GtkUIManager *merge,
+                            GtkAction    *action,
+                            GtkWidget    *proxy);
+  void (* pre_activate)     (GtkUIManager *merge,
+                            GtkAction    *action);
+  void (* post_activate)    (GtkUIManager *merge,
+                            GtkAction    *action);
+
+  /* Virtual functions */
+  GtkWidget * (* get_widget) (GtkUIManager *manager,
+                              const gchar  *path);
+  GtkAction * (* get_action) (GtkUIManager *manager,
+                              const gchar  *path);
 
   /* Padding for future expansion */
   void (*_gtk_reserved1) (void);
   void (*_gtk_reserved2) (void);
-  void (*_gtk_reserved3) (void);
-  void (*_gtk_reserved4) (void);
 };
 
 typedef enum {
-  GTK_UI_MANAGER_AUTO,
-  GTK_UI_MANAGER_MENUBAR,
-  GTK_UI_MANAGER_MENU,
-  GTK_UI_MANAGER_TOOLBAR,
-  GTK_UI_MANAGER_PLACEHOLDER,
-  GTK_UI_MANAGER_POPUP,
-  GTK_UI_MANAGER_MENUITEM,
-  GTK_UI_MANAGER_TOOLITEM,
-  GTK_UI_MANAGER_SEPARATOR,
-  GTK_UI_MANAGER_ACCELERATOR
+  GTK_UI_MANAGER_AUTO         = 0,
+  GTK_UI_MANAGER_MENUBAR      = 1 << 0,
+  GTK_UI_MANAGER_MENU         = 1 << 1,
+  GTK_UI_MANAGER_TOOLBAR      = 1 << 2,
+  GTK_UI_MANAGER_PLACEHOLDER  = 1 << 3,
+  GTK_UI_MANAGER_POPUP        = 1 << 4,
+  GTK_UI_MANAGER_MENUITEM     = 1 << 5,
+  GTK_UI_MANAGER_TOOLITEM     = 1 << 6,
+  GTK_UI_MANAGER_SEPARATOR    = 1 << 7,
+  GTK_UI_MANAGER_ACCELERATOR  = 1 << 8
 } GtkUIManagerItemType;
 
-GType          gtk_ui_manager_get_type            (void);
+#ifdef G_OS_WIN32
+/* Reserve old name for DLL ABI backward compatibility */
+#define gtk_ui_manager_add_ui_from_file gtk_ui_manager_add_ui_from_file_utf8
+#endif
+
+GType          gtk_ui_manager_get_type            (void) G_GNUC_CONST;
 GtkUIManager  *gtk_ui_manager_new                 (void);
 void           gtk_ui_manager_set_add_tearoffs    (GtkUIManager          *self,
                                                   gboolean               add_tearoffs);
@@ -99,6 +121,8 @@ GList         *gtk_ui_manager_get_action_groups   (GtkUIManager          *self);
 GtkAccelGroup *gtk_ui_manager_get_accel_group     (GtkUIManager          *self);
 GtkWidget     *gtk_ui_manager_get_widget          (GtkUIManager          *self,
                                                   const gchar           *path);
+GSList        *gtk_ui_manager_get_toplevels       (GtkUIManager          *self,
+                                                  GtkUIManagerItemType   types);
 GtkAction     *gtk_ui_manager_get_action          (GtkUIManager          *self,
                                                   const gchar           *path);
 guint          gtk_ui_manager_add_ui_from_string  (GtkUIManager          *self,
@@ -121,6 +145,6 @@ gchar         *gtk_ui_manager_get_ui              (GtkUIManager          *self);
 void           gtk_ui_manager_ensure_update       (GtkUIManager          *self);
 guint          gtk_ui_manager_new_merge_id        (GtkUIManager          *self);
 
-
+G_END_DECLS
 
 #endif /* __GTK_UI_MANAGER_H__ */