aboutsummaryrefslogtreecommitdiffstats
path: root/lib/egg/egg-action-group.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/egg/egg-action-group.h')
-rw-r--r--lib/egg/egg-action-group.h71
1 files changed, 71 insertions, 0 deletions
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 <gtk/gtk.h>
+#include <egg-action.h>
+
+#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