Commit a11e45a1 authored by Matthias Clasen's avatar Matthias Clasen Committed by Matthias Clasen

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)
parent 8f5b438e
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)
Wed Jan 7 21:42:49 2004 Matthias Clasen <maclas@gmx.de> Wed Jan 7 21:42:49 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtkaccelmap.c (gtk_accel_map_lock_path): Fix grammar of * gtk/gtkaccelmap.c (gtk_accel_map_lock_path): Fix grammar of
......
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)
Wed Jan 7 21:42:49 2004 Matthias Clasen <maclas@gmx.de> Wed Jan 7 21:42:49 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtkaccelmap.c (gtk_accel_map_lock_path): Fix grammar of * gtk/gtkaccelmap.c (gtk_accel_map_lock_path): Fix grammar of
......
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)
Wed Jan 7 21:42:49 2004 Matthias Clasen <maclas@gmx.de> Wed Jan 7 21:42:49 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtkaccelmap.c (gtk_accel_map_lock_path): Fix grammar of * gtk/gtkaccelmap.c (gtk_accel_map_lock_path): Fix grammar of
......
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)
Wed Jan 7 21:42:49 2004 Matthias Clasen <maclas@gmx.de> Wed Jan 7 21:42:49 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtkaccelmap.c (gtk_accel_map_lock_path): Fix grammar of * gtk/gtkaccelmap.c (gtk_accel_map_lock_path): Fix grammar of
......
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)
Wed Jan 7 21:42:49 2004 Matthias Clasen <maclas@gmx.de> Wed Jan 7 21:42:49 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtkaccelmap.c (gtk_accel_map_lock_path): Fix grammar of * gtk/gtkaccelmap.c (gtk_accel_map_lock_path): Fix grammar of
......
Wed Jan 7 22:25:45 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtk-sections.txt: Add gtk_action_new, gtk_toggle_action_new,
gtk_radio_action_new, gtk_action_group_add_action_with_accel.
Wed Jan 7 01:56:33 2004 Matthias Clasen <maclas@gmx.de> Wed Jan 7 01:56:33 2004 Matthias Clasen <maclas@gmx.de>
* gdk-pixbuf/tmpl/file-saving.sgml: Document GdkPixbufSaveFunc. * gdk-pixbuf/tmpl/file-saving.sgml: Document GdkPixbufSaveFunc.
......
...@@ -102,6 +102,7 @@ gtk_accessible_get_type ...@@ -102,6 +102,7 @@ gtk_accessible_get_type
<FILE>gtkaction</FILE> <FILE>gtkaction</FILE>
<TITLE>GtkAction</TITLE> <TITLE>GtkAction</TITLE>
GtkAction GtkAction
gtk_action_new
gtk_action_get_name gtk_action_get_name
gtk_action_activate gtk_action_activate
gtk_action_create_icon gtk_action_create_icon
...@@ -138,6 +139,7 @@ gtk_action_group_get_name ...@@ -138,6 +139,7 @@ gtk_action_group_get_name
gtk_action_group_get_action gtk_action_group_get_action
gtk_action_group_list_actions gtk_action_group_list_actions
gtk_action_group_add_action gtk_action_group_add_action
gtk_action_group_add_action_with_accel
gtk_action_group_remove_action gtk_action_group_remove_action
GtkActionEntry GtkActionEntry
gtk_action_group_add_actions gtk_action_group_add_actions
...@@ -2325,6 +2327,7 @@ gtk_progress_bar_get_type ...@@ -2325,6 +2327,7 @@ gtk_progress_bar_get_type
<FILE>gtkradioaction</FILE> <FILE>gtkradioaction</FILE>
<TITLE>GtkRadioAction</TITLE> <TITLE>GtkRadioAction</TITLE>
GtkRadioAction GtkRadioAction
gtk_radio_action_new
gtk_radio_action_get_group gtk_radio_action_get_group
gtk_radio_action_set_group gtk_radio_action_set_group
gtk_radio_action_get_current_value gtk_radio_action_get_current_value
...@@ -3107,6 +3110,7 @@ gtk_tips_query_get_type ...@@ -3107,6 +3110,7 @@ gtk_tips_query_get_type
<FILE>gtktoggleaction</FILE> <FILE>gtktoggleaction</FILE>
<TITLE>GtkToggleAction</TITLE> <TITLE>GtkToggleAction</TITLE>
GtkToggleAction GtkToggleAction
gtk_toggle_action_new
gtk_toggle_action_toggled gtk_toggle_action_toggled
gtk_toggle_action_set_active gtk_toggle_action_set_active
gtk_toggle_action_get_active gtk_toggle_action_get_active
......
...@@ -359,6 +359,39 @@ gtk_action_init (GtkAction *action) ...@@ -359,6 +359,39 @@ gtk_action_init (GtkAction *action)
action->private_data->proxies = NULL; 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 static void
gtk_action_finalize (GObject *object) gtk_action_finalize (GObject *object)
{ {
......
...@@ -81,6 +81,10 @@ struct _GtkActionClass ...@@ -81,6 +81,10 @@ struct _GtkActionClass
}; };
GType gtk_action_get_type (void); 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); const gchar* gtk_action_get_name (GtkAction *action);
void gtk_action_activate (GtkAction *action); void gtk_action_activate (GtkAction *action);
GtkWidget* gtk_action_create_icon (GtkAction *action, GtkWidget* gtk_action_create_icon (GtkAction *action,
......
...@@ -296,19 +296,20 @@ gtk_action_group_add_action (GtkActionGroup *action_group, ...@@ -296,19 +296,20 @@ gtk_action_group_add_action (GtkActionGroup *action_group,
/** /**
* gtk_action_group_add_action_with_accel: * gtk_action_group_add_action_with_accel:
* @action_group: the action group (#GtkActionGroup) * @action_group: the action group (#GtkActionGroup)
* @action : the action to add (#GtkAction) * @action: the action to add (#GtkAction)
* @name : * @name: the name of the action to add
* @accelerator : * @accelerator: the accelerator for the action, in
* @stock_id : * 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. * 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. * @stock_id.
* *
* accel paths are set to * Accel paths are set to
* <literal>&lt;Actions&gt;/<replaceable>group-name</replaceable>/<replaceable>action-name</replaceable></literal>. * <literal>&lt;Actions&gt;/<replaceable>group-name</replaceable>/<replaceable>action-name</replaceable></literal>.
* *
* Since: 2.4 * Since: 2.4
*/ */
void void
...@@ -476,12 +477,10 @@ gtk_action_group_add_actions_full (GtkActionGroup *action_group, ...@@ -476,12 +477,10 @@ gtk_action_group_add_actions_full (GtkActionGroup *action_group,
tooltip = entries[i].tooltip; tooltip = entries[i].tooltip;
} }
action = g_object_new (GTK_TYPE_ACTION, action = gtk_action_new (entries[i].name,
"name", entries[i].name, label,
"label", label, tooltip,
"tooltip", tooltip, entries[i].stock_id);
"stock_id", entries[i].stock_id,
NULL);
if (entries[i].callback) if (entries[i].callback)
g_signal_connect_data (action, "activate", g_signal_connect_data (action, "activate",
...@@ -558,7 +557,7 @@ gtk_action_group_add_toggle_actions_full (GtkActionGroup *action_group, ...@@ -558,7 +557,7 @@ gtk_action_group_add_toggle_actions_full (GtkActionGroup *action_group,
for (i = 0; i < n_entries; i++) for (i = 0; i < n_entries; i++)
{ {
GtkAction *action; GtkToggleAction *action;
const gchar *label; const gchar *label;
const gchar *tooltip; const gchar *tooltip;
...@@ -573,22 +572,20 @@ gtk_action_group_add_toggle_actions_full (GtkActionGroup *action_group, ...@@ -573,22 +572,20 @@ gtk_action_group_add_toggle_actions_full (GtkActionGroup *action_group,
tooltip = entries[i].tooltip; tooltip = entries[i].tooltip;
} }
action = g_object_new (GTK_TYPE_TOGGLE_ACTION, action = gtk_toggle_action_new (entries[i].name,
"name", entries[i].name, label,
"label", label, tooltip,
"tooltip", tooltip, entries[i].stock_id);
"stock_id", entries[i].stock_id,
NULL);
gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), gtk_toggle_action_set_active (action, entries[i].is_active);
entries[i].is_active);
if (entries[i].callback) if (entries[i].callback)
g_signal_connect_data (action, "activate", g_signal_connect_data (action, "activate",
entries[i].callback, entries[i].callback,
user_data, (GClosureNotify)destroy, 0); 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].name,
entries[i].accelerator, entries[i].accelerator,
entries[i].stock_id); entries[i].stock_id);
...@@ -670,7 +667,7 @@ gtk_action_group_add_radio_actions_full (GtkActionGroup *action_group, ...@@ -670,7 +667,7 @@ gtk_action_group_add_radio_actions_full (GtkActionGroup *action_group,
for (i = 0; i < n_entries; i++) for (i = 0; i < n_entries; i++)
{ {
GtkAction *action; GtkRadioAction *action;
const gchar *label; const gchar *label;
const gchar *tooltip; const gchar *tooltip;
...@@ -685,24 +682,23 @@ gtk_action_group_add_radio_actions_full (GtkActionGroup *action_group, ...@@ -685,24 +682,23 @@ gtk_action_group_add_radio_actions_full (GtkActionGroup *action_group,
tooltip = entries[i].tooltip; tooltip = entries[i].tooltip;
} }
action = g_object_new (GTK_TYPE_RADIO_ACTION, action = gtk_radio_action_new (entries[i].name,
"name", entries[i].name, label,
"label", label, tooltip,
"tooltip", tooltip, entries[i].stock_id,
"stock_id", entries[i].stock_id, value);
"value", entries[i].value,
NULL);
if (i == 0) if (i == 0)
first_action = action; first_action = action;
gtk_radio_action_set_group (GTK_RADIO_ACTION (action), group); gtk_radio_action_set_group (action, group);
group = gtk_radio_action_get_group (GTK_RADIO_ACTION (action)); group = gtk_radio_action_get_group (action);
if (value == entries[i].value) 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].name,
entries[i].accelerator, entries[i].accelerator,
entries[i].stock_id); entries[i].stock_id);
......
...@@ -171,6 +171,43 @@ gtk_radio_action_init (GtkRadioAction *action) ...@@ -171,6 +171,43 @@ gtk_radio_action_init (GtkRadioAction *action)
action->private_data->value = 0; 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 static void
gtk_radio_action_finalize (GObject *object) gtk_radio_action_finalize (GObject *object)
{ {
......
...@@ -67,12 +67,17 @@ struct _GtkRadioActionClass ...@@ -67,12 +67,17 @@ struct _GtkRadioActionClass
void (*_gtk_reserved4) (void); 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 G_END_DECLS
......
...@@ -151,6 +151,39 @@ gtk_toggle_action_init (GtkToggleAction *action) ...@@ -151,6 +151,39 @@ gtk_toggle_action_init (GtkToggleAction *action)
action->private_data->draw_as_radio = FALSE; 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 static void
get_property (GObject *object, get_property (GObject *object,
guint prop_id, guint prop_id,
...@@ -170,7 +203,6 @@ get_property (GObject *object, ...@@ -170,7 +203,6 @@ get_property (GObject *object,
} }
} }
static void static void
set_property (GObject *object, set_property (GObject *object,
guint prop_id, guint prop_id,
......
...@@ -67,14 +67,19 @@ struct _GtkToggleActionClass ...@@ -67,14 +67,19 @@ struct _GtkToggleActionClass
void (*_gtk_reserved4) (void); void (*_gtk_reserved4) (void);
}; };
GType gtk_toggle_action_get_type (void); GType gtk_toggle_action_get_type (void);
void gtk_toggle_action_toggled (GtkToggleAction *action); GtkToggleAction *gtk_toggle_action_new (const gchar *name,
void gtk_toggle_action_set_active (GtkToggleAction *action, const gchar *label,
gboolean is_active); const gchar *tooltip,
gboolean gtk_toggle_action_get_active (GtkToggleAction *action); const gchar *stock_id);
void gtk_toggle_action_set_draw_as_radio (GtkToggleAction *action, void gtk_toggle_action_toggled (GtkToggleAction *action);
gboolean draw_as_radio); void gtk_toggle_action_set_active (GtkToggleAction *action,
gboolean gtk_toggle_action_get_draw_as_radio (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 G_END_DECLS
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment