[metacity] theme: move styles and style_sets to libmetacity
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [metacity] theme: move styles and style_sets to libmetacity
- Date: Sun, 31 Jan 2016 05:25:40 +0000 (UTC)
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]