[gtk/wip/baedert/for-master: 62/64] cssdimenstionvalue: Add common degree value singletons



commit cba3eb9ca441d90c23e0f603b4701fb075e5ad27
Author: Timm Bäder <mail baedert org>
Date:   Thu Nov 7 07:31:04 2019 +0100

    cssdimenstionvalue: Add common degree value singletons

 gtk/gtkcssdimensionvalue.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)
---
diff --git a/gtk/gtkcssdimensionvalue.c b/gtk/gtkcssdimensionvalue.c
index 61a0e1926b..d545b65e20 100644
--- a/gtk/gtkcssdimensionvalue.c
+++ b/gtk/gtkcssdimensionvalue.c
@@ -318,6 +318,12 @@ gtk_css_dimension_value_new (double     value,
     { &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_S, 0 },
     { &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_S, 1 },
   };
+  static GtkCssValue deg_singletons[] = {
+    { &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_DEG, 0   },
+    { &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_DEG, 90  },
+    { &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_DEG, 180 },
+    { &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_DEG, 270 },
+  };
   GtkCssValue *result;
 
   switch ((guint)unit)
@@ -365,6 +371,18 @@ gtk_css_dimension_value_new (double     value,
 
       break;
 
+    case GTK_CSS_DEG:
+      if (value == 0)
+        return _gtk_css_value_ref (&deg_singletons[0]);
+      if (value == 90)
+        return _gtk_css_value_ref (&deg_singletons[1]);
+      if (value == 180)
+        return _gtk_css_value_ref (&deg_singletons[2]);
+      if (value == 270)
+        return _gtk_css_value_ref (&deg_singletons[3]);
+
+      break;
+
     default:
       ;
     }


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