shortcutaction: Add gtk_shortcut_action_to_string()
For all but the callback action, we can print something useful.
This commit is contained in:
committed by
Matthias Clasen
parent
dd1b65d522
commit
6a75fdf732
@@ -6661,6 +6661,8 @@ gtk_shortcut_action_ref
|
|||||||
gtk_shortcut_action_unref
|
gtk_shortcut_action_unref
|
||||||
GtkShortcutActionType
|
GtkShortcutActionType
|
||||||
gtk_shortcut_action_get_action_type
|
gtk_shortcut_action_get_action_type
|
||||||
|
gtk_shortcut_action_to_string
|
||||||
|
gtk_shortcut_action_print
|
||||||
gtk_shortcut_action_activate
|
gtk_shortcut_action_activate
|
||||||
|
|
||||||
<SUBSECTION>
|
<SUBSECTION>
|
||||||
|
|||||||
@@ -63,6 +63,8 @@ struct _GtkShortcutActionClass
|
|||||||
GtkShortcutActionFlags flags,
|
GtkShortcutActionFlags flags,
|
||||||
GtkWidget *widget,
|
GtkWidget *widget,
|
||||||
GVariant *args);
|
GVariant *args);
|
||||||
|
void (* print) (GtkShortcutAction *action,
|
||||||
|
GString *string);
|
||||||
};
|
};
|
||||||
|
|
||||||
G_DEFINE_BOXED_TYPE (GtkShortcutAction, gtk_shortcut_action,
|
G_DEFINE_BOXED_TYPE (GtkShortcutAction, gtk_shortcut_action,
|
||||||
@@ -151,6 +153,50 @@ gtk_shortcut_action_get_action_type (GtkShortcutAction *self)
|
|||||||
return self->action_class->action_type;
|
return self->action_class->action_type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gtk_shortcut_action_to_string:
|
||||||
|
* @self: a #GtkShortcutAction
|
||||||
|
*
|
||||||
|
* Prints the given action into a human-readable string.
|
||||||
|
* This is a small wrapper around gtk_shortcut_action_print() to help
|
||||||
|
* when debugging.
|
||||||
|
*
|
||||||
|
* Returns: (transfer full): a new string
|
||||||
|
**/
|
||||||
|
char *
|
||||||
|
gtk_shortcut_action_to_string (GtkShortcutAction *self)
|
||||||
|
{
|
||||||
|
GString *string;
|
||||||
|
|
||||||
|
g_return_val_if_fail (GTK_IS_SHORTCUT_ACTION (self), NULL);
|
||||||
|
|
||||||
|
string = g_string_new (NULL);
|
||||||
|
gtk_shortcut_action_print (self, string);
|
||||||
|
|
||||||
|
return g_string_free (string, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gtk_shortcut_action_print:
|
||||||
|
* @self: a #GtkShortcutAction
|
||||||
|
* @string: a #GString to print into
|
||||||
|
*
|
||||||
|
* Prints the given action into a string for the developer.
|
||||||
|
* This is meant for debugging and logging.
|
||||||
|
*
|
||||||
|
* The form of the representation may change at any time and is
|
||||||
|
* not guaranteed to stay identical.
|
||||||
|
**/
|
||||||
|
void
|
||||||
|
gtk_shortcut_action_print (GtkShortcutAction *self,
|
||||||
|
GString *string)
|
||||||
|
{
|
||||||
|
g_return_if_fail (GTK_IS_SHORTCUT_ACTION (self));
|
||||||
|
g_return_if_fail (string != NULL);
|
||||||
|
|
||||||
|
return self->action_class->print (self, string);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gtk_shortcut_action_activate:
|
* gtk_shortcut_action_activate:
|
||||||
* @self: a #GtkShortcutAction
|
* @self: a #GtkShortcutAction
|
||||||
@@ -205,12 +251,20 @@ gtk_nothing_action_activate (GtkShortcutAction *action,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gtk_nothing_action_print (GtkShortcutAction *action,
|
||||||
|
GString *string)
|
||||||
|
{
|
||||||
|
g_string_append (string, "nothing");
|
||||||
|
}
|
||||||
|
|
||||||
static const GtkShortcutActionClass GTK_NOTHING_ACTION_CLASS = {
|
static const GtkShortcutActionClass GTK_NOTHING_ACTION_CLASS = {
|
||||||
GTK_SHORTCUT_ACTION_NOTHING,
|
GTK_SHORTCUT_ACTION_NOTHING,
|
||||||
sizeof (GtkNothingAction),
|
sizeof (GtkNothingAction),
|
||||||
"GtkNothingAction",
|
"GtkNothingAction",
|
||||||
gtk_nothing_action_finalize,
|
gtk_nothing_action_finalize,
|
||||||
gtk_nothing_action_activate
|
gtk_nothing_action_activate,
|
||||||
|
gtk_nothing_action_print
|
||||||
};
|
};
|
||||||
|
|
||||||
static GtkNothingAction nothing = { { >K_NOTHING_ACTION_CLASS, 1 } };
|
static GtkNothingAction nothing = { { >K_NOTHING_ACTION_CLASS, 1 } };
|
||||||
@@ -262,12 +316,22 @@ gtk_callback_action_activate (GtkShortcutAction *action,
|
|||||||
return self->callback (widget, args, self->user_data);
|
return self->callback (widget, args, self->user_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gtk_callback_action_print (GtkShortcutAction *action,
|
||||||
|
GString *string)
|
||||||
|
{
|
||||||
|
GtkCallbackAction *self = (GtkCallbackAction *) action;
|
||||||
|
|
||||||
|
g_string_append_printf (string, "callback(%p)", self->callback);
|
||||||
|
}
|
||||||
|
|
||||||
static const GtkShortcutActionClass GTK_CALLBACK_ACTION_CLASS = {
|
static const GtkShortcutActionClass GTK_CALLBACK_ACTION_CLASS = {
|
||||||
GTK_SHORTCUT_ACTION_CALLBACK,
|
GTK_SHORTCUT_ACTION_CALLBACK,
|
||||||
sizeof (GtkCallbackAction),
|
sizeof (GtkCallbackAction),
|
||||||
"GtkCallbackAction",
|
"GtkCallbackAction",
|
||||||
gtk_callback_action_finalize,
|
gtk_callback_action_finalize,
|
||||||
gtk_callback_action_activate
|
gtk_callback_action_activate,
|
||||||
|
gtk_callback_action_print
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -323,12 +387,20 @@ gtk_activate_action_activate (GtkShortcutAction *action,
|
|||||||
return gtk_widget_activate (widget);
|
return gtk_widget_activate (widget);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gtk_activate_action_print (GtkShortcutAction *action,
|
||||||
|
GString *string)
|
||||||
|
{
|
||||||
|
g_string_append (string, "activate");
|
||||||
|
}
|
||||||
|
|
||||||
static const GtkShortcutActionClass GTK_ACTIVATE_ACTION_CLASS = {
|
static const GtkShortcutActionClass GTK_ACTIVATE_ACTION_CLASS = {
|
||||||
GTK_SHORTCUT_ACTION_ACTIVATE,
|
GTK_SHORTCUT_ACTION_ACTIVATE,
|
||||||
sizeof (GtkActivateAction),
|
sizeof (GtkActivateAction),
|
||||||
"GtkActivateAction",
|
"GtkActivateAction",
|
||||||
gtk_activate_action_finalize,
|
gtk_activate_action_finalize,
|
||||||
gtk_activate_action_activate
|
gtk_activate_action_activate,
|
||||||
|
gtk_activate_action_print
|
||||||
};
|
};
|
||||||
|
|
||||||
static GtkActivateAction activate = { { >K_ACTIVATE_ACTION_CLASS, 1 } };
|
static GtkActivateAction activate = { { >K_ACTIVATE_ACTION_CLASS, 1 } };
|
||||||
@@ -371,12 +443,20 @@ gtk_mnemonic_action_activate (GtkShortcutAction *action,
|
|||||||
return gtk_widget_mnemonic_activate (widget, flags & GTK_SHORTCUT_ACTION_EXCLUSIVE ? FALSE : TRUE);
|
return gtk_widget_mnemonic_activate (widget, flags & GTK_SHORTCUT_ACTION_EXCLUSIVE ? FALSE : TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gtk_mnemonic_action_print (GtkShortcutAction *action,
|
||||||
|
GString *string)
|
||||||
|
{
|
||||||
|
g_string_append (string, "mnemonic-activate");
|
||||||
|
}
|
||||||
|
|
||||||
static const GtkShortcutActionClass GTK_MNEMONIC_ACTION_CLASS = {
|
static const GtkShortcutActionClass GTK_MNEMONIC_ACTION_CLASS = {
|
||||||
GTK_SHORTCUT_ACTION_MNEMONIC,
|
GTK_SHORTCUT_ACTION_MNEMONIC,
|
||||||
sizeof (GtkMnemonicAction),
|
sizeof (GtkMnemonicAction),
|
||||||
"GtkMnemonicAction",
|
"GtkMnemonicAction",
|
||||||
gtk_mnemonic_action_finalize,
|
gtk_mnemonic_action_finalize,
|
||||||
gtk_mnemonic_action_activate
|
gtk_mnemonic_action_activate,
|
||||||
|
gtk_mnemonic_action_print
|
||||||
};
|
};
|
||||||
|
|
||||||
static GtkMnemonicAction mnemonic = { { >K_MNEMONIC_ACTION_CLASS, 1 } };
|
static GtkMnemonicAction mnemonic = { { >K_MNEMONIC_ACTION_CLASS, 1 } };
|
||||||
@@ -660,12 +740,22 @@ gtk_signal_action_activate (GtkShortcutAction *action,
|
|||||||
return handled;
|
return handled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gtk_signal_action_print (GtkShortcutAction *action,
|
||||||
|
GString *string)
|
||||||
|
{
|
||||||
|
GtkSignalAction *self = (GtkSignalAction *) action;
|
||||||
|
|
||||||
|
g_string_append_printf (string, "signal(%s)", self->name);
|
||||||
|
}
|
||||||
|
|
||||||
static const GtkShortcutActionClass GTK_SIGNAL_ACTION_CLASS = {
|
static const GtkShortcutActionClass GTK_SIGNAL_ACTION_CLASS = {
|
||||||
GTK_SHORTCUT_ACTION_SIGNAL,
|
GTK_SHORTCUT_ACTION_SIGNAL,
|
||||||
sizeof (GtkSignalAction),
|
sizeof (GtkSignalAction),
|
||||||
"GtkSignalAction",
|
"GtkSignalAction",
|
||||||
gtk_signal_action_finalize,
|
gtk_signal_action_finalize,
|
||||||
gtk_signal_action_activate
|
gtk_signal_action_activate,
|
||||||
|
gtk_signal_action_print
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -803,12 +893,22 @@ gtk_action_action_activate (GtkShortcutAction *action,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gtk_action_action_print (GtkShortcutAction *action,
|
||||||
|
GString *string)
|
||||||
|
{
|
||||||
|
GtkActionAction *self = (GtkActionAction *) action;
|
||||||
|
|
||||||
|
g_string_append_printf (string, "action(%s)", self->name);
|
||||||
|
}
|
||||||
|
|
||||||
static const GtkShortcutActionClass GTK_ACTION_ACTION_CLASS = {
|
static const GtkShortcutActionClass GTK_ACTION_ACTION_CLASS = {
|
||||||
GTK_SHORTCUT_ACTION_ACTION,
|
GTK_SHORTCUT_ACTION_ACTION,
|
||||||
sizeof (GtkActionAction),
|
sizeof (GtkActionAction),
|
||||||
"GtkActionAction",
|
"GtkActionAction",
|
||||||
gtk_action_action_finalize,
|
gtk_action_action_finalize,
|
||||||
gtk_action_action_activate
|
gtk_action_action_activate,
|
||||||
|
gtk_action_action_print
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -892,12 +992,22 @@ gtk_gaction_action_activate (GtkShortcutAction *action,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gtk_gaction_action_print (GtkShortcutAction *action,
|
||||||
|
GString *string)
|
||||||
|
{
|
||||||
|
GtkGActionAction *self = (GtkGActionAction *) action;
|
||||||
|
|
||||||
|
g_string_append_printf (string, "gaction(%s %p)", g_action_get_name (self->gaction), self->gaction);
|
||||||
|
}
|
||||||
|
|
||||||
static const GtkShortcutActionClass GTK_GACTION_ACTION_CLASS = {
|
static const GtkShortcutActionClass GTK_GACTION_ACTION_CLASS = {
|
||||||
GTK_SHORTCUT_ACTION_GACTION,
|
GTK_SHORTCUT_ACTION_GACTION,
|
||||||
sizeof (GtkGActionAction),
|
sizeof (GtkGActionAction),
|
||||||
"GtkGActionAction",
|
"GtkGActionAction",
|
||||||
gtk_gaction_action_finalize,
|
gtk_gaction_action_finalize,
|
||||||
gtk_gaction_action_activate
|
gtk_gaction_action_activate,
|
||||||
|
gtk_gaction_action_print
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -91,6 +91,11 @@ void gtk_shortcut_action_unref (GtkShortcutActi
|
|||||||
GDK_AVAILABLE_IN_ALL
|
GDK_AVAILABLE_IN_ALL
|
||||||
GtkShortcutActionType gtk_shortcut_action_get_action_type (GtkShortcutAction *self);
|
GtkShortcutActionType gtk_shortcut_action_get_action_type (GtkShortcutAction *self);
|
||||||
|
|
||||||
|
GDK_AVAILABLE_IN_ALL
|
||||||
|
char * gtk_shortcut_action_to_string (GtkShortcutAction *self);
|
||||||
|
GDK_AVAILABLE_IN_ALL
|
||||||
|
void gtk_shortcut_action_print (GtkShortcutAction *self,
|
||||||
|
GString *string);
|
||||||
GDK_AVAILABLE_IN_ALL
|
GDK_AVAILABLE_IN_ALL
|
||||||
gboolean gtk_shortcut_action_activate (GtkShortcutAction *self,
|
gboolean gtk_shortcut_action_activate (GtkShortcutAction *self,
|
||||||
GtkShortcutActionFlags flags,
|
GtkShortcutActionFlags flags,
|
||||||
|
|||||||
Reference in New Issue
Block a user