From c2beffd03405e6db4295afd6c2982388b808cb2e Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Mon, 20 Jan 2003 18:57:20 +0000 Subject: Merge eog-menu-api branch 2003-01-20 Marco Pesenti Gritti * Merge eog-menu-api branch --- lib/egg/egg-action-group.h | 71 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 lib/egg/egg-action-group.h (limited to 'lib/egg/egg-action-group.h') diff --git a/lib/egg/egg-action-group.h b/lib/egg/egg-action-group.h new file mode 100644 index 000000000..2ee05dcec --- /dev/null +++ b/lib/egg/egg-action-group.h @@ -0,0 +1,71 @@ +#ifndef EGG_ACTION_GROUP_H +#define EGG_ACTION_GROUP_H + +#include +#include + +#define EGG_TYPE_ACTION_GROUP (egg_action_group_get_type ()) +#define EGG_ACTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_ACTION_GROUP, EggActionGroup)) +#define EGG_ACTION_GROUP_CLASS(vtable) (G_TYPE_CHECK_CLASS_CAST ((vtable), EGG_TYPE_ACTION_GROUP, EggActionGroupClass)) +#define EGG_IS_ACTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_ACTION_GROUP)) +#define EGG_IS_ACTION_GROUP_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), EGG_TYPE_ACTION_GROUP)) +#define EGG_ACTION_GROUP_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), EGG_TYPE_ACTION_GROUP, EggActionGroupClass)) + +typedef struct _EggActionGroup EggActionGroup; +typedef struct _EggActionGroupClass EggActionGroupClass; +typedef struct _EggActionGroupEntry EggActionGroupEntry; + +struct _EggActionGroup +{ + GObject parent; + + gchar *name; + GHashTable *actions; +}; + +struct _EggActionGroupClass +{ + GObjectClass parent_class; + + EggAction *(* get_action) (EggActionGroup *action_group, + const gchar *action_name); +}; + +typedef enum { + NORMAL_ACTION, + TOGGLE_ACTION, + RADIO_ACTION +} EggActionGroupEntryType; + +struct _EggActionGroupEntry { + gchar *name; + gchar *label; + gchar *stock_id; + gchar *accelerator; + gchar *tooltip; + + GCallback callback; + gpointer user_data; + + EggActionGroupEntryType entry_type; + gchar *extra_data; +}; + +GType egg_action_group_get_type (void); + +EggActionGroup *egg_action_group_new (const gchar *name); + +const gchar *egg_action_group_get_name (EggActionGroup *action_group); +EggAction *egg_action_group_get_action (EggActionGroup *action_group, + const gchar *action_name); +GList *egg_action_group_list_actions (EggActionGroup *action_group); +void egg_action_group_add_action (EggActionGroup *action_group, + EggAction *action); +void egg_action_group_remove_action (EggActionGroup *action_group, + EggAction *action); + +void egg_action_group_add_actions (EggActionGroup *action_group, + EggActionGroupEntry *entries, + guint n_entries); + +#endif -- cgit v1.2.3