summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlberts Muktupāvels <alberts.muktupavels@gmail.com>2016-02-04 00:24:08 +0200
committerAlberts Muktupāvels <alberts.muktupavels@gmail.com>2016-02-04 00:24:08 +0200
commit725a5438e72c95ce9b784c8a60a3c1a6e7bb192a (patch)
tree3cfbfd294b79278e183386361b6fd59b91d5a19c
parent99f79563ae5e2c777544ec59cfdbfb8e4f38c162 (diff)
downloadmetacity-725a5438e72c95ce9b784c8a60a3c1a6e7bb192a.tar.gz
theme: move get_current and set_current to libmetacity
-rw-r--r--libmetacity/meta-theme.c63
-rw-r--r--libmetacity/meta-theme.h7
-rw-r--r--po/POTFILES.in1
-rw-r--r--src/ui/theme.c62
-rw-r--r--src/ui/theme.h6
5 files changed, 71 insertions, 68 deletions
diff --git a/libmetacity/meta-theme.c b/libmetacity/meta-theme.c
index ef88cdcd..66eb8549 100644
--- a/libmetacity/meta-theme.c
+++ b/libmetacity/meta-theme.c
@@ -17,6 +17,7 @@
#include "config.h"
+#include <glib/gi18n-lib.h>
#include <string.h>
#include "meta-enum-types.h"
@@ -595,3 +596,65 @@ meta_theme_draw_frame (MetaTheme *theme,
mini_icon,
icon);
}
+
+/**
+ * The current theme. (Themes are singleton.)
+ */
+static MetaTheme *meta_current_theme = NULL;
+
+MetaTheme*
+meta_theme_get_current (void)
+{
+ return meta_current_theme;
+}
+
+void
+meta_theme_set_current (const gchar *name,
+ gboolean force_reload,
+ gboolean composited,
+ const PangoFontDescription *titlebar_font)
+{
+ MetaTheme *new_theme;
+ GError *error;
+
+ g_debug ("Setting current theme to '%s'", name);
+
+ if (!force_reload && meta_current_theme)
+ {
+ gchar *theme_name;
+
+ theme_name = meta_theme_get_name (meta_current_theme);
+ if (g_strcmp0 (name, theme_name) == 0)
+ {
+ g_free (theme_name);
+ return;
+ }
+
+ g_free (theme_name);
+ }
+
+ if (name != NULL && strcmp (name, "") != 0)
+ new_theme = meta_theme_new (META_THEME_TYPE_METACITY);
+ else
+ new_theme = meta_theme_new (META_THEME_TYPE_GTK);
+
+ meta_theme_set_composited (new_theme, composited);
+ meta_theme_set_titlebar_font (new_theme, titlebar_font);
+
+ error = NULL;
+ if (!meta_theme_load (new_theme, name, &error))
+ {
+ g_warning (_("Failed to load theme '%s': %s"), name, error->message);
+ g_error_free (error);
+
+ g_object_unref (new_theme);
+ }
+ else
+ {
+ if (meta_current_theme)
+ g_object_unref (meta_current_theme);
+ meta_current_theme = new_theme;
+
+ g_debug ("New theme is '%s'", name);
+ }
+}
diff --git a/libmetacity/meta-theme.h b/libmetacity/meta-theme.h
index cab66552..1c95ab0a 100644
--- a/libmetacity/meta-theme.h
+++ b/libmetacity/meta-theme.h
@@ -224,6 +224,13 @@ void meta_theme_draw_frame (MetaTheme
GdkPixbuf *mini_icon,
GdkPixbuf *icon);
+MetaTheme *meta_theme_get_current (void);
+
+void meta_theme_set_current (const gchar *name,
+ gboolean force_reload,
+ gboolean composited,
+ const PangoFontDescription *titlebar_font);
+
G_END_DECLS
#endif
diff --git a/po/POTFILES.in b/po/POTFILES.in
index fe30edc2..a3f87c65 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -6,6 +6,7 @@ libmetacity/meta-draw-spec.c
libmetacity/meta-frame-layout.c
libmetacity/meta-frame-style.c
libmetacity/meta-gradient-spec.c
+libmetacity/meta-theme.c
libmetacity/meta-theme-impl.c
libmetacity/meta-theme-metacity.c
src/50-metacity-navigation.xml.in
diff --git a/src/ui/theme.c b/src/ui/theme.c
index 918f8d41..f59a263b 100644
--- a/src/ui/theme.c
+++ b/src/ui/theme.c
@@ -60,65 +60,3 @@
#define __USE_XOPEN
#include <stdarg.h>
#include <math.h>
-
-/**
- * The current theme. (Themes are singleton.)
- */
-static MetaTheme *meta_current_theme = NULL;
-
-MetaTheme*
-meta_theme_get_current (void)
-{
- return meta_current_theme;
-}
-
-void
-meta_theme_set_current (const gchar *name,
- gboolean force_reload,
- gboolean composited,
- const PangoFontDescription *titlebar_font)
-{
- MetaTheme *new_theme;
- GError *error;
-
- g_debug ("Setting current theme to '%s'", name);
-
- if (!force_reload && meta_current_theme)
- {
- gchar *theme_name;
-
- theme_name = meta_theme_get_name (meta_current_theme);
- if (g_strcmp0 (name, theme_name) == 0)
- {
- g_free (theme_name);
- return;
- }
-
- g_free (theme_name);
- }
-
- if (name != NULL && strcmp (name, "") != 0)
- new_theme = meta_theme_new (META_THEME_TYPE_METACITY);
- else
- new_theme = meta_theme_new (META_THEME_TYPE_GTK);
-
- meta_theme_set_composited (new_theme, composited);
- meta_theme_set_titlebar_font (new_theme, titlebar_font);
-
- error = NULL;
- if (!meta_theme_load (new_theme, name, &error))
- {
- g_warning (_("Failed to load theme '%s': %s"), name, error->message);
- g_error_free (error);
-
- g_object_unref (new_theme);
- }
- else
- {
- if (meta_current_theme)
- g_object_unref (meta_current_theme);
- meta_current_theme = new_theme;
-
- g_debug ("New theme is '%s'", name);
- }
-}
diff --git a/src/ui/theme.h b/src/ui/theme.h
index e9ae007c..97c97af3 100644
--- a/src/ui/theme.h
+++ b/src/ui/theme.h
@@ -25,10 +25,4 @@
#include <gtk/gtk.h>
#include <libmetacity/meta-theme.h>
-MetaTheme* meta_theme_get_current (void);
-void meta_theme_set_current (const char *name,
- gboolean force_reload,
- gboolean composited,
- const PangoFontDescription *titlebar_font);
-
#endif