* 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;
gchar *path;
GtkAccelGroup *accel_group;
GtkWidget *widget;
- GSList *widgets_by_action;
+ GSList *items;
+
+ GtkTranslateFunc translate_func;
+ gpointer translate_data;
+ GtkDestroyNotify translate_notify;
};
struct _GtkItemFactoryClass
gchar *cpair_comment_single;
GHashTable *item_ht;
+
+ gpointer dummy;
};
struct _GtkItemFactoryEntry
guint accelerator_mods;
guint modified : 1;
guint in_propagation : 1;
- gchar *item_type;
+ gchar *dummy;
GSList *widgets;
};
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,
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,
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,
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 */