forked from AuroraMiddleware/gtk
Add a non-varargs variant of activate_action
I recently turned gtk_widget_activate_action() into a varargs function. That is more convenient from C, but we need a non-varargs variant for bindings. So add the old API back, under the name gtk_widget_activate_action_variant(), with a rename-to annotation.
This commit is contained in:
parent
1527407c3d
commit
2405e2711e
@ -4628,6 +4628,7 @@ gtk_widget_observe_controllers
|
||||
<SUBSECTION Actions>
|
||||
gtk_widget_insert_action_group
|
||||
gtk_widget_activate_action
|
||||
gtk_widget_activate_action_variant
|
||||
gtk_widget_activate_default
|
||||
GtkWidgetActionActivateFunc
|
||||
gtk_widget_class_install_action
|
||||
|
@ -12424,10 +12424,39 @@ gtk_widget_get_template_child (GtkWidget *widget,
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* gtk_widget_activate_action_variant: (rename-to gtk_widget_activate_action)
|
||||
* @widget: a #GtkWidget
|
||||
* @name: the name of the action to activate
|
||||
* @args: (allow-none): parameters to use, or %NULL
|
||||
*
|
||||
* Looks up the action in the action groups associated
|
||||
* with @widget and its ancestors, and activates it.
|
||||
*
|
||||
* If the action is in an action group added with
|
||||
* gtk_widget_insert_action_group(), the @name is
|
||||
* expected to be prefixed with the prefix that was
|
||||
* used when the group was inserted.
|
||||
*
|
||||
* The arguments must match the actions expected parameter
|
||||
* type, as returned by g_action_get_parameter_type().
|
||||
*/
|
||||
void
|
||||
gtk_widget_activate_action_variant (GtkWidget *widget,
|
||||
const char *name,
|
||||
GVariant *args)
|
||||
{
|
||||
GtkActionMuxer *muxer;
|
||||
|
||||
muxer = _gtk_widget_get_action_muxer (widget, FALSE);
|
||||
if (muxer)
|
||||
g_action_group_activate_action (G_ACTION_GROUP (muxer), name, args);
|
||||
}
|
||||
|
||||
/**
|
||||
* gtk_widget_activate_action:
|
||||
* @widget: a #GtkWidget
|
||||
* @name: a prefixed action name
|
||||
* @name: the name of the action to activate
|
||||
* @format_string: GVariant format string for arguments or %NULL
|
||||
* for no arguments
|
||||
* @...: arguments, as given by format string
|
||||
@ -12435,12 +12464,8 @@ gtk_widget_get_template_child (GtkWidget *widget,
|
||||
* Looks up the action in the action groups associated
|
||||
* with @widget and its ancestors, and activates it.
|
||||
*
|
||||
* The action name is expected to be prefixed with the
|
||||
* prefix that was used when adding the action group
|
||||
* with gtk_widget_insert_action_group().
|
||||
*
|
||||
* The arguments must match the actions expected parameter
|
||||
* type, as returned by g_action_get_parameter_type().
|
||||
* This is a wrapper around gtk_widget_activate_action_variant()
|
||||
* that constructs the @args variant according to @format_string.
|
||||
*/
|
||||
void
|
||||
gtk_widget_activate_action (GtkWidget *widget,
|
||||
@ -12448,30 +12473,22 @@ gtk_widget_activate_action (GtkWidget *widget,
|
||||
const char *format_string,
|
||||
...)
|
||||
{
|
||||
GtkActionMuxer *muxer;
|
||||
GVariant *parameters = NULL;
|
||||
|
||||
muxer = _gtk_widget_get_action_muxer (widget, FALSE);
|
||||
if (muxer)
|
||||
if (format_string != NULL)
|
||||
{
|
||||
GVariant *parameters = NULL;
|
||||
va_list args;
|
||||
|
||||
if (format_string != NULL)
|
||||
{
|
||||
va_list args;
|
||||
va_start (args, format_string);
|
||||
parameters = g_variant_new_va (format_string, NULL, &args);
|
||||
va_end (args);
|
||||
|
||||
va_start (args, format_string);
|
||||
parameters = g_variant_new_va (format_string, NULL, &args);
|
||||
va_end (args);
|
||||
|
||||
g_variant_ref_sink (parameters);
|
||||
}
|
||||
|
||||
g_action_group_activate_action (G_ACTION_GROUP (muxer),
|
||||
name,
|
||||
parameters);
|
||||
|
||||
g_clear_pointer (¶meters, g_variant_unref);
|
||||
g_variant_ref_sink (parameters);
|
||||
}
|
||||
|
||||
gtk_widget_activate_action_variant (widget, name, parameters);
|
||||
|
||||
g_clear_pointer (¶meters, g_variant_unref);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -980,6 +980,10 @@ void gtk_widget_activate_action (GtkWidget *widget,
|
||||
const char *name,
|
||||
const char *format_string,
|
||||
...);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
void gtk_widget_activate_action_variant (GtkWidget *widget,
|
||||
const char *name,
|
||||
GVariant *args);
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
void gtk_widget_activate_default (GtkWidget *widget);
|
||||
|
Loading…
Reference in New Issue
Block a user