[gtk] settings: Remove RC property parsers



commit d92cfa21799266d80bcfb7b1c8f83d51720498f7
Author: Benjamin Otte <otte redhat com>
Date:   Sun Nov 17 02:39:17 2019 +0100

    settings: Remove RC property parsers
    
    They've not been used for a long time and the APIs where they could
    reasonably be used have been gone for as long.

 docs/reference/gtk/gtk4-sections.txt |   5 -
 gtk/gtksettings.c                    | 340 -----------------------------------
 gtk/gtksettings.h                    |  22 ---
 3 files changed, 367 deletions(-)
---
diff --git a/docs/reference/gtk/gtk4-sections.txt b/docs/reference/gtk/gtk4-sections.txt
index b1f2405cb4..f11cfc15c4 100644
--- a/docs/reference/gtk/gtk4-sections.txt
+++ b/docs/reference/gtk/gtk4-sections.txt
@@ -2603,11 +2603,6 @@ GtkSettings
 GtkSettingsValue
 gtk_settings_get_default
 gtk_settings_get_for_display
-gtk_rc_property_parse_color
-gtk_rc_property_parse_enum
-gtk_rc_property_parse_flags
-gtk_rc_property_parse_requisition
-gtk_rc_property_parse_border
 gtk_settings_reset_property
 <SUBSECTION Standard>
 GtkSettingsClass
diff --git a/gtk/gtksettings.c b/gtk/gtksettings.c
index c450dd467d..7895f414e2 100644
--- a/gtk/gtksettings.c
+++ b/gtk/gtksettings.c
@@ -1473,346 +1473,6 @@ gtk_settings_set_property_value_internal (GtkSettings            *settings,
     apply_queued_setting (settings, pspec, qvalue);
 }
 
-static const GScannerConfig gtk_rc_scanner_config =
-{
-  (char *) (
-   " \t\r\n"
-   )                   /* cset_skip_characters */,
-  (char *) (
-   "_"
-   G_CSET_a_2_z
-   G_CSET_A_2_Z
-   )                   /* cset_identifier_first */,
-  (char *) (
-   G_CSET_DIGITS
-   "-_"
-   G_CSET_a_2_z
-   G_CSET_A_2_Z
-   )                   /* cset_identifier_nth */,
-  (char *) ( "#\n" )   /* cpair_comment_single */,
-  
-  TRUE                 /* case_sensitive */,
-  
-  TRUE                 /* skip_comment_multi */,
-  TRUE                 /* skip_comment_single */,
-  TRUE                 /* scan_comment_multi */,
-  TRUE                 /* scan_identifier */,
-  FALSE                        /* scan_identifier_1char */,
-  FALSE                        /* scan_identifier_NULL */,
-  TRUE                 /* scan_symbols */,
-  TRUE                 /* scan_binary */,
-  TRUE                 /* scan_octal */,
-  TRUE                 /* scan_float */,
-  TRUE                 /* scan_hex */,
-  TRUE                 /* scan_hex_dollar */,
-  TRUE                 /* scan_string_sq */,
-  TRUE                 /* scan_string_dq */,
-  TRUE                 /* numbers_2_int */,
-  FALSE                        /* int_2_float */,
-  FALSE                        /* identifier_2_string */,
-  TRUE                 /* char_2_token */,
-  TRUE                 /* symbol_2_token */,
-  FALSE                        /* scope_0_fallback */,
-};
-
-static GScanner*
-gtk_rc_scanner_new (void)
-{
-  return g_scanner_new (&gtk_rc_scanner_config);
-}
-
-/**
- * gtk_rc_property_parse_enum:
- * @pspec: a #GParamSpec
- * @gstring: the #GString to be parsed
- * @property_value: a #GValue which must hold enum values.
- *
- * A #GtkRcPropertyParser for use with gtk_settings_install_property_parser()
- * or gtk_widget_class_install_style_property_parser() which parses a single
- * enumeration value.
- *
- * The enumeration value can be specified by its name, its nickname or
- * its numeric value. For consistency with flags parsing, the value
- * may be surrounded by parentheses.
- *
- * Returns: %TRUE if @gstring could be parsed and @property_value
- * has been set to the resulting #GEnumValue.
- **/
-gboolean
-gtk_rc_property_parse_enum (const GParamSpec *pspec,
-                            const GString    *gstring,
-                            GValue           *property_value)
-{
-  gboolean need_closing_brace = FALSE, success = FALSE;
-  GScanner *scanner;
-  GEnumValue *enum_value = NULL;
-
-  g_return_val_if_fail (G_IS_PARAM_SPEC (pspec), FALSE);
-  g_return_val_if_fail (G_VALUE_HOLDS_ENUM (property_value), FALSE);
-
-  scanner = gtk_rc_scanner_new ();
-  g_scanner_input_text (scanner, gstring->str, gstring->len);
-
-  /* we just want to parse _one_ value, but for consistency with flags parsing
-   * we support optional parenthesis
-   */
-  g_scanner_get_next_token (scanner);
-  if (scanner->token == '(')
-    {
-      need_closing_brace = TRUE;
-      g_scanner_get_next_token (scanner);
-    }
-  if (scanner->token == G_TOKEN_IDENTIFIER)
-    {
-      GEnumClass *class = G_PARAM_SPEC_ENUM (pspec)->enum_class;
-
-      enum_value = g_enum_get_value_by_name (class, scanner->value.v_identifier);
-      if (!enum_value)
-        enum_value = g_enum_get_value_by_nick (class, scanner->value.v_identifier);
-      if (enum_value)
-        {
-          g_value_set_enum (property_value, enum_value->value);
-          success = TRUE;
-        }
-    }
-  else if (scanner->token == G_TOKEN_INT)
-    {
-      g_value_set_enum (property_value, scanner->value.v_int);
-      success = TRUE;
-    }
-  if (need_closing_brace && g_scanner_get_next_token (scanner) != ')')
-    success = FALSE;
-  if (g_scanner_get_next_token (scanner) != G_TOKEN_EOF)
-    success = FALSE;
-
-  g_scanner_destroy (scanner);
-
-  return success;
-}
-
-static guint
-parse_flags_value (GScanner    *scanner,
-                   GFlagsClass *class,
-                   guint       *number)
-{
-  g_scanner_get_next_token (scanner);
-  if (scanner->token == G_TOKEN_IDENTIFIER)
-    {
-      GFlagsValue *flags_value;
-
-      flags_value = g_flags_get_value_by_name (class, scanner->value.v_identifier);
-      if (!flags_value)
-        flags_value = g_flags_get_value_by_nick (class, scanner->value.v_identifier);
-      if (flags_value)
-        {
-          *number |= flags_value->value;
-          return G_TOKEN_NONE;
-        }
-    }
-  else if (scanner->token == G_TOKEN_INT)
-    {
-      *number |= scanner->value.v_int;
-      return G_TOKEN_NONE;
-    }
-  return G_TOKEN_IDENTIFIER;
-}
-
-/**
- * gtk_rc_property_parse_flags:
- * @pspec: a #GParamSpec
- * @gstring: the #GString to be parsed
- * @property_value: a #GValue which must hold flags values.
- *
- * A #GtkRcPropertyParser for use with gtk_settings_install_property_parser()
- * or gtk_widget_class_install_style_property_parser() which parses flags.
- *
- * Flags can be specified by their name, their nickname or
- * numerically. Multiple flags can be specified in the form
- * `"( flag1 | flag2 | ... )"`.
- *
- * Returns: %TRUE if @gstring could be parsed and @property_value
- * has been set to the resulting flags value.
- **/
-gboolean
-gtk_rc_property_parse_flags (const GParamSpec *pspec,
-                             const GString    *gstring,
-                             GValue           *property_value)
-{
-  GFlagsClass *class;
-   gboolean success = FALSE;
-  GScanner *scanner;
-
-  g_return_val_if_fail (G_IS_PARAM_SPEC (pspec), FALSE);
-  g_return_val_if_fail (G_VALUE_HOLDS_FLAGS (property_value), FALSE);
-
-  class = G_PARAM_SPEC_FLAGS (pspec)->flags_class;
-  scanner = gtk_rc_scanner_new ();
-  g_scanner_input_text (scanner, gstring->str, gstring->len);
-
-  /* parse either a single flags value or a "\( ... [ \| ... ] \)" compound */
-  if (g_scanner_peek_next_token (scanner) == G_TOKEN_IDENTIFIER ||
-      scanner->next_token == G_TOKEN_INT)
-    {
-      guint token, flags_value = 0;
-
-      token = parse_flags_value (scanner, class, &flags_value);
-
-      if (token == G_TOKEN_NONE && g_scanner_peek_next_token (scanner) == G_TOKEN_EOF)
-        {
-          success = TRUE;
-          g_value_set_flags (property_value, flags_value);
-        }
-
-    }
-  else if (g_scanner_get_next_token (scanner) == '(')
-    {
-      guint token, flags_value = 0;
-
-      /* parse first value */
-      token = parse_flags_value (scanner, class, &flags_value);
-
-      /* parse nth values, preceeded by '|' */
-      while (token == G_TOKEN_NONE && g_scanner_get_next_token (scanner) == '|')
-        token = parse_flags_value (scanner, class, &flags_value);
-
-      /* done, last token must have closed expression */
-      if (token == G_TOKEN_NONE && scanner->token == ')' &&
-          g_scanner_peek_next_token (scanner) == G_TOKEN_EOF)
-        {
-          g_value_set_flags (property_value, flags_value);
-          success = TRUE;
-        }
-    }
-  g_scanner_destroy (scanner);
-
-  return success;
-}
-
-static gboolean
-get_braced_int (GScanner *scanner,
-                gboolean  first,
-                gboolean  last,
-                gint     *value)
-{
-  if (first)
-    {
-      g_scanner_get_next_token (scanner);
-      if (scanner->token != '{')
-        return FALSE;
-    }
-
-  g_scanner_get_next_token (scanner);
-  if (scanner->token != G_TOKEN_INT)
-    return FALSE;
-
-  *value = scanner->value.v_int;
-
-  if (last)
-    {
-      g_scanner_get_next_token (scanner);
-      if (scanner->token != '}')
-        return FALSE;
-    }
-  else
-    {
-      g_scanner_get_next_token (scanner);
-      if (scanner->token != ',')
-        return FALSE;
-    }
-
-  return TRUE;
-}
-
-/**
- * gtk_rc_property_parse_requisition:
- * @pspec: a #GParamSpec
- * @gstring: the #GString to be parsed
- * @property_value: a #GValue which must hold boxed values.
- *
- * A #GtkRcPropertyParser for use with gtk_settings_install_property_parser()
- * or gtk_widget_class_install_style_property_parser() which parses a
- * requisition in the form
- * `"{ width, height }"` for integers %width and %height.
- *
- * Returns: %TRUE if @gstring could be parsed and @property_value
- * has been set to the resulting #GtkRequisition.
- **/
-gboolean
-gtk_rc_property_parse_requisition  (const GParamSpec *pspec,
-                                    const GString    *gstring,
-                                    GValue           *property_value)
-{
-  GtkRequisition requisition;
-  GScanner *scanner;
-  gboolean success = FALSE;
-
-  g_return_val_if_fail (G_IS_PARAM_SPEC (pspec), FALSE);
-  g_return_val_if_fail (G_VALUE_HOLDS_BOXED (property_value), FALSE);
-
-  scanner = gtk_rc_scanner_new ();
-  g_scanner_input_text (scanner, gstring->str, gstring->len);
-
-  if (get_braced_int (scanner, TRUE, FALSE, &requisition.width) &&
-      get_braced_int (scanner, FALSE, TRUE, &requisition.height))
-    {
-      g_value_set_boxed (property_value, &requisition);
-      success = TRUE;
-    }
-
-  g_scanner_destroy (scanner);
-
-  return success;
-}
-
-/**
- * gtk_rc_property_parse_border:
- * @pspec: a #GParamSpec
- * @gstring: the #GString to be parsed
- * @property_value: a #GValue which must hold boxed values.
- *
- * A #GtkRcPropertyParser for use with gtk_settings_install_property_parser()
- * or gtk_widget_class_install_style_property_parser() which parses
- * borders in the form
- * `"{ left, right, top, bottom }"` for integers
- * left, right, top and bottom.
- *
- * Returns: %TRUE if @gstring could be parsed and @property_value
- * has been set to the resulting #GtkBorder.
- **/
-gboolean
-gtk_rc_property_parse_border (const GParamSpec *pspec,
-                              const GString    *gstring,
-                              GValue           *property_value)
-{
-  GtkBorder border;
-  GScanner *scanner;
-  gboolean success = FALSE;
-  int left, right, top, bottom;
-
-  g_return_val_if_fail (G_IS_PARAM_SPEC (pspec), FALSE);
-  g_return_val_if_fail (G_VALUE_HOLDS_BOXED (property_value), FALSE);
-
-  scanner = gtk_rc_scanner_new ();
-  g_scanner_input_text (scanner, gstring->str, gstring->len);
-
-  if (get_braced_int (scanner, TRUE, FALSE, &left) &&
-      get_braced_int (scanner, FALSE, FALSE, &right) &&
-      get_braced_int (scanner, FALSE, FALSE, &top) &&
-      get_braced_int (scanner, FALSE, TRUE, &bottom))
-    {
-      border.left = left;
-      border.right = right;
-      border.top = top;
-      border.bottom = bottom;
-      g_value_set_boxed (property_value, &border);
-      success = TRUE;
-    }
-
-  g_scanner_destroy (scanner);
-
-  return success;
-}
-
 static void
 settings_update_double_click (GtkSettings *settings)
 {
diff --git a/gtk/gtksettings.h b/gtk/gtksettings.h
index 7b47f9689c..2e63beb471 100644
--- a/gtk/gtksettings.h
+++ b/gtk/gtksettings.h
@@ -73,28 +73,6 @@ GtkSettings*    gtk_settings_get_default             (void);
 GDK_AVAILABLE_IN_ALL
 GtkSettings*    gtk_settings_get_for_display         (GdkDisplay *display);
 
-/* --- precoded parsing functions --- */
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_rc_property_parse_color       (const GParamSpec *pspec,
-                                            const GString    *gstring,
-                                            GValue           *property_value);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_rc_property_parse_enum        (const GParamSpec *pspec,
-                                            const GString    *gstring,
-                                            GValue           *property_value);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_rc_property_parse_flags       (const GParamSpec *pspec,
-                                            const GString    *gstring,
-                                            GValue           *property_value);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_rc_property_parse_requisition (const GParamSpec *pspec,
-                                            const GString    *gstring,
-                                            GValue           *property_value);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_rc_property_parse_border      (const GParamSpec *pspec,
-                                            const GString    *gstring,
-                                            GValue           *property_value);
-
 GDK_AVAILABLE_IN_ALL
 void     gtk_settings_reset_property       (GtkSettings            *settings,
                                             const gchar            *name);


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