]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkitemfactory.h
Add Sections 4 & 5.
[~andy/gtk] / gtk / gtkitemfactory.h
index a1b272ee2d537b211840f1309956bbaff2c17b40..1b7c9ada2b56f942381584c7879e435874aa19ca 100644 (file)
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.
  */
+
+/*
+ * Modified by the GTK+ Team and others 1997-1999.  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_ITEM_FACTORY_H__
 #define        __GTK_ITEM_FACTORY_H__
 
 
 #include <gtk/gtkwidget.h>
+#include <gtk/gtkmenufactory.h>        /* for GtkMenuEntry */
+#include <gtk/gtkbindings.h>   /* for GtkPatternSpec */
+
 
 #ifdef __cplusplus
 extern "C" {
-#pragma }
 #endif /* __cplusplus */
 
 
 typedef void   (*GtkPrintFunc)            (gpointer             func_data,
-                                           gchar               *str);
+                                           const gchar         *str);
+typedef gchar * (*GtkTranslateFunc)       (const gchar         *path,
+                                           gpointer             func_data);
 typedef        void    (*GtkItemFactoryCallback)  ();
 typedef        void    (*GtkItemFactoryCallback1) (gpointer             callback_data,
                                            guint                callback_action,
                                            GtkWidget           *widget);
-typedef        void    (*GtkItemFactoryCallback2) (GtkWidget           *widget,
-                                           gpointer             callback_data,
-                                           guint                callback_action);
 
-#define        GTK_TYPE_ITEM_FACTORY            (gtk_item_factory_get_type ())
-#define        GTK_ITEM_FACTORY(object)         (GTK_CHECK_CAST (object, GTK_TYPE_ITEM_FACTORY, GtkItemFactory))
-#define        GTK_ITEM_FACTORY_CLASS(klass)    (GTK_CHECK_CLASS_CAST (klass, GTK_TYPE_ITEM_FACTORY, GtkItemFactoryClass))
-#define        GTK_IS_ITEM_FACTORY(object)      (GTK_CHECK_TYPE (object, GTK_TYPE_ITEM_FACTORY))
-#define        GTK_IS_ITEM_FACTORY_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_ITEM_FACTORY))
+#define GTK_TYPE_ITEM_FACTORY            (gtk_item_factory_get_type ())
+#define GTK_ITEM_FACTORY(object)         (GTK_CHECK_CAST ((object), GTK_TYPE_ITEM_FACTORY, GtkItemFactory))
+#define GTK_ITEM_FACTORY_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_ITEM_FACTORY, GtkItemFactoryClass))
+#define GTK_IS_ITEM_FACTORY(object)      (GTK_CHECK_TYPE ((object), GTK_TYPE_ITEM_FACTORY))
+#define GTK_IS_ITEM_FACTORY_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_ITEM_FACTORY))
+#define GTK_ITEM_FACTORY_GET_CLASS(obj)  (GTK_CHECK_GET_CLASS ((obj), GTK_TYPE_ITEM_FACTORY, GtkItemFactoryClass))
 
 
 typedef        struct  _GtkItemFactory                 GtkItemFactory;
@@ -60,7 +70,11 @@ struct _GtkItemFactory
   gchar                        *path;
   GtkAccelGroup                *accel_group;
   GtkWidget            *widget;
-  GSList               *widgets_by_action;
+  GSList               *items;
+
+  GtkTranslateFunc       translate_func;
+  gpointer               translate_data;
+  GtkDestroyNotify       translate_notify;   
 };
 
 struct _GtkItemFactoryClass
@@ -70,6 +84,8 @@ struct _GtkItemFactoryClass
   gchar                        *cpair_comment_single;
 
   GHashTable           *item_ht;
+
+  gpointer               dummy;
 };
 
 struct _GtkItemFactoryEntry
@@ -103,7 +119,7 @@ struct _GtkItemFactoryItem
   guint  accelerator_mods;
   guint         modified : 1;
   guint  in_propagation : 1;
-  gchar *item_type;
+  gchar *dummy;
 
   GSList *widgets;
 };
@@ -111,8 +127,8 @@ struct _GtkItemFactoryItem
 
 GtkType                gtk_item_factory_get_type           (void);
 
-/* `container_type' must be of gtk_menu_bar_get_type (), gtk_menu_get_type (),
- * or gtk_option_menu_get_type ().
+/* `container_type' must be of GTK_TYPE_MENU_BAR, GTK_TYPE_MENU,
+ * or GTK_TYPE_OPTION_MENU.
  */
 GtkItemFactory*        gtk_item_factory_new       (GtkType              container_type,
                                            const gchar         *path,
@@ -127,22 +143,37 @@ void              gtk_item_factory_construct (GtkItemFactory      *ifactory,
 void           gtk_item_factory_parse_rc           (const gchar    *file_name);
 void           gtk_item_factory_parse_rc_string    (const gchar    *rc_string);
 void           gtk_item_factory_parse_rc_scanner   (GScanner       *scanner);
+void           gtk_item_factory_add_foreign        (GtkWidget      *accel_widget,
+                                                    const gchar    *full_path,
+                                                    GtkAccelGroup  *accel_group,
+                                                    guint           keyval,
+                                                    GdkModifierType modifiers);
      
 GtkItemFactory*        gtk_item_factory_from_widget        (GtkWidget        *widget);
 gchar*         gtk_item_factory_path_from_widget   (GtkWidget        *widget);
 
-GtkWidget*     gtk_item_factory_get_widget         (GtkItemFactory   *ifactory,
-                                                    const gchar      *path);
+GtkWidget*     gtk_item_factory_get_item             (GtkItemFactory *ifactory,
+                                                      const gchar    *path);
+GtkWidget*     gtk_item_factory_get_widget           (GtkItemFactory *ifactory,
+                                                      const gchar    *path);
 GtkWidget*     gtk_item_factory_get_widget_by_action (GtkItemFactory *ifactory,
                                                       guint           action);
+GtkWidget*     gtk_item_factory_get_item_by_action   (GtkItemFactory *ifactory,
+                                                      guint           action);
 
-/* If `ifactory_path' is passed as `NULL', this function will iterate over
- * all hash entries.
+/* If `path_pspec' is passed as `NULL', this function will iterate over
+ * all hash entries. otherwise only those entries will be dumped for which
+ * the pattern matches, e.g. "<Image>*...".
  */
-void   gtk_item_factory_dump_rc        (const gchar            *ifactory_path,
+void   gtk_item_factory_dump_items     (GtkPatternSpec         *path_pspec,
                                         gboolean                modified_only,
                                         GtkPrintFunc            print_func,
                                         gpointer                func_data);
+void   gtk_item_factory_dump_rc        (const gchar            *file_name,
+                                        GtkPatternSpec         *path_pspec,
+                                        gboolean                modified_only);
+void   gtk_item_factory_print_func     (gpointer                FILE_pointer,
+                                        const gchar            *string);
 void   gtk_item_factory_create_item    (GtkItemFactory         *ifactory,
                                         GtkItemFactoryEntry    *entry,
                                         gpointer                callback_data,
@@ -151,13 +182,6 @@ void       gtk_item_factory_create_items   (GtkItemFactory         *ifactory,
                                         guint                   n_entries,
                                         GtkItemFactoryEntry    *entries,
                                         gpointer                callback_data);
-void   gtk_item_factory_create_items_ac(GtkItemFactory         *ifactory,
-                                        guint                   n_entries,
-                                        GtkItemFactoryEntry    *entries,
-                                        gpointer                callback_data,
-                                        guint                   callback_type);
-void   gtk_item_factory_path_delete    (const gchar            *ifactory_path,
-                                        const gchar            *path);
 void   gtk_item_factory_delete_item    (GtkItemFactory         *ifactory,
                                         const gchar            *path);
 void   gtk_item_factory_delete_entry   (GtkItemFactory         *ifactory,
@@ -179,13 +203,30 @@ void      gtk_item_factory_popup_with_data(GtkItemFactory         *ifactory,
                                         guint32                 time);
 gpointer gtk_item_factory_popup_data   (GtkItemFactory         *ifactory);
 gpointer gtk_item_factory_popup_data_from_widget (GtkWidget    *widget);
-     
-     
+void   gtk_item_factory_set_translate_func (GtkItemFactory      *ifactory,
+                                           GtkTranslateFunc     func,
+                                           gpointer             data,
+                                           GtkDestroyNotify     notify);
+
+/* Compatibility functions for deprecated GtkMenuFactory code
+ */
+GtkItemFactory*        gtk_item_factory_from_path   (const gchar       *path);
+void   gtk_item_factory_create_menu_entries (guint              n_entries,
+                                             GtkMenuEntry      *entries);
+void   gtk_item_factories_path_delete     (const gchar         *ifactory_path,
+                                           const gchar         *path);
+typedef        void    (*GtkItemFactoryCallback2) (GtkWidget           *widget,
+                                           gpointer             callback_data,
+                                           guint                callback_action);
+void   gtk_item_factory_create_items_ac (GtkItemFactory        *ifactory,
+                                         guint                  n_entries,
+                                         GtkItemFactoryEntry   *entries,
+                                         gpointer               callback_data,
+                                         guint                  callback_type);
 
 
 
 #ifdef __cplusplus
-#pragma {
 }
 #endif /* __cplusplus */