[metacity] theme: move styles and style_sets to libmetacity



commit 2a44a0d3b21d8cf7e69c6c02224713e70bac1dba
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Sun Jan 31 04:50:58 2016 +0200

    theme: move styles and style_sets to libmetacity

 libmetacity/meta-theme-metacity.c |   43 ++++++++++++++++++++
 libmetacity/meta-theme-metacity.h |   78 ++++++++++++++++++++++---------------
 src/ui/theme-parser.c             |   22 ++++++-----
 src/ui/theme-private.h            |   13 ------
 src/ui/theme.c                    |   46 ----------------------
 5 files changed, 102 insertions(+), 100 deletions(-)
---
diff --git a/libmetacity/meta-theme-metacity.c b/libmetacity/meta-theme-metacity.c
index 6b2dbb5..01eef6a 100644
--- a/libmetacity/meta-theme-metacity.c
+++ b/libmetacity/meta-theme-metacity.c
@@ -22,6 +22,7 @@
 
 #include "meta-draw-op.h"
 #include "meta-frame-layout.h"
+#include "meta-frame-style.h"
 #include "meta-theme.h"
 #include "meta-theme-metacity.h"
 
@@ -35,6 +36,8 @@ struct _MetaThemeMetacity
 
   GHashTable    *draw_op_lists;
   GHashTable    *frame_layouts;
+  GHashTable    *styles;
+  GHashTable    *style_sets;
 };
 
 G_DEFINE_TYPE (MetaThemeMetacity, meta_theme_metacity, META_TYPE_THEME_IMPL)
@@ -58,6 +61,8 @@ meta_theme_metacity_dispose (GObject *object)
 
   g_clear_pointer (&metacity->draw_op_lists, g_hash_table_destroy);
   g_clear_pointer (&metacity->frame_layouts, g_hash_table_destroy);
+  g_clear_pointer (&metacity->styles, g_hash_table_destroy);
+  g_clear_pointer (&metacity->style_sets, g_hash_table_destroy);
 
   G_OBJECT_CLASS (meta_theme_metacity_parent_class)->dispose (object);
 }
@@ -80,6 +85,12 @@ meta_theme_metacity_init (MetaThemeMetacity *metacity)
 
   metacity->frame_layouts = g_hash_table_new_full (g_str_hash, g_str_equal, g_free,
                                                    (GDestroyNotify) meta_frame_layout_unref);
+
+  metacity->styles = g_hash_table_new_full (g_str_hash, g_str_equal, g_free,
+                                            (GDestroyNotify) meta_frame_style_unref);
+
+  metacity->style_sets = g_hash_table_new_full (g_str_hash, g_str_equal, g_free,
+                                                (GDestroyNotify) meta_frame_style_set_unref);
 }
 
 gboolean
@@ -286,3 +297,35 @@ meta_theme_metacity_insert_layout (MetaThemeMetacity *metacity,
   meta_frame_layout_ref (layout);
   g_hash_table_replace (metacity->frame_layouts, g_strdup (name), layout);
 }
+
+MetaFrameStyle *
+meta_theme_metacity_lookup_style (MetaThemeMetacity *metacity,
+                                  const gchar       *name)
+{
+  return g_hash_table_lookup (metacity->styles, name);
+}
+
+void
+meta_theme_metacity_insert_style (MetaThemeMetacity *metacity,
+                                  const gchar       *name,
+                                  MetaFrameStyle    *style)
+{
+  meta_frame_style_ref (style);
+  g_hash_table_replace (metacity->styles, g_strdup (name), style);
+}
+
+MetaFrameStyleSet *
+meta_theme_metacity_lookup_style_set (MetaThemeMetacity *metacity,
+                                      const gchar       *name)
+{
+  return g_hash_table_lookup (metacity->style_sets, name);
+}
+
+void
+meta_theme_metacity_insert_style_set (MetaThemeMetacity *metacity,
+                                      const gchar       *name,
+                                      MetaFrameStyleSet *style_set)
+{
+  meta_frame_style_set_ref (style_set);
+  g_hash_table_replace (metacity->style_sets, g_strdup (name), style_set);
+}
diff --git a/libmetacity/meta-theme-metacity.h b/libmetacity/meta-theme-metacity.h
index 5d7a0b9..ad07d1e 100644
--- a/libmetacity/meta-theme-metacity.h
+++ b/libmetacity/meta-theme-metacity.h
@@ -25,51 +25,67 @@ G_BEGIN_DECLS
 
 typedef struct _MetaDrawOpList MetaDrawOpList;
 typedef struct _MetaFrameLayout MetaFrameLayout;
+typedef struct _MetaFrameStyle MetaFrameStyle;
+typedef struct _MetaFrameStyleSet MetaFrameStyleSet;
 
 #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_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_define_float        (MetaThemeMetacity  *metacity,
+                                                            const gchar        *name,
+                                                            gdouble             value,
+                                                            GError            **error);
 
-gboolean         meta_theme_metacity_lookup_float        (MetaThemeMetacity  *metacity,
-                                                          const gchar        *name,
-                                                          gdouble            *value);
+gboolean           meta_theme_metacity_lookup_float        (MetaThemeMetacity  *metacity,
+                                                            const gchar        *name,
+                                                            gdouble            *value);
 
-gboolean         meta_theme_metacity_define_color        (MetaThemeMetacity  *metacity,
-                                                          const gchar        *name,
-                                                          const gchar        *value,
-                                                          GError            **error);
+gboolean           meta_theme_metacity_define_color        (MetaThemeMetacity  *metacity,
+                                                            const gchar        *name,
+                                                            const gchar        *value,
+                                                            GError            **error);
 
-gboolean         meta_theme_metacity_lookup_color        (MetaThemeMetacity  *metacity,
-                                                          const gchar        *name,
-                                                          gchar             **value);
+gboolean           meta_theme_metacity_lookup_color        (MetaThemeMetacity  *metacity,
+                                                            const gchar        *name,
+                                                            gchar             **value);
 
-MetaDrawOpList  *meta_theme_metacity_lookup_draw_op_list (MetaThemeMetacity  *metacity,
-                                                          const gchar        *name);
+MetaDrawOpList    *meta_theme_metacity_lookup_draw_op_list (MetaThemeMetacity  *metacity,
+                                                            const gchar        *name);
 
-void             meta_theme_metacity_insert_draw_op_list (MetaThemeMetacity  *metacity,
-                                                          const gchar        *name,
-                                                          MetaDrawOpList     *op_list);
+void               meta_theme_metacity_insert_draw_op_list (MetaThemeMetacity  *metacity,
+                                                            const gchar        *name,
+                                                            MetaDrawOpList     *op_list);
 
-MetaFrameLayout *meta_theme_metacity_lookup_layout       (MetaThemeMetacity  *metacity,
-                                                          const gchar        *name);
+MetaFrameLayout   *meta_theme_metacity_lookup_layout       (MetaThemeMetacity  *metacity,
+                                                            const gchar        *name);
 
-void             meta_theme_metacity_insert_layout       (MetaThemeMetacity  *metacity,
-                                                          const gchar        *name,
-                                                          MetaFrameLayout    *layout);
+void               meta_theme_metacity_insert_layout       (MetaThemeMetacity  *metacity,
+                                                            const gchar        *name,
+                                                            MetaFrameLayout    *layout);
+
+MetaFrameStyle    *meta_theme_metacity_lookup_style        (MetaThemeMetacity  *metacity,
+                                                            const gchar        *name);
+
+void               meta_theme_metacity_insert_style        (MetaThemeMetacity  *metacity,
+                                                            const gchar        *name,
+                                                            MetaFrameStyle     *style);
+
+MetaFrameStyleSet *meta_theme_metacity_lookup_style_set    (MetaThemeMetacity  *metacity,
+                                                            const gchar        *name);
+
+void               meta_theme_metacity_insert_style_set    (MetaThemeMetacity  *metacity,
+                                                            const gchar        *name,
+                                                            MetaFrameStyleSet  *style_set);
 
 G_END_DECLS
 
diff --git a/src/ui/theme-parser.c b/src/ui/theme-parser.c
index 332a856..9f02dac 100644
--- a/src/ui/theme-parser.c
+++ b/src/ui/theme-parser.c
@@ -1013,7 +1013,7 @@ parse_toplevel_element (GMarkupParseContext  *context,
                               NULL))
         return;
 
-      if (meta_theme_lookup_style (info->theme, name))
+      if (meta_theme_metacity_lookup_style (metacity, name))
         {
           set_error (error, context, G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE,
                      _("<%s> name \"%s\" used a second time"),
@@ -1024,7 +1024,7 @@ parse_toplevel_element (GMarkupParseContext  *context,
       parent_style = NULL;
       if (parent)
         {
-          parent_style = meta_theme_lookup_style (info->theme, parent);
+          parent_style = meta_theme_metacity_lookup_style (metacity, parent);
           if (parent_style == NULL)
             {
               set_error (error, context, G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE,
@@ -1099,7 +1099,7 @@ parse_toplevel_element (GMarkupParseContext  *context,
           return;
         }
 
-      meta_theme_insert_style (info->theme, name, info->style);
+      meta_theme_metacity_insert_style (metacity, name, info->style);
 
       push_state (info, STATE_FRAME_STYLE);
     }
@@ -1115,7 +1115,7 @@ parse_toplevel_element (GMarkupParseContext  *context,
                               NULL))
         return;
 
-      if (meta_theme_lookup_style_set (info->theme, name))
+      if (meta_theme_metacity_lookup_style_set (metacity, name))
         {
           set_error (error, context, G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE,
                      _("<%s> name \"%s\" used a second time"),
@@ -1126,7 +1126,7 @@ parse_toplevel_element (GMarkupParseContext  *context,
       parent_set = NULL;
       if (parent)
         {
-          parent_set = meta_theme_lookup_style_set (info->theme, parent);
+          parent_set = meta_theme_metacity_lookup_style_set (metacity, parent);
           if (parent_set == NULL)
             {
               set_error (error, context, G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE,
@@ -1140,7 +1140,7 @@ parse_toplevel_element (GMarkupParseContext  *context,
 
       info->style_set = meta_frame_style_set_new (parent_set);
 
-      meta_theme_insert_style_set (info->theme, name, info->style_set);
+      meta_theme_metacity_insert_style_set (metacity, name, info->style_set);
 
       push_state (info, STATE_FRAME_STYLE_SET);
     }
@@ -1168,7 +1168,7 @@ parse_toplevel_element (GMarkupParseContext  *context,
           return;
         }
 
-      style_set = meta_theme_lookup_style_set (info->theme,
+      style_set = meta_theme_metacity_lookup_style_set (metacity,
                                                style_set_name);
 
       if (style_set == NULL)
@@ -2952,8 +2952,12 @@ parse_style_set_element (GMarkupParseContext  *context,
                          ParseInfo            *info,
                          GError              **error)
 {
+  MetaThemeMetacity *metacity;
+
   g_return_if_fail (peek_state (info) == STATE_FRAME_STYLE_SET);
 
+  metacity = META_THEME_METACITY (info->theme->impl);
+
   if (ELEMENT_IS ("frame"))
     {
       const char *focus = NULL;
@@ -2992,7 +2996,7 @@ parse_style_set_element (GMarkupParseContext  *context,
           return;
         }
 
-      frame_style = meta_theme_lookup_style (info->theme, style);
+      frame_style = meta_theme_metacity_lookup_style (metacity, style);
 
       if (frame_style == NULL)
         {
@@ -4152,8 +4156,6 @@ clear_theme (MetaTheme *theme)
     }
 
   g_hash_table_remove_all (theme->images_by_filename);
-  g_hash_table_remove_all (theme->styles_by_name);
-  g_hash_table_remove_all (theme->style_sets_by_name);
 
   for (i = 0; i < META_FRAME_TYPE_LAST; i++)
     {
diff --git a/src/ui/theme-private.h b/src/ui/theme-private.h
index 102f5a9..f0e6a62 100644
--- a/src/ui/theme-private.h
+++ b/src/ui/theme-private.h
@@ -65,8 +65,6 @@ struct _MetaTheme
   PangoFontDescription *titlebar_font;
 
   GHashTable *images_by_filename;
-  GHashTable *styles_by_name;
-  GHashTable *style_sets_by_name;
 
   MetaFrameStyleSet *style_sets_by_type[META_FRAME_TYPE_LAST];
 
@@ -80,17 +78,6 @@ MetaFrameStyle        *meta_theme_get_frame_style              (MetaTheme
 PangoFontDescription  *meta_style_info_create_font_desc        (MetaTheme                   *theme,
                                                                 MetaStyleInfo               *style_info);
 
-MetaFrameStyle        *meta_theme_lookup_style                 (MetaTheme                   *theme,
-                                                                const char                  *name);
-void                   meta_theme_insert_style                 (MetaTheme                   *theme,
-                                                                const char                  *name,
-                                                                MetaFrameStyle              *style);
-MetaFrameStyleSet     *meta_theme_lookup_style_set             (MetaTheme                   *theme,
-                                                                const char                  *name);
-void                   meta_theme_insert_style_set             (MetaTheme                   *theme,
-                                                                const char                  *name,
-                                                                MetaFrameStyleSet           *style_set);
-
 PangoFontDescription  *meta_gtk_widget_get_font_desc           (GtkWidget                   *widget,
                                                                 double                       scale,
                                                                 const PangoFontDescription  *override);
diff --git a/src/ui/theme.c b/src/ui/theme.c
index fb24ed5..112c149 100644
--- a/src/ui/theme.c
+++ b/src/ui/theme.c
@@ -1751,18 +1751,6 @@ meta_theme_new (MetaThemeType type)
                            g_free,
                            (GDestroyNotify) g_object_unref);
 
-  theme->styles_by_name =
-    g_hash_table_new_full (g_str_hash,
-                           g_str_equal,
-                           g_free,
-                           (GDestroyNotify) meta_frame_style_unref);
-
-  theme->style_sets_by_name =
-    g_hash_table_new_full (g_str_hash,
-                           g_str_equal,
-                           g_free,
-                           (GDestroyNotify) meta_frame_style_set_unref);
-
   if (type == META_THEME_TYPE_GTK)
     theme->impl = g_object_new (META_TYPE_THEME_GTK, NULL);
   else if (type == META_THEME_TYPE_METACITY)
@@ -1793,8 +1781,6 @@ meta_theme_free (MetaTheme *theme)
     pango_font_description_free (theme->titlebar_font);
 
   g_hash_table_destroy (theme->images_by_filename);
-  g_hash_table_destroy (theme->styles_by_name);
-  g_hash_table_destroy (theme->style_sets_by_name);
 
   for (i = 0; i < META_FRAME_TYPE_LAST; i++)
     if (theme->style_sets_by_type[i])
@@ -2082,38 +2068,6 @@ meta_theme_calc_geometry (MetaTheme              *theme,
                                    theme);
 }
 
-MetaFrameStyle*
-meta_theme_lookup_style (MetaTheme         *theme,
-                         const char        *name)
-{
-  return g_hash_table_lookup (theme->styles_by_name, name);
-}
-
-void
-meta_theme_insert_style (MetaTheme         *theme,
-                         const char        *name,
-                         MetaFrameStyle    *style)
-{
-  meta_frame_style_ref (style);
-  g_hash_table_replace (theme->styles_by_name, g_strdup (name), style);
-}
-
-MetaFrameStyleSet*
-meta_theme_lookup_style_set (MetaTheme         *theme,
-                             const char        *name)
-{
-  return g_hash_table_lookup (theme->style_sets_by_name, name);
-}
-
-void
-meta_theme_insert_style_set    (MetaTheme         *theme,
-                                const char        *name,
-                                MetaFrameStyleSet *style_set)
-{
-  meta_frame_style_set_ref (style_set);
-  g_hash_table_replace (theme->style_sets_by_name, g_strdup (name), style_set);
-}
-
 PangoFontDescription*
 meta_gtk_widget_get_font_desc (GtkWidget *widget,
                                double     scale,


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