[metacity] theme: move draw_op_lists to MetaThemeMetacity



commit 20d710475fadd2312429f93f49f4cf6eede2be15
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Fri Jan 29 14:15:02 2016 +0200

    theme: move draw_op_lists to MetaThemeMetacity

 libmetacity/meta-theme-metacity.c |   23 ++++++++++++++++
 libmetacity/meta-theme-metacity.h |   51 +++++++++++++++++++++---------------
 src/ui/theme-parser.c             |   24 ++++++++++-------
 src/ui/theme-private.h            |    6 ----
 src/ui/theme.c                    |   23 ----------------
 5 files changed, 67 insertions(+), 60 deletions(-)
---
diff --git a/libmetacity/meta-theme-metacity.c b/libmetacity/meta-theme-metacity.c
index 8714035..c6eebb6 100644
--- a/libmetacity/meta-theme-metacity.c
+++ b/libmetacity/meta-theme-metacity.c
@@ -20,6 +20,7 @@
 
 #include <glib/gi18n-lib.h>
 
+#include "meta-draw-op.h"
 #include "meta-theme.h"
 #include "meta-theme-metacity.h"
 
@@ -30,6 +31,8 @@ struct _MetaThemeMetacity
   GHashTable    *integers;
   GHashTable    *floats;
   GHashTable    *colors;
+
+  GHashTable    *draw_op_lists;
 };
 
 G_DEFINE_TYPE (MetaThemeMetacity, meta_theme_metacity, META_TYPE_THEME_IMPL)
@@ -51,6 +54,8 @@ meta_theme_metacity_dispose (GObject *object)
   g_clear_pointer (&metacity->floats, g_hash_table_destroy);
   g_clear_pointer (&metacity->colors, g_hash_table_destroy);
 
+  g_clear_pointer (&metacity->draw_op_lists, g_hash_table_destroy);
+
   G_OBJECT_CLASS (meta_theme_metacity_parent_class)->dispose (object);
 }
 
@@ -67,6 +72,8 @@ meta_theme_metacity_class_init (MetaThemeMetacityClass *metacity_class)
 static void
 meta_theme_metacity_init (MetaThemeMetacity *metacity)
 {
+  metacity->draw_op_lists = g_hash_table_new_full (g_str_hash, g_str_equal, g_free,
+                                                   (GDestroyNotify) meta_draw_op_list_unref);
 }
 
 gboolean
@@ -241,3 +248,19 @@ meta_theme_metacity_lookup_color (MetaThemeMetacity  *metacity,
 
   return TRUE;
 }
+
+MetaDrawOpList *
+meta_theme_metacity_lookup_draw_op_list (MetaThemeMetacity *metacity,
+                                         const gchar       *name)
+{
+  return g_hash_table_lookup (metacity->draw_op_lists, name);
+}
+
+void
+meta_theme_metacity_insert_draw_op_list (MetaThemeMetacity *metacity,
+                                         const gchar       *name,
+                                         MetaDrawOpList    *op_list)
+{
+  meta_draw_op_list_ref (op_list);
+  g_hash_table_replace (metacity->draw_op_lists, g_strdup (name), op_list);
+}
diff --git a/libmetacity/meta-theme-metacity.h b/libmetacity/meta-theme-metacity.h
index 269acf9..9e27a8f 100644
--- a/libmetacity/meta-theme-metacity.h
+++ b/libmetacity/meta-theme-metacity.h
@@ -23,36 +23,45 @@
 
 G_BEGIN_DECLS
 
+typedef struct _MetaDrawOpList MetaDrawOpList;
+
 #define META_TYPE_THEME_METACITY meta_theme_metacity_get_type ()
 G_DECLARE_FINAL_TYPE (MetaThemeMetacity, meta_theme_metacity,
                       META, THEME_METACITY, MetaThemeImpl)
 
-gboolean meta_theme_metacity_define_int   (MetaThemeMetacity  *metacity,
-                                           const gchar        *name,
-                                           gint                value,
-                                           GError            **error);
+gboolean        meta_theme_metacity_define_int          (MetaThemeMetacity  *metacity,
+                                                         const gchar        *name,
+                                                         gint                value,
+                                                         GError            **error);
+
+gboolean        meta_theme_metacity_lookup_int          (MetaThemeMetacity  *metacity,
+                                                         const gchar        *name,
+                                                         gint               *value);
+
+gboolean        meta_theme_metacity_define_float        (MetaThemeMetacity  *metacity,
+                                                         const gchar        *name,
+                                                         gdouble             value,
+                                                         GError            **error);
 
-gboolean meta_theme_metacity_lookup_int   (MetaThemeMetacity  *metacity,
-                                           const gchar        *name,
-                                           gint               *value);
+gboolean        meta_theme_metacity_lookup_float        (MetaThemeMetacity  *metacity,
+                                                         const gchar        *name,
+                                                         gdouble            *value);
 
-gboolean meta_theme_metacity_define_float (MetaThemeMetacity  *metacity,
-                                           const gchar        *name,
-                                           gdouble             value,
-                                           GError            **error);
+gboolean        meta_theme_metacity_define_color        (MetaThemeMetacity  *metacity,
+                                                         const gchar        *name,
+                                                         const gchar        *value,
+                                                         GError            **error);
 
-gboolean meta_theme_metacity_lookup_float (MetaThemeMetacity  *metacity,
-                                           const gchar        *name,
-                                           gdouble            *value);
+gboolean        meta_theme_metacity_lookup_color        (MetaThemeMetacity  *metacity,
+                                                         const gchar        *name,
+                                                         gchar             **value);
 
-gboolean meta_theme_metacity_define_color (MetaThemeMetacity  *metacity,
-                                           const gchar        *name,
-                                           const gchar        *value,
-                                           GError            **error);
+MetaDrawOpList *meta_theme_metacity_lookup_draw_op_list (MetaThemeMetacity  *metacity,
+                                                         const gchar        *name);
 
-gboolean meta_theme_metacity_lookup_color (MetaThemeMetacity  *metacity,
-                                           const gchar        *name,
-                                           gchar             **value);
+void            meta_theme_metacity_insert_draw_op_list (MetaThemeMetacity  *metacity,
+                                                         const gchar        *name,
+                                                         MetaDrawOpList     *op_list);
 
 G_END_DECLS
 
diff --git a/src/ui/theme-parser.c b/src/ui/theme-parser.c
index b460a64..0a8a94f 100644
--- a/src/ui/theme-parser.c
+++ b/src/ui/theme-parser.c
@@ -786,8 +786,12 @@ parse_toplevel_element (GMarkupParseContext  *context,
                         ParseInfo            *info,
                         GError              **error)
 {
+  MetaThemeMetacity *metacity;
+
   g_return_if_fail (peek_state (info) == STATE_THEME);
 
+  metacity = META_THEME_METACITY (info->theme->impl);
+
   if (ELEMENT_IS ("info"))
     {
       if (!check_no_attributes (context, element_name,
@@ -978,7 +982,7 @@ parse_toplevel_element (GMarkupParseContext  *context,
                               NULL))
         return;
 
-      if (meta_theme_lookup_draw_op_list (info->theme, name))
+      if (meta_theme_metacity_lookup_draw_op_list (metacity, name))
         {
           set_error (error, context, G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE,
                      _("<%s> name \"%s\" used a second time"),
@@ -989,7 +993,7 @@ parse_toplevel_element (GMarkupParseContext  *context,
       g_assert (info->op_list == NULL);
       info->op_list = meta_draw_op_list_new (2);
 
-      meta_theme_insert_draw_op_list (info->theme, name, info->op_list);
+      meta_theme_metacity_insert_draw_op_list (metacity, name, info->op_list);
 
       push_state (info, STATE_DRAW_OPS);
     }
@@ -2478,8 +2482,7 @@ parse_draw_op_element (GMarkupParseContext  *context,
       /* x/y/width/height default to 0,0,width,height - should
        * probably do this for all the draw ops
        */
-      op_list = meta_theme_lookup_draw_op_list (info->theme,
-                                                name);
+      op_list = meta_theme_metacity_lookup_draw_op_list (metacity, name);
       if (op_list == NULL)
         {
           set_error (error, context, G_MARKUP_ERROR,
@@ -2546,8 +2549,7 @@ parse_draw_op_element (GMarkupParseContext  *context,
         return;
 
       /* These default to 0 */
-      op_list = meta_theme_lookup_draw_op_list (info->theme,
-                                                name);
+      op_list = meta_theme_metacity_lookup_draw_op_list (metacity, name);
       if (op_list == NULL)
         {
           set_error (error, context, G_MARKUP_ERROR,
@@ -2752,10 +2754,14 @@ parse_style_element (GMarkupParseContext  *context,
                      ParseInfo            *info,
                      GError              **error)
 {
+  MetaThemeMetacity *metacity;
+
   g_return_if_fail (peek_state (info) == STATE_FRAME_STYLE);
 
   g_assert (info->style);
 
+  metacity = META_THEME_METACITY (info->theme->impl);
+
   if (ELEMENT_IS ("piece"))
     {
       const char *position = NULL;
@@ -2791,8 +2797,7 @@ parse_style_element (GMarkupParseContext  *context,
         {
           MetaDrawOpList *op_list;
 
-          op_list = meta_theme_lookup_draw_op_list (info->theme,
-                                                    draw_ops);
+          op_list = meta_theme_metacity_lookup_draw_op_list (metacity, draw_ops);
 
           if (op_list == NULL)
             {
@@ -2868,8 +2873,7 @@ parse_style_element (GMarkupParseContext  *context,
         {
           MetaDrawOpList *op_list;
 
-          op_list = meta_theme_lookup_draw_op_list (info->theme,
-                                                    draw_ops);
+          op_list = meta_theme_metacity_lookup_draw_op_list (metacity, draw_ops);
 
           if (op_list == NULL)
             {
diff --git a/src/ui/theme-private.h b/src/ui/theme-private.h
index 7bc06e2..3667d9c 100644
--- a/src/ui/theme-private.h
+++ b/src/ui/theme-private.h
@@ -323,7 +323,6 @@ struct _MetaTheme
 
   GHashTable *images_by_filename;
   GHashTable *layouts_by_name;
-  GHashTable *draw_op_lists_by_name;
   GHashTable *styles_by_name;
   GHashTable *style_sets_by_name;
 
@@ -370,11 +369,6 @@ MetaFrameLayout       *meta_theme_lookup_layout                (MetaTheme
 void                   meta_theme_insert_layout                (MetaTheme                   *theme,
                                                                 const char                  *name,
                                                                 MetaFrameLayout             *layout);
-MetaDrawOpList        *meta_theme_lookup_draw_op_list          (MetaTheme                   *theme,
-                                                                const char                  *name);
-void                   meta_theme_insert_draw_op_list          (MetaTheme                   *theme,
-                                                                const char                  *name,
-                                                                MetaDrawOpList              *op_list);
 MetaFrameStyle        *meta_theme_lookup_style                 (MetaTheme                   *theme,
                                                                 const char                  *name);
 void                   meta_theme_insert_style                 (MetaTheme                   *theme,
diff --git a/src/ui/theme.c b/src/ui/theme.c
index ea0d099..6fac26a 100644
--- a/src/ui/theme.c
+++ b/src/ui/theme.c
@@ -2358,12 +2358,6 @@ meta_theme_new (MetaThemeType type)
                            g_free,
                            (GDestroyNotify) meta_frame_layout_unref);
 
-  theme->draw_op_lists_by_name =
-    g_hash_table_new_full (g_str_hash,
-                           g_str_equal,
-                           g_free,
-                           (GDestroyNotify) meta_draw_op_list_unref);
-
   theme->styles_by_name =
     g_hash_table_new_full (g_str_hash,
                            g_str_equal,
@@ -2407,7 +2401,6 @@ meta_theme_free (MetaTheme *theme)
 
   g_hash_table_destroy (theme->images_by_filename);
   g_hash_table_destroy (theme->layouts_by_name);
-  g_hash_table_destroy (theme->draw_op_lists_by_name);
   g_hash_table_destroy (theme->styles_by_name);
   g_hash_table_destroy (theme->style_sets_by_name);
 
@@ -2713,22 +2706,6 @@ meta_theme_insert_layout (MetaTheme         *theme,
   g_hash_table_replace (theme->layouts_by_name, g_strdup (name), layout);
 }
 
-MetaDrawOpList*
-meta_theme_lookup_draw_op_list (MetaTheme         *theme,
-                                const char        *name)
-{
-  return g_hash_table_lookup (theme->draw_op_lists_by_name, name);
-}
-
-void
-meta_theme_insert_draw_op_list (MetaTheme         *theme,
-                                const char        *name,
-                                MetaDrawOpList    *op_list)
-{
-  meta_draw_op_list_ref (op_list);
-  g_hash_table_replace (theme->draw_op_lists_by_name, g_strdup (name), op_list);
-}
-
 MetaFrameStyle*
 meta_theme_lookup_style (MetaTheme         *theme,
                          const char        *name)


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