diff options
author | Matthias Clasen <mclasen@redhat.com> | 2020-04-03 22:41:15 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2020-04-03 22:41:15 -0400 |
commit | 1424dd9786999a50f7351805a418bfb8f3bdd221 (patch) | |
tree | eab4b08da8b5df7b2f7b08e2f6586ce4d399a633 | |
parent | 9a2f7338dfd3c01bb56e2009684987a51f019119 (diff) | |
download | gtk+-1424dd9786999a50f7351805a418bfb8f3bdd221.tar.gz |
Add an api to parse shortcut actions
This is so we can test this code. While doing it
I also fixed the missing else that was caused it
not to work.
-rw-r--r-- | gtk/gtkshortcutaction.c | 24 | ||||
-rw-r--r-- | gtk/gtkshortcutaction.h | 3 |
2 files changed, 24 insertions, 3 deletions
diff --git a/gtk/gtkshortcutaction.c b/gtk/gtkshortcutaction.c index 176fe5fa5a..c1357d04e8 100644 --- a/gtk/gtkshortcutaction.c +++ b/gtk/gtkshortcutaction.c @@ -44,6 +44,10 @@ * - #GtkNamedAction: a shortcut action that calls gtk_widget_activate_action() * - #GtkGActionAction: a shortcut action that activates a given #GAction * - #GtkNothingAction: a shortcut action that does nothing +* +* # GtkShortcutAction as GtkBuildable +* +* GtkShortcut */ #include "config.h" @@ -180,9 +184,7 @@ string_is_function (const char *string, } GtkShortcutAction * -gtk_shortcut_action_parse_builder (GtkBuilder *builder, - const char *string, - GError **error) +gtk_shortcut_action_parse_string (const char *string) { GtkShortcutAction *result; char *arg; @@ -204,6 +206,22 @@ gtk_shortcut_action_parse_builder (GtkBuilder *builder, result = gtk_signal_action_new (arg); g_free (arg); } + else + return NULL; + + return result; +} + +GtkShortcutAction * +gtk_shortcut_action_parse_builder (GtkBuilder *builder, + const char *string, + GError **error) +{ + GtkShortcutAction *result; + + result = gtk_shortcut_action_parse_string (string); + + if (!result) { g_set_error (error, GTK_BUILDER_ERROR, GTK_BUILDER_ERROR_INVALID_VALUE, diff --git a/gtk/gtkshortcutaction.h b/gtk/gtkshortcutaction.h index d599344922..2fa2760324 100644 --- a/gtk/gtkshortcutaction.h +++ b/gtk/gtkshortcutaction.h @@ -61,6 +61,9 @@ GDK_DECLARE_INTERNAL_TYPE (GtkShortcutAction, gtk_shortcut_action, GTK, SHORTCUT GDK_AVAILABLE_IN_ALL char * gtk_shortcut_action_to_string (GtkShortcutAction *self); GDK_AVAILABLE_IN_ALL +GtkShortcutAction * gtk_shortcut_action_parse_string (const char * string); + +GDK_AVAILABLE_IN_ALL void gtk_shortcut_action_print (GtkShortcutAction *self, GString *string); GDK_AVAILABLE_IN_ALL |