forked from AuroraMiddleware/gtk
shortcutaction: Add gtk_shortcut_action_to_string()
For all but the callback action, we can print something useful.
This commit is contained in:
parent
34987c0b5c
commit
4c5d8547be
@ -6036,6 +6036,8 @@ gtk_shortcut_action_ref
|
||||
gtk_shortcut_action_unref
|
||||
GtkShortcutActionType
|
||||
gtk_shortcut_action_get_action_type
|
||||
gtk_shortcut_action_to_string
|
||||
gtk_shortcut_action_print
|
||||
gtk_shortcut_action_activate
|
||||
|
||||
<SUBSECTION>
|
||||
|
@ -63,6 +63,8 @@ struct _GtkShortcutActionClass
|
||||
GtkShortcutActionFlags flags,
|
||||
GtkWidget *widget,
|
||||
GVariant *args);
|
||||
void (* print) (GtkShortcutAction *action,
|
||||
GString *string);
|
||||
};
|
||||
|
||||
G_DEFINE_BOXED_TYPE (GtkShortcutAction, gtk_shortcut_action,
|
||||
@ -150,6 +152,50 @@ gtk_shortcut_action_get_action_type (GtkShortcutAction *self)
|
||||
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:
|
||||
* @self: a #GtkShortcutAction
|
||||
@ -204,12 +250,20 @@ gtk_nothing_action_activate (GtkShortcutAction *action,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_nothing_action_print (GtkShortcutAction *action,
|
||||
GString *string)
|
||||
{
|
||||
g_string_append (string, "nothing");
|
||||
}
|
||||
|
||||
static const GtkShortcutActionClass GTK_NOTHING_ACTION_CLASS = {
|
||||
GTK_SHORTCUT_ACTION_NOTHING,
|
||||
sizeof (GtkNothingAction),
|
||||
"GtkNothingAction",
|
||||
gtk_nothing_action_finalize,
|
||||
gtk_nothing_action_activate
|
||||
gtk_nothing_action_activate,
|
||||
gtk_nothing_action_print
|
||||
};
|
||||
|
||||
static GtkNothingAction nothing = { { >K_NOTHING_ACTION_CLASS, 1 } };
|
||||
@ -261,12 +315,22 @@ gtk_callback_action_activate (GtkShortcutAction *action,
|
||||
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 = {
|
||||
GTK_SHORTCUT_ACTION_CALLBACK,
|
||||
sizeof (GtkCallbackAction),
|
||||
"GtkCallbackAction",
|
||||
gtk_callback_action_finalize,
|
||||
gtk_callback_action_activate
|
||||
gtk_callback_action_activate,
|
||||
gtk_callback_action_print
|
||||
};
|
||||
|
||||
/**
|
||||
@ -322,12 +386,20 @@ gtk_activate_action_activate (GtkShortcutAction *action,
|
||||
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 = {
|
||||
GTK_SHORTCUT_ACTION_ACTIVATE,
|
||||
sizeof (GtkActivateAction),
|
||||
"GtkActivateAction",
|
||||
gtk_activate_action_finalize,
|
||||
gtk_activate_action_activate
|
||||
gtk_activate_action_activate,
|
||||
gtk_activate_action_print
|
||||
};
|
||||
|
||||
static GtkActivateAction activate = { { >K_ACTIVATE_ACTION_CLASS, 1 } };
|
||||
@ -370,12 +442,20 @@ gtk_mnemonic_action_activate (GtkShortcutAction *action,
|
||||
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 = {
|
||||
GTK_SHORTCUT_ACTION_MNEMONIC,
|
||||
sizeof (GtkMnemonicAction),
|
||||
"GtkMnemonicAction",
|
||||
gtk_mnemonic_action_finalize,
|
||||
gtk_mnemonic_action_activate
|
||||
gtk_mnemonic_action_activate,
|
||||
gtk_mnemonic_action_print
|
||||
};
|
||||
|
||||
static GtkMnemonicAction mnemonic = { { >K_MNEMONIC_ACTION_CLASS, 1 } };
|
||||
@ -659,12 +739,22 @@ gtk_signal_action_activate (GtkShortcutAction *action,
|
||||
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 = {
|
||||
GTK_SHORTCUT_ACTION_SIGNAL,
|
||||
sizeof (GtkSignalAction),
|
||||
"GtkSignalAction",
|
||||
gtk_signal_action_finalize,
|
||||
gtk_signal_action_activate
|
||||
gtk_signal_action_activate,
|
||||
gtk_signal_action_print
|
||||
};
|
||||
|
||||
/**
|
||||
@ -802,12 +892,22 @@ gtk_action_action_activate (GtkShortcutAction *action,
|
||||
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 = {
|
||||
GTK_SHORTCUT_ACTION_ACTION,
|
||||
sizeof (GtkActionAction),
|
||||
"GtkActionAction",
|
||||
gtk_action_action_finalize,
|
||||
gtk_action_action_activate
|
||||
gtk_action_action_activate,
|
||||
gtk_action_action_print
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -89,6 +89,11 @@ void gtk_shortcut_action_unref (GtkShortcutActi
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
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
|
||||
gboolean gtk_shortcut_action_activate (GtkShortcutAction *self,
|
||||
GtkShortcutActionFlags flags,
|
||||
|
Loading…
Reference in New Issue
Block a user