summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorMatthias Clasen <maclas@gmx.de>2004-01-07 21:54:33 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2004-01-07 21:54:33 +0000
commita11e45a1ebc9574ea3a60f6bc031affecd088208 (patch)
tree943f86d4e5a2fe931d447710bfb59593eabffc6d /gtk
parent8f5b438e6b3eb37af60b368b9bda366fc23f2d42 (diff)
downloadgtk+-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.c33
-rw-r--r--gtk/gtkaction.h4
-rw-r--r--gtk/gtkactiongroup.c68
-rw-r--r--gtk/gtkradioaction.c37
-rw-r--r--gtk/gtkradioaction.h15
-rw-r--r--gtk/gtktoggleaction.c34
-rw-r--r--gtk/gtktoggleaction.h21
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>&lt;Actions&gt;/<replaceable>group-name</replaceable>/<replaceable>action-name</replaceable></literal>.
- *
+ * Accel paths are set to
+ * <literal>&lt;Actions&gt;/<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