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.
This commit is contained in:
Matthias Clasen 2020-04-03 22:41:15 -04:00
parent 9a2f7338df
commit 1424dd9786
2 changed files with 24 additions and 3 deletions

View File

@ -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,

View File

@ -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);