summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2020-04-03 22:41:15 -0400
committerMatthias Clasen <mclasen@redhat.com>2020-04-03 22:41:15 -0400
commit1424dd9786999a50f7351805a418bfb8f3bdd221 (patch)
treeeab4b08da8b5df7b2f7b08e2f6586ce4d399a633
parent9a2f7338dfd3c01bb56e2009684987a51f019119 (diff)
downloadgtk+-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.c24
-rw-r--r--gtk/gtkshortcutaction.h3
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