+static void
+on_syntax (GAction *action, GVariant *param, PsppireSyntaxWindow *sw)
+{
+ g_action_change_state (action, param);
+ GVariant *new_state = g_action_get_state (action);
+
+ const gchar *what = g_variant_get_string (new_state, NULL);
+ if (0 == g_strcmp0 (what, "auto"))
+ sw->syntax_mode = LEX_SYNTAX_AUTO;
+ else if (0 == g_strcmp0 (what, "interactive"))
+ sw->syntax_mode = LEX_SYNTAX_INTERACTIVE;
+ else if (0 == g_strcmp0 (what, "batch"))
+ sw->syntax_mode = LEX_SYNTAX_BATCH;
+ else
+ g_warn_if_reached ();
+}
+
+