diff options
author | Matthias Clasen <maclas@gmx.de> | 2004-01-07 21:54:33 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2004-01-07 21:54:33 +0000 |
commit | a11e45a1ebc9574ea3a60f6bc031affecd088208 (patch) | |
tree | 943f86d4e5a2fe931d447710bfb59593eabffc6d /gtk | |
parent | 8f5b438e6b3eb37af60b368b9bda366fc23f2d42 (diff) | |
download | gtk+-a11e45a1ebc9574ea3a60f6bc031affecd088208.tar.gz |
Add creation functions for actions.
Wed Jan 7 22:20:20 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtkaction.h:
* gtk/gtkaction.c (gtk_action_new):
* gtk/gtktoggleaction.h:
* gtk/gtktoggleaction.c (gtk_toggle_action_new):
* gtk/gtkradioaction.h:
* gtk/gtkradioaction.c (gtk_radio_action_new): Add creation
functions for actions.
* gtk/gtkactiongroup.c (gtk_action_group_add_actions_full):
(gtk_action_group_add_toggle_actions_full):
(gtk_action_group_add_radio_actions_full): and use the
new functions here. (#125322, Patch by Jeff Frank)
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gtkaction.c | 33 | ||||
-rw-r--r-- | gtk/gtkaction.h | 4 | ||||
-rw-r--r-- | gtk/gtkactiongroup.c | 68 | ||||
-rw-r--r-- | gtk/gtkradioaction.c | 37 | ||||
-rw-r--r-- | gtk/gtkradioaction.h | 15 | ||||
-rw-r--r-- | gtk/gtktoggleaction.c | 34 | ||||
-rw-r--r-- | gtk/gtktoggleaction.h | 21 |
7 files changed, 162 insertions, 50 deletions
diff --git a/gtk/gtkaction.c b/gtk/gtkaction.c index b0db28361a..20c2dbe1f7 100644 --- a/gtk/gtkaction.c +++ b/gtk/gtkaction.c @@ -359,6 +359,39 @@ gtk_action_init (GtkAction *action) action->private_data->proxies = NULL; } +/** + * gtk_action_new: + * @name: A unique name for the action + * @label: the label displayed in menu items and on buttons + * @tooltip: a tooltip for the action + * @stock_id: the stock icon to display in widgets representing the action + * + * Creates a new #GtkAction object. To add the action to a + * #GtkActionGroup and set the accelerator for the action, + * call gtk_action_group_add_action_with_accel(). + * + * Return value: a new #GtkAction + * + * Since: 2.4 + */ +GtkAction * +gtk_action_new (const gchar *name, + const gchar *label, + const gchar *tooltip, + const gchar *stock_id) +{ + GtkAction *action; + + action = g_object_new (GTK_TYPE_ACTION, + "name", name, + "label", label, + "tooltip", tooltip, + "stock_id", stock_id, + NULL); + + return action; +} + static void gtk_action_finalize (GObject *object) { diff --git a/gtk/gtkaction.h b/gtk/gtkaction.h index e855052d67..34cec2cda3 100644 --- a/gtk/gtkaction.h +++ b/gtk/gtkaction.h @@ -81,6 +81,10 @@ struct _GtkActionClass }; GType gtk_action_get_type (void); +GtkAction *gtk_action_new (const gchar *name, + const gchar *label, + const gchar *tooltip, + const gchar *stock_id); const gchar* gtk_action_get_name (GtkAction *action); void gtk_action_activate (GtkAction *action); GtkWidget* gtk_action_create_icon (GtkAction *action, diff --git a/gtk/gtkactiongroup.c b/gtk/gtkactiongroup.c index bac151efdc..6389db80f3 100644 --- a/gtk/gtkactiongroup.c +++ b/gtk/gtkactiongroup.c @@ -296,19 +296,20 @@ gtk_action_group_add_action (GtkActionGroup *action_group, /** * gtk_action_group_add_action_with_accel: * @action_group: the action group (#GtkActionGroup) - * @action : the action to add (#GtkAction) - * @name : - * @accelerator : - * @stock_id : + * @action: the action to add (#GtkAction) + * @name: the name of the action to add + * @accelerator: the accelerator for the action, in + * the format understood by gtk_accelerator_parse(). + * @stock_id: the stock icon to display * * Adds an action object to the action group and sets up the accelerator. * - * If @accelerator is NULL, attempt to use the accelerator associated with + * If @accelerator is %NULL, attempt to use the accelerator associated with * @stock_id. * - * accel paths are set to - * <literal><Actions>/<replaceable>group-name</replaceable>/<replaceable>action-name</replaceable></literal>. - * + * Accel paths are set to + * <literal><Actions>/<replaceable>group-name</replaceable>/<replaceable>action-name</replaceable></literal>. + * * Since: 2.4 */ void @@ -476,12 +477,10 @@ gtk_action_group_add_actions_full (GtkActionGroup *action_group, tooltip = entries[i].tooltip; } - action = g_object_new (GTK_TYPE_ACTION, - "name", entries[i].name, - "label", label, - "tooltip", tooltip, - "stock_id", entries[i].stock_id, - NULL); + action = gtk_action_new (entries[i].name, + label, + tooltip, + entries[i].stock_id); if (entries[i].callback) g_signal_connect_data (action, "activate", @@ -558,7 +557,7 @@ gtk_action_group_add_toggle_actions_full (GtkActionGroup *action_group, for (i = 0; i < n_entries; i++) { - GtkAction *action; + GtkToggleAction *action; const gchar *label; const gchar *tooltip; @@ -573,22 +572,20 @@ gtk_action_group_add_toggle_actions_full (GtkActionGroup *action_group, tooltip = entries[i].tooltip; } - action = g_object_new (GTK_TYPE_TOGGLE_ACTION, - "name", entries[i].name, - "label", label, - "tooltip", tooltip, - "stock_id", entries[i].stock_id, - NULL); + action = gtk_toggle_action_new (entries[i].name, + label, + tooltip, + entries[i].stock_id); - gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), - entries[i].is_active); + gtk_toggle_action_set_active (action, entries[i].is_active); if (entries[i].callback) g_signal_connect_data (action, "activate", entries[i].callback, user_data, (GClosureNotify)destroy, 0); - gtk_action_group_add_action_with_accel (action_group, action, + gtk_action_group_add_action_with_accel (action_group, + action, entries[i].name, entries[i].accelerator, entries[i].stock_id); @@ -670,7 +667,7 @@ gtk_action_group_add_radio_actions_full (GtkActionGroup *action_group, for (i = 0; i < n_entries; i++) { - GtkAction *action; + GtkRadioAction *action; const gchar *label; const gchar *tooltip; @@ -685,24 +682,23 @@ gtk_action_group_add_radio_actions_full (GtkActionGroup *action_group, tooltip = entries[i].tooltip; } - action = g_object_new (GTK_TYPE_RADIO_ACTION, - "name", entries[i].name, - "label", label, - "tooltip", tooltip, - "stock_id", entries[i].stock_id, - "value", entries[i].value, - NULL); + action = gtk_radio_action_new (entries[i].name, + label, + tooltip, + entries[i].stock_id, + value); if (i == 0) first_action = action; - gtk_radio_action_set_group (GTK_RADIO_ACTION (action), group); - group = gtk_radio_action_get_group (GTK_RADIO_ACTION (action)); + gtk_radio_action_set_group (action, group); + group = gtk_radio_action_get_group (action); if (value == entries[i].value) - gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), TRUE); + gtk_toggle_action_set_active (action, TRUE); - gtk_action_group_add_action_with_accel (action_group, action, + gtk_action_group_add_action_with_accel (action_group, + action, entries[i].name, entries[i].accelerator, entries[i].stock_id); diff --git a/gtk/gtkradioaction.c b/gtk/gtkradioaction.c index e6ae027425..35460a33b8 100644 --- a/gtk/gtkradioaction.c +++ b/gtk/gtkradioaction.c @@ -171,6 +171,43 @@ gtk_radio_action_init (GtkRadioAction *action) action->private_data->value = 0; } +/** + * gtk_radio_action_new: + * @name: A unique name for the action + * @label: The label displayed in menu items and on buttons + * @tooltip: A tooltip for this action + * @stock_id: The stock icon to display in widgets representing this action + * @value: The value which gtk_radio_action_get_current_value() should return + * if this action is selected. + * + * Creates a new #GtkRadioAction object. To add the action to + * a #GtkActionGroup and set the accelerator for the action, + * call gtk_action_group_add_action_with_accel(). + * + * Return value: a new #GtkRadioAction + * + * Since: 2.4 + */ +GtkRadioAction * +gtk_radio_action_new (const gchar *name, + const gchar *label, + const gchar *tooltip, + const gchar *stock_id, + gint value) +{ + GtkRadioAction *action; + + action = g_object_new (GTK_TYPE_RADIO_ACTION, + "name", name, + "label", label, + "tooltip", tooltip, + "stock_id", stock_id, + "value", value, + NULL); + + return action; +} + static void gtk_radio_action_finalize (GObject *object) { diff --git a/gtk/gtkradioaction.h b/gtk/gtkradioaction.h index 3617a239b2..b1de074c5d 100644 --- a/gtk/gtkradioaction.h +++ b/gtk/gtkradioaction.h @@ -67,12 +67,17 @@ struct _GtkRadioActionClass void (*_gtk_reserved4) (void); }; -GType gtk_radio_action_get_type (void); +GType gtk_radio_action_get_type (void); +GtkRadioAction *gtk_radio_action_new (const gchar *name, + const gchar *label, + const gchar *tooltip, + const gchar *stock_id, + gint value); +GSList *gtk_radio_action_get_group (GtkRadioAction *action); +void gtk_radio_action_set_group (GtkRadioAction *action, + GSList *group); +gint gtk_radio_action_get_current_value (GtkRadioAction *action); -GSList *gtk_radio_action_get_group (GtkRadioAction *action); -void gtk_radio_action_set_group (GtkRadioAction *action, - GSList *group); -gint gtk_radio_action_get_current_value (GtkRadioAction *action); G_END_DECLS diff --git a/gtk/gtktoggleaction.c b/gtk/gtktoggleaction.c index c3ac2d71f6..1f4a8d7a03 100644 --- a/gtk/gtktoggleaction.c +++ b/gtk/gtktoggleaction.c @@ -151,6 +151,39 @@ gtk_toggle_action_init (GtkToggleAction *action) action->private_data->draw_as_radio = FALSE; } +/** + * gtk_toggle_action_new: + * @name: A unique name for the action + * @label: The label displayed in menu items and on buttons + * @tooltip: A tooltip for the action + * @stock_id: The stock icon to display in widgets representing the action + * + * Creates a new #GtkToggleAction object. To add the action to + * a #GtkActionGroup and set the accelerator for the action, + * call gtk_action_group_add_action_with_accel(). + * + * Return value: a new #GtkToggleAction + * + * Since: 2.4 + */ +GtkToggleAction * +gtk_toggle_action_new (const gchar *name, + const gchar *label, + const gchar *tooltip, + const gchar *stock_id) +{ + GtkToggleAction *action; + + action = g_object_new (GTK_TYPE_TOGGLE_ACTION, + "name", name, + "label", label, + "tooltip", tooltip, + "stock_id", stock_id, + NULL); + + return action; +} + static void get_property (GObject *object, guint prop_id, @@ -170,7 +203,6 @@ get_property (GObject *object, } } - static void set_property (GObject *object, guint prop_id, diff --git a/gtk/gtktoggleaction.h b/gtk/gtktoggleaction.h index 0b7b4180c7..03183bf531 100644 --- a/gtk/gtktoggleaction.h +++ b/gtk/gtktoggleaction.h @@ -67,14 +67,19 @@ struct _GtkToggleActionClass void (*_gtk_reserved4) (void); }; -GType gtk_toggle_action_get_type (void); -void gtk_toggle_action_toggled (GtkToggleAction *action); -void gtk_toggle_action_set_active (GtkToggleAction *action, - gboolean is_active); -gboolean gtk_toggle_action_get_active (GtkToggleAction *action); -void gtk_toggle_action_set_draw_as_radio (GtkToggleAction *action, - gboolean draw_as_radio); -gboolean gtk_toggle_action_get_draw_as_radio (GtkToggleAction *action); +GType gtk_toggle_action_get_type (void); +GtkToggleAction *gtk_toggle_action_new (const gchar *name, + const gchar *label, + const gchar *tooltip, + const gchar *stock_id); +void gtk_toggle_action_toggled (GtkToggleAction *action); +void gtk_toggle_action_set_active (GtkToggleAction *action, + gboolean is_active); +gboolean gtk_toggle_action_get_active (GtkToggleAction *action); +void gtk_toggle_action_set_draw_as_radio (GtkToggleAction *action, + gboolean draw_as_radio); +gboolean gtk_toggle_action_get_draw_as_radio (GtkToggleAction *action); + G_END_DECLS |