[gtk] Remove win32 themeing support



commit 799cb39e0866b0be17367580fd08b37215d3dcdd
Author: Benjamin Otte <otte redhat com>
Date:   Fri Mar 22 22:29:11 2019 +0100

    Remove win32 themeing support
    
    It was unused through all of GTK 3, so it is not worth supporting.
    
    The best Windows themes do not make use of it at all.

 docs/reference/gtk/css-overview.xml                |   18 +-
 docs/reference/gtk/css-properties.xml              |   14 -
 gtk/gen-gtk-gresources-xml.py                      |    5 -
 gtk/gtkcsscolorvalue.c                             |  130 +-
 gtk/gtkcsscolorvalueprivate.h                      |    2 -
 gtk/gtkcssimage.c                                  |    2 -
 gtk/gtkcssimagewin32.c                             |  263 ----
 gtk/gtkcssimagewin32private.h                      |   64 -
 gtk/gtkcssnumbervalue.c                            |   18 +-
 gtk/gtkcsswin32sizevalue.c                         |  407 ------
 gtk/gtkcsswin32sizevalueprivate.h                  |   32 -
 gtk/gtkwin32draw.c                                 |  803 -----------
 gtk/gtkwin32drawprivate.h                          |  181 ---
 gtk/gtkwin32theme.c                                |  518 -------
 gtk/gtkwin32themeprivate.h                         |   70 -
 gtk/meson.build                                    |    5 -
 gtk/theme/win32/gtk-win32-base.css                 | 1438 --------------------
 gtk/theme/win32/gtk.css                            |  251 ----
 .../parser/background-win32-color-is-no-error.css  |    3 -
 .../background-win32-color-is-no-error.ref.css     |    9 -
 testsuite/css/parser/meson.build                   |    2 -
 21 files changed, 5 insertions(+), 4230 deletions(-)
---
diff --git a/docs/reference/gtk/css-overview.xml b/docs/reference/gtk/css-overview.xml
index 9c942e72d2..bbdf66485e 100644
--- a/docs/reference/gtk/css-overview.xml
+++ b/docs/reference/gtk/css-overview.xml
@@ -546,7 +546,7 @@ checkbutton:indeterminate {
       GTK adds several additional ways to specify colors.
     </para>
 
-<literallayout><code>〈gtk color〉 = 〈symbolic color〉 | 〈color expression〉 | 〈win32 color〉</code>
+<literallayout><code>〈gtk color〉 = 〈symbolic color〉 | 〈color expression〉</code>
 </literallayout>
 
     <para>
@@ -592,13 +592,6 @@ checkbutton:indeterminate {
 
 <literallayout><code>〈color expression〉 = lighter( 〈color〉 ) | darker( 〈color〉 ) | shade( 〈color〉, 〈number〉 
) |</code>
 <code>                     alpha( 〈color〉, 〈number〉 ) | mix( 〈color〉, 〈color〉, 〈number〉 )</code>
-</literallayout>
-
-    <para>
-      On Windows, GTK allows to refer to system colors, as follows:
-    </para>
-
-<literallayout><code>〈win32 color〉 = -gtk-win32-color( 〈name〉, 〈integer〉 )</code>
 </literallayout>
 
   </refsect2>
@@ -737,7 +730,7 @@ label {
       GTK extends the CSS syntax for images and also uses it for specifying icons.
     </para>
 
-<literallayout><code>〈gtk image〉 = 〈themed icon〉 | 〈scaled image〉 | 〈recolored image〉 | 〈win32 theme 
part〉</code>
+<literallayout><code>〈gtk image〉 = 〈themed icon〉 | 〈scaled image〉 | 〈recolored image〉</code>
 </literallayout>
 
     <para>
@@ -815,13 +808,6 @@ arrow {
 }
 ]]></programlisting>
     </example>
-    <para>
-      On Windows, GTK allows to refer to system theme parts as images, as follows:
-    </para>
-
-<literallayout><code>〈win32 theme part〉 = -gtk-win32-theme-part( 〈name〉, 〈integer〉 〈integer〉</code>
-<code>                                              [ , [ over( 〈integer〉 〈integer〉 [ , 〈alpha value〉 ]? ) | 
margins( 〈integer〉{1,4} ) ] ]* )</code>
-</literallayout>
 
   </refsect2>
 
diff --git a/docs/reference/gtk/css-properties.xml b/docs/reference/gtk/css-properties.xml
index beadcfa880..5be2484754 100644
--- a/docs/reference/gtk/css-properties.xml
+++ b/docs/reference/gtk/css-properties.xml
@@ -65,20 +65,6 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
       not quite the same as the CSS definition of rem.
     </para>
 
-    <para>
-      Whereever a number is allowed, GTK also accepts a Windows-specific
-      theme size:
-    </para>
-
-<literallayout>
-<code>〈win32 theme size〉 = 〈win32 size〉 | 〈win32 part size〉</code>
-<code>〈win32 size〉 = -gtk-win32-size ( 〈theme name〉, 〈metric id〉 )</code>
-<code>〈win32 part size〉 = [ -gtk-win32-part-width | -gtk-win32-part-height |</code>
-<code>                      -gtk-win32-part-border-top | -gtk-win32-part-border-right |</code>
-<code>                      -gtk-win32-part-border-bottom | -gtk-win32-part-border-left ]</code>
-<code>                    ( 〈theme name〉 , 〈integer〉 , 〈integer〉 )</code>
-</literallayout>
-
 <literallayout><code>〈calc expression〉 = calc( 〈calc sum〉 )</code>
 <code>〈calc sum〉 = 〈calc product〉 [ [ + | - ] 〈calc product〉 ]*</code>
 <code>〈calc product〉 = 〈calc value〉 [ * 〈calc value〉 | / 〈number〉 ]*</code>
diff --git a/gtk/gen-gtk-gresources-xml.py b/gtk/gen-gtk-gresources-xml.py
index 96a52b3e1f..cd42ce6169 100644
--- a/gtk/gen-gtk-gresources-xml.py
+++ b/gtk/gen-gtk-gresources-xml.py
@@ -46,11 +46,6 @@ xml += '\n'
 for f in get_files('theme/HighContrast/assets', '.svg'):
   xml += '    <file>theme/HighContrast/assets/{0}</file>\n'.format(f)
 
-xml += '''
-    <file>theme/win32/gtk-win32-base.css</file>
-    <file>theme/win32/gtk.css</file>
-'''
-
 for f in get_files('gesture', '.symbolic.png'):
   xml += '    <file alias=\'icons/64x64/actions/{0}\'>gesture/{0}</file>\n'.format(f)
 
diff --git a/gtk/gtkcsscolorvalue.c b/gtk/gtkcsscolorvalue.c
index 7f39810e13..3e1bade582 100644
--- a/gtk/gtkcsscolorvalue.c
+++ b/gtk/gtkcsscolorvalue.c
@@ -23,8 +23,6 @@
 #include "gtkcssstylepropertyprivate.h"
 #include "gtkhslaprivate.h"
 #include "gtkstylepropertyprivate.h"
-#include "gtkwin32drawprivate.h"
-#include "gtkwin32themeprivate.h"
 
 #include "gtkprivate.h"
 
@@ -34,7 +32,6 @@ typedef enum {
   COLOR_TYPE_SHADE,
   COLOR_TYPE_ALPHA,
   COLOR_TYPE_MIX,
-  COLOR_TYPE_WIN32,
   COLOR_TYPE_CURRENT_COLOR
 } ColorType;
 
@@ -60,12 +57,6 @@ struct _GtkCssValue
       GtkCssValue *color2;
       gdouble factor;
     } mix;
-
-    struct
-    {
-      GtkWin32Theme *theme;
-      gint id;
-    } win32;
   } sym_col;
 };
 
@@ -90,9 +81,6 @@ gtk_css_value_color_free (GtkCssValue *color)
       _gtk_css_value_unref (color->sym_col.mix.color1);
       _gtk_css_value_unref (color->sym_col.mix.color2);
       break;
-    case COLOR_TYPE_WIN32:
-      gtk_win32_theme_unref (color->sym_col.win32.theme);
-      break;
     case COLOR_TYPE_LITERAL:
     case COLOR_TYPE_CURRENT_COLOR:
     default:
@@ -240,18 +228,6 @@ _gtk_css_color_value_resolve (GtkCssValue      *color,
        value =_gtk_css_rgba_value_new_from_rgba (&res);
       }
 
-      break;
-    case COLOR_TYPE_WIN32:
-      {
-       GdkRGBA res;
-
-        gtk_win32_theme_get_color (color->sym_col.win32.theme,
-                                  color->sym_col.win32.id,
-                                  &res);
-
-       value = _gtk_css_rgba_value_new_from_rgba (&res);
-      }
-
       break;
     case COLOR_TYPE_CURRENT_COLOR:
       if (current)
@@ -350,9 +326,6 @@ gtk_css_value_color_equal (const GtkCssValue *value1,
                                    value2->sym_col.mix.color1) &&
              _gtk_css_value_equal (value1->sym_col.mix.color2,
                                    value2->sym_col.mix.color2);
-    case COLOR_TYPE_WIN32:
-      return gtk_win32_theme_equal (value1->sym_col.win32.theme, value2->sym_col.win32.theme) &&
-             value1->sym_col.win32.id == value2->sym_col.win32.id;
     case COLOR_TYPE_CURRENT_COLOR:
       return TRUE;
     default:
@@ -421,20 +394,6 @@ gtk_css_value_color_print (const GtkCssValue *value,
         g_string_append (string, ")");
       }
       break;
-    case COLOR_TYPE_WIN32:
-      {
-        const char *name;
-        g_string_append (string, GTK_WIN32_THEME_SYMBOLIC_COLOR_NAME"(");
-        gtk_win32_theme_print (value->sym_col.win32.theme, string);
-        g_string_append (string, ", ");
-        name = gtk_win32_get_sys_color_name_for_id (value->sym_col.win32.id);
-        if (name)
-          g_string_append (string, name);
-        else
-          g_string_append_printf (string, "%d", value->sym_col.win32.id);
-        g_string_append (string, ")");
-      }
-      break;
     case COLOR_TYPE_CURRENT_COLOR:
       g_string_append (string, "currentColor");
       break;
@@ -543,38 +502,6 @@ _gtk_css_color_value_new_mix (GtkCssValue *color1,
   return value;
 }
 
-static GtkCssValue *
-gtk_css_color_value_new_win32_for_theme (GtkWin32Theme *theme,
-                                         gint           id)
-{
-  GtkCssValue *value;
-
-  gtk_internal_return_val_if_fail (theme != NULL, NULL);
-
-  value = _gtk_css_value_new (GtkCssValue, &GTK_CSS_VALUE_COLOR);
-  value->type = COLOR_TYPE_WIN32;
-  value->sym_col.win32.theme = gtk_win32_theme_ref (theme);
-  value->sym_col.win32.id = id;
-
-  return value;
-}
-
-GtkCssValue *
-_gtk_css_color_value_new_win32 (const gchar *theme_class,
-                                gint         id)
-{
-  GtkWin32Theme *theme;
-  GtkCssValue *value;
-
-  gtk_internal_return_val_if_fail (theme_class != NULL, NULL);
-
-  theme = gtk_win32_theme_lookup (theme_class);
-  value = gtk_css_color_value_new_win32_for_theme (theme, id);
-  gtk_win32_theme_unref (theme);
-
-  return value;
-}
-
 GtkCssValue *
 _gtk_css_color_value_new_current_color (void)
 {
@@ -590,54 +517,9 @@ typedef enum {
   COLOR_DARKER,
   COLOR_SHADE,
   COLOR_ALPHA,
-  COLOR_MIX,
-  COLOR_WIN32
+  COLOR_MIX
 } ColorParseType;
 
-static GtkCssValue *
-gtk_css_color_parse_win32 (GtkCssParser *parser)
-{
-  GtkCssValue *color;
-  GtkWin32Theme *theme;
-  char *name;
-  int id;
-
-  theme = gtk_win32_theme_parse (parser);
-  if (theme == NULL)
-    return NULL;
-
-  if (! _gtk_css_parser_try (parser, ",", TRUE))
-    {
-      gtk_win32_theme_unref (theme);
-      _gtk_css_parser_error (parser,
-                            "Expected ','");
-      return NULL;
-    }
-
-  name = _gtk_css_parser_try_ident (parser, TRUE);
-  if (name)
-    {
-      id = gtk_win32_get_sys_color_id_for_name (name);
-      if (id == -1)
-        {
-          _gtk_css_parser_error (parser, "'%s' is not a win32 color name.", name);
-          g_free (name);
-          return NULL;
-        }
-      g_free (name);
-    }
-  else if (!_gtk_css_parser_try_int (parser, &id))
-    {
-      gtk_win32_theme_unref (theme);
-      _gtk_css_parser_error (parser, "Expected a valid integer value");
-      return NULL;
-    }
-
-  color = gtk_css_color_value_new_win32_for_theme (theme, id);
-  gtk_win32_theme_unref (theme);
-  return color;
-}
-
 static GtkCssValue *
 _gtk_css_color_value_parse_function (GtkCssParser   *parser,
                                      ColorParseType  color)
@@ -704,12 +586,6 @@ _gtk_css_color_value_parse_function (GtkCssParser   *parser,
       
       value = _gtk_css_color_value_new_literal (&rgba);
     }
-  else if (color == COLOR_WIN32)
-    {
-      value = gtk_css_color_parse_win32 (parser);
-      if (value == NULL)
-       return NULL;
-    }
   else
     {
       child1 = _gtk_css_color_value_parse (parser);
@@ -775,7 +651,6 @@ _gtk_css_color_value_parse_function (GtkCssParser   *parser,
           break;
         case COLOR_RGB:
         case COLOR_RGBA:
-        case COLOR_WIN32:
         default:
           g_assert_not_reached ();
           value = NULL;
@@ -802,8 +677,7 @@ _gtk_css_color_value_parse (GtkCssParser *parser)
   GtkCssValue *value;
   GdkRGBA rgba;
   guint color;
-  const char *names[] = {"rgba", "rgb",  "lighter", "darker", "shade", "alpha", "mix",
-                        GTK_WIN32_THEME_SYMBOLIC_COLOR_NAME};
+  const char *names[] = {"rgba", "rgb",  "lighter", "darker", "shade", "alpha", "mix"};
   char *name;
 
   if (_gtk_css_parser_try (parser, "currentColor", TRUE))
diff --git a/gtk/gtkcsscolorvalueprivate.h b/gtk/gtkcsscolorvalueprivate.h
index 490d5fbde9..e5f9c42ee6 100644
--- a/gtk/gtkcsscolorvalueprivate.h
+++ b/gtk/gtkcsscolorvalueprivate.h
@@ -37,8 +37,6 @@ GtkCssValue *   _gtk_css_color_value_new_alpha          (GtkCssValue    *color,
 GtkCssValue *   _gtk_css_color_value_new_mix            (GtkCssValue    *color1,
                                                          GtkCssValue    *color2,
                                                          gdouble         factor);
-GtkCssValue *   _gtk_css_color_value_new_win32          (const gchar    *theme_class,
-                                                         gint            id);
 GtkCssValue *   _gtk_css_color_value_new_current_color  (void);
 
 GtkCssValue *   _gtk_css_color_value_parse              (GtkCssParser   *parser);
diff --git a/gtk/gtkcssimage.c b/gtk/gtkcssimage.c
index 90919b0109..8a8332287d 100644
--- a/gtk/gtkcssimage.c
+++ b/gtk/gtkcssimage.c
@@ -33,7 +33,6 @@
 #include "gtk/gtkcssimagescaledprivate.h"
 #include "gtk/gtkcssimagerecolorprivate.h"
 #include "gtk/gtkcssimagefallbackprivate.h"
-#include "gtk/gtkcssimagewin32private.h"
 
 G_DEFINE_ABSTRACT_TYPE (GtkCssImage, _gtk_css_image, G_TYPE_OBJECT)
 
@@ -499,7 +498,6 @@ gtk_css_image_get_parser_type (GtkCssParser *parser)
     { "-gtk-icontheme", _gtk_css_image_icon_theme_get_type },
     { "-gtk-scaled", _gtk_css_image_scaled_get_type },
     { "-gtk-recolor", _gtk_css_image_recolor_get_type },
-    { "-gtk-win32-theme-part", _gtk_css_image_win32_get_type },
     { "linear-gradient", _gtk_css_image_linear_get_type },
     { "repeating-linear-gradient", _gtk_css_image_linear_get_type },
     { "radial-gradient", _gtk_css_image_radial_get_type },
diff --git a/gtk/gtkcssnumbervalue.c b/gtk/gtkcssnumbervalue.c
index 5348a209f4..24396fa29d 100644
--- a/gtk/gtkcssnumbervalue.c
+++ b/gtk/gtkcssnumbervalue.c
@@ -21,7 +21,6 @@
 
 #include "gtkcsscalcvalueprivate.h"
 #include "gtkcssdimensionvalueprivate.h"
-#include "gtkcsswin32sizevalueprivate.h"
 #include "gtkprivate.h"
 
 struct _GtkCssValue {
@@ -131,14 +130,7 @@ gboolean
 gtk_css_number_value_can_parse (GtkCssParser *parser)
 {
   return _gtk_css_parser_has_number (parser)
-      || _gtk_css_parser_has_prefix (parser, "calc")
-      || _gtk_css_parser_has_prefix (parser, "-gtk-win32-size")
-      || _gtk_css_parser_has_prefix (parser, "-gtk-win32-part-width")
-      || _gtk_css_parser_has_prefix (parser, "-gtk-win32-part-height")
-      || _gtk_css_parser_has_prefix (parser, "-gtk-win32-part-border-top")
-      || _gtk_css_parser_has_prefix (parser, "-gtk-win32-part-border-left")
-      || _gtk_css_parser_has_prefix (parser, "-gtk-win32-part-border-bottom")
-      || _gtk_css_parser_has_prefix (parser, "-gtk-win32-part-border-right");
+      || _gtk_css_parser_has_prefix (parser, "calc");
 }
 
 GtkCssValue *
@@ -147,14 +139,6 @@ _gtk_css_number_value_parse (GtkCssParser           *parser,
 {
   if (_gtk_css_parser_has_prefix (parser, "calc"))
     return gtk_css_calc_value_parse (parser, flags);
-  if (_gtk_css_parser_has_prefix (parser, "-gtk-win32-size") ||
-      _gtk_css_parser_has_prefix (parser, "-gtk-win32-part-width") ||
-      _gtk_css_parser_has_prefix (parser, "-gtk-win32-part-height") ||
-      _gtk_css_parser_has_prefix (parser, "-gtk-win32-part-border-top") ||
-      _gtk_css_parser_has_prefix (parser, "-gtk-win32-part-border-left") ||
-      _gtk_css_parser_has_prefix (parser, "-gtk-win32-part-border-bottom") ||
-      _gtk_css_parser_has_prefix (parser, "-gtk-win32-part-border-right"))
-    return gtk_css_win32_size_value_parse (parser, flags);
 
   return gtk_css_dimension_value_parse (parser, flags);
 }
diff --git a/gtk/meson.build b/gtk/meson.build
index 714c0eab65..ef9b7a0e32 100644
--- a/gtk/meson.build
+++ b/gtk/meson.build
@@ -65,7 +65,6 @@ gtk_private_sources = files([
   'gtkcssimagescaled.c',
   'gtkcssimageurl.c',
   'gtkcssimagevalue.c',
-  'gtkcssimagewin32.c',
   'gtkcssinheritvalue.c',
   'gtkcssinitialvalue.c',
   'gtkcsskeyframes.c',
@@ -99,7 +98,6 @@ gtk_private_sources = files([
   'gtkcssunsetvalue.c',
   'gtkcssvalue.c',
   'gtkcsswidgetnode.c',
-  'gtkcsswin32sizevalue.c',
   'gtkfilechooserembed.c',
   'gtkfilechooserentry.c',
   'gtkfilechoosererrorstack.c',
@@ -144,9 +142,6 @@ gtk_private_sources = files([
   'gtktextbtree.c',
   'gtktrashmonitor.c',
   'gtktreedatalist.c',
-  'gtkwin32draw.c',
-  'gtkwin32theme.c',
-  'gtkwin32theme.c',
 ])
 
 # List of files that contain public API, and should be introspected
diff --git a/testsuite/css/parser/meson.build b/testsuite/css/parser/meson.build
index a5e7d91c4c..db4672365a 100644
--- a/testsuite/css/parser/meson.build
+++ b/testsuite/css/parser/meson.build
@@ -157,8 +157,6 @@ test_data = [
   'background-shorthand-single.ref.css',
   'background-size.css',
   'background-size.ref.css',
-  'background-win32-color-is-no-error.css',
-  'background-win32-color-is-no-error.ref.css',
   'border-color.css',
   'border-color-currentcolor.css',
   'border-color-currentcolor.ref.css',


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