[gtk/shortcut-action-parse: 1/2] Add an api to parse shortcut actions



commit 1424dd9786999a50f7351805a418bfb8f3bdd221
Author: Matthias Clasen <mclasen redhat com>
Date:   Fri Apr 3 22:41:15 2020 -0400

    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.

 gtk/gtkshortcutaction.c | 24 +++++++++++++++++++++---
 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
@@ -60,6 +60,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);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]