aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk/empathy-theme-manager.c
diff options
context:
space:
mode:
authorDanielle Madeley <danielle.madeley@collabora.co.uk>2012-06-20 17:42:22 +0800
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2012-07-02 16:03:22 +0800
commitc7d5d6d78773d9e7cd933b326e7566a072b655d9 (patch)
tree614a669626748b84fcda4c48c7aea54f3299454d /libempathy-gtk/empathy-theme-manager.c
parent7f6f5faf1a3ac7109b690d33555c54db05a692fe (diff)
downloadgsoc2013-empathy-c7d5d6d78773d9e7cd933b326e7566a072b655d9.tar
gsoc2013-empathy-c7d5d6d78773d9e7cd933b326e7566a072b655d9.tar.gz
gsoc2013-empathy-c7d5d6d78773d9e7cd933b326e7566a072b655d9.tar.bz2
gsoc2013-empathy-c7d5d6d78773d9e7cd933b326e7566a072b655d9.tar.lz
gsoc2013-empathy-c7d5d6d78773d9e7cd933b326e7566a072b655d9.tar.xz
gsoc2013-empathy-c7d5d6d78773d9e7cd933b326e7566a072b655d9.tar.zst
gsoc2013-empathy-c7d5d6d78773d9e7cd933b326e7566a072b655d9.zip
Remove legacy themes code
Diffstat (limited to 'libempathy-gtk/empathy-theme-manager.c')
-rw-r--r--libempathy-gtk/empathy-theme-manager.c374
1 files changed, 6 insertions, 368 deletions
diff --git a/libempathy-gtk/empathy-theme-manager.c b/libempathy-gtk/empathy-theme-manager.c
index 1233509ec..a04a43a05 100644
--- a/libempathy-gtk/empathy-theme-manager.c
+++ b/libempathy-gtk/empathy-theme-manager.c
@@ -37,8 +37,6 @@
#include "empathy-theme-manager.h"
#include "empathy-chat-view.h"
#include "empathy-chat-text-view.h"
-#include "empathy-theme-boxes.h"
-#include "empathy-theme-irc.h"
#include "empathy-theme-adium.h"
#define DEBUG_FLAG EMPATHY_DEBUG_OTHER
@@ -47,7 +45,6 @@
#define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyThemeManager)
typedef struct {
GSettings *gsettings_chat;
- gchar *name;
GtkSettings *settings;
GList *boxes_views;
guint emit_changed_idle;
@@ -66,14 +63,6 @@ enum {
static guint signals[LAST_SIGNAL] = { 0 };
-static const gchar *themes[] = {
- "classic", N_("Classic"),
- "simple", N_("Simple"),
- "clean", N_("Clean"),
- "blue", N_("Blue"),
- NULL
-};
-
G_DEFINE_TYPE (EmpathyThemeManager, empathy_theme_manager, G_TYPE_OBJECT);
static gboolean
@@ -85,8 +74,8 @@ theme_manager_emit_changed_idle_cb (gpointer manager)
if (priv->adium_data) {
adium_path = empathy_adium_data_get_path (priv->adium_data);
}
- DEBUG ("Emit theme-changed with: name='%s' adium_path='%s' "
- "adium_variant='%s'", priv->name, adium_path,
+ DEBUG ("Emit theme-changed with: adium_path='%s' "
+ "adium_variant='%s'", adium_path,
priv->adium_variant);
g_signal_emit (manager, signals[THEME_CHANGED], 0, NULL);
@@ -127,6 +116,7 @@ clear_list_of_views (GList **views)
}
}
+#if 0
static void
theme_manager_gdk_color_to_hex (GdkColor *gdk_color, gchar *str_color)
{
@@ -136,243 +126,7 @@ theme_manager_gdk_color_to_hex (GdkColor *gdk_color, gchar *str_color)
gdk_color->green >> 8,
gdk_color->blue >> 8);
}
-
-static EmpathyThemeIrc *
-theme_manager_create_irc_view (EmpathyThemeManager *manager)
-{
- EmpathyChatTextView *view;
- EmpathyThemeIrc *theme;
-
- theme = empathy_theme_irc_new ();
- view = EMPATHY_CHAT_TEXT_VIEW (theme);
-
- /* Define base tags */
- empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_SPACING,
- "size", 2000,
- NULL);
- empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_TIME,
- "foreground", "darkgrey",
- "justification", GTK_JUSTIFY_CENTER,
- NULL);
- empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_ACTION,
- "foreground", "brown4",
- "style", PANGO_STYLE_ITALIC,
- NULL);
- empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_BODY,
- "foreground-set", FALSE,
- NULL);
- empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_EVENT,
- "foreground", "PeachPuff4",
- "justification", GTK_JUSTIFY_LEFT,
- NULL);
- empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_LINK,
- "foreground", "steelblue",
- "underline", PANGO_UNDERLINE_SINGLE,
- NULL);
- empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_HIGHLIGHT,
- "background", "yellow",
- NULL);
-
- /* Define IRC tags */
- empathy_chat_text_view_tag_set (view, EMPATHY_THEME_IRC_TAG_NICK_SELF,
- "foreground", "sea green",
- NULL);
- empathy_chat_text_view_tag_set (view, EMPATHY_THEME_IRC_TAG_NICK_OTHER,
- "foreground", "skyblue4",
- NULL);
- empathy_chat_text_view_tag_set (view, EMPATHY_THEME_IRC_TAG_NICK_HIGHLIGHT,
- "foreground", "indian red",
- "weight", PANGO_WEIGHT_BOLD,
- NULL);
-
- return theme;
-}
-
-static void on_style_set_cb (GtkWidget *widget, GtkStyle *previous_style, EmpathyThemeManager *self);
-
-static EmpathyThemeBoxes *
-theme_manager_create_boxes_view (EmpathyThemeManager *manager)
-{
- EmpathyThemeManagerPriv *priv = GET_PRIV (manager);
- EmpathyThemeBoxes *theme;
-
- theme = empathy_theme_boxes_new ();
- priv->boxes_views = g_list_prepend (priv->boxes_views, theme);
- g_object_weak_ref (G_OBJECT (theme),
- theme_manager_view_weak_notify_cb,
- &priv->boxes_views);
-
- g_signal_connect (G_OBJECT (theme), "style-set",
- G_CALLBACK (on_style_set_cb), manager);
-
- return theme;
-}
-
-static void
-theme_manager_update_boxes_tags (EmpathyThemeBoxes *theme,
- const gchar *header_foreground,
- const gchar *header_background,
- const gchar *header_line_background,
- const gchar *action_foreground,
- const gchar *time_foreground,
- const gchar *event_foreground,
- const gchar *link_foreground,
- const gchar *text_foreground,
- const gchar *text_background,
- const gchar *highlight_foreground)
-
-{
- EmpathyChatTextView *view = EMPATHY_CHAT_TEXT_VIEW (theme);
- GtkTextTag *tag;
-
- DEBUG ("Update view with new colors:\n"
- "header_foreground = %s\n"
- "header_background = %s\n"
- "header_line_background = %s\n"
- "action_foreground = %s\n"
- "time_foreground = %s\n"
- "event_foreground = %s\n"
- "link_foreground = %s\n"
- "text_foreground = %s\n"
- "text_background = %s\n"
- "highlight_foreground = %s\n",
- header_foreground, header_background, header_line_background,
- action_foreground, time_foreground, event_foreground,
- link_foreground, text_foreground, text_background,
- highlight_foreground);
-
-
- /* FIXME: GtkTextTag don't support to set color properties to NULL.
- * See bug #542523 */
-
- #define TAG_SET(prop, prop_set, value) \
- if (value != NULL) { \
- g_object_set (tag, prop, value, NULL); \
- } else { \
- g_object_set (tag, prop_set, FALSE, NULL); \
- }
-
- /* Define base tags */
- tag = empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_HIGHLIGHT,
- "weight", PANGO_WEIGHT_BOLD,
- "pixels-above-lines", 4,
- NULL);
- TAG_SET ("paragraph-background", "paragraph-background-set", text_background);
- TAG_SET ("foreground", "foreground-set", highlight_foreground);
-
- empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_SPACING,
- "size", 3000,
- "pixels-above-lines", 8,
- NULL);
- tag = empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_TIME,
- "justification", GTK_JUSTIFY_CENTER,
- NULL);
- TAG_SET ("foreground", "foreground-set", time_foreground);
- tag = empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_ACTION,
- "style", PANGO_STYLE_ITALIC,
- "pixels-above-lines", 4,
- NULL);
- TAG_SET ("paragraph-background", "paragraph-background-set", text_background);
- TAG_SET ("foreground", "foreground-set", action_foreground);
- tag = empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_BODY,
- "pixels-above-lines", 4,
- NULL);
- TAG_SET ("paragraph-background", "paragraph-background-set", text_background);
- TAG_SET ("foreground", "foreground-set", text_foreground);
- tag = empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_EVENT,
- "justification", GTK_JUSTIFY_LEFT,
- NULL);
- TAG_SET ("foreground", "foreground-set", event_foreground);
- tag = empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_LINK,
- "underline", PANGO_UNDERLINE_SINGLE,
- NULL);
- TAG_SET ("foreground", "foreground-set", link_foreground);
-
- /* Define BOXES tags */
- tag = empathy_chat_text_view_tag_set (view, EMPATHY_THEME_BOXES_TAG_HEADER,
- "weight", PANGO_WEIGHT_BOLD,
- NULL);
- TAG_SET ("foreground", "foreground-set", header_foreground);
- TAG_SET ("paragraph-background", "paragraph-background-set", header_background);
- tag = empathy_chat_text_view_tag_set (view, EMPATHY_THEME_BOXES_TAG_HEADER_LINE,
- "size", 1,
- NULL);
- TAG_SET ("paragraph-background", "paragraph-background-set", header_line_background);
-
- #undef TAG_SET
-}
-
-static void
-on_style_set_cb (GtkWidget *widget, GtkStyle *previous_style, EmpathyThemeManager *self)
-{
- EmpathyThemeManagerPriv *priv = GET_PRIV (self);
- GtkStyle *style;
- gchar color1[10];
- gchar color2[10];
- gchar color3[10];
- gchar color4[10];
-
- /* The simple theme depends on the current GTK+ theme so it has to be
- * updated if the theme changes. */
- if (tp_strdiff (priv->name, "simple"))
- return;
-
- style = gtk_widget_get_style (GTK_WIDGET (widget));
-
- theme_manager_gdk_color_to_hex (&style->base[GTK_STATE_SELECTED], color1);
- theme_manager_gdk_color_to_hex (&style->bg[GTK_STATE_SELECTED], color2);
- theme_manager_gdk_color_to_hex (&style->dark[GTK_STATE_SELECTED], color3);
- theme_manager_gdk_color_to_hex (&style->fg[GTK_STATE_SELECTED], color4);
-
- theme_manager_update_boxes_tags (EMPATHY_THEME_BOXES (widget),
- color4, /* header_foreground */
- color2, /* header_background */
- color3, /* header_line_background */
- color1, /* action_foreground */
- "darkgrey", /* time_foreground */
- "darkgrey", /* event_foreground */
- color1, /* link_foreground */
- NULL, /* text_foreground */
- NULL, /* text_background */
- NULL); /* highlight_foreground */
-}
-
-static void
-theme_manager_update_boxes_theme (EmpathyThemeManager *manager,
- EmpathyThemeBoxes *theme)
-{
- EmpathyThemeManagerPriv *priv = GET_PRIV (manager);
-
- if (strcmp (priv->name, "simple") == 0) {
- on_style_set_cb (GTK_WIDGET (theme), NULL, manager);
- }
- else if (strcmp (priv->name, "clean") == 0) {
- theme_manager_update_boxes_tags (theme,
- "black", /* header_foreground */
- "#efefdf", /* header_background */
- "#e3e3d3", /* header_line_background */
- "brown4", /* action_foreground */
- "darkgrey", /* time_foreground */
- "darkgrey", /* event_foreground */
- "#49789e", /* link_foreground */
- NULL, /* text_foreground */
- NULL, /* text_background */
- NULL); /* highlight_foreground */
- }
- else if (strcmp (priv->name, "blue") == 0) {
- theme_manager_update_boxes_tags (theme,
- "black", /* header_foreground */
- "#88a2b4", /* header_background */
- "#7f96a4", /* header_line_background */
- "brown4", /* action_foreground */
- "darkgrey", /* time_foreground */
- "#7f96a4", /* event_foreground */
- "#49789e", /* link_foreground */
- "black", /* text_foreground */
- "#adbdc8", /* text_background */
- "black"); /* highlight_foreground */
- }
-}
+#endif
static EmpathyThemeAdium *
theme_manager_create_adium_view (EmpathyThemeManager *manager)
@@ -458,114 +212,14 @@ EmpathyChatView *
empathy_theme_manager_create_view (EmpathyThemeManager *manager)
{
EmpathyThemeManagerPriv *priv = GET_PRIV (manager);
- EmpathyThemeBoxes *theme;
g_return_val_if_fail (EMPATHY_IS_THEME_MANAGER (manager), NULL);
- DEBUG ("Using theme %s", priv->name);
-
- if (strcmp (priv->name, "adium") == 0 && priv->adium_data != NULL) {
+ if (priv->adium_data != NULL) {
return EMPATHY_CHAT_VIEW (theme_manager_create_adium_view (manager));
}
- if (strcmp (priv->name, "classic") == 0) {
- return EMPATHY_CHAT_VIEW (theme_manager_create_irc_view (manager));
- }
-
- theme = theme_manager_create_boxes_view (manager);
- theme_manager_update_boxes_theme (manager, theme);
-
- return EMPATHY_CHAT_VIEW (theme);
-}
-
-static gboolean
-theme_manager_ensure_theme_exists (const gchar *name)
-{
- gint i;
-
- if (EMP_STR_EMPTY (name)) {
- return FALSE;
- }
-
- if (strcmp ("adium", name) == 0) {
- return TRUE;
- }
-
- for (i = 0; themes[i]; i += 2) {
- if (strcmp (themes[i], name) == 0) {
- return TRUE;
- }
- }
-
- return FALSE;
-}
-
-typedef enum {
- THEME_TYPE_IRC,
- THEME_TYPE_BOXED,
- THEME_TYPE_ADIUM,
-} ThemeType;
-
-static ThemeType
-theme_type (const gchar *name)
-{
- if (!tp_strdiff (name, "classic")) {
- return THEME_TYPE_IRC;
- } else if (!tp_strdiff (name, "adium")) {
- return THEME_TYPE_ADIUM;
- } else {
- return THEME_TYPE_BOXED;
- }
-}
-
-static void
-theme_manager_notify_name_cb (GSettings *gsettings_chat,
- const gchar *key,
- gpointer user_data)
-{
- EmpathyThemeManager *manager = EMPATHY_THEME_MANAGER (user_data);
- EmpathyThemeManagerPriv *priv = GET_PRIV (manager);
- gchar *name;
- ThemeType old_type;
- ThemeType new_type;
-
- name = g_settings_get_string (gsettings_chat, key);
-
- /* Fallback to classic theme if current setting does not exist */
- if (!theme_manager_ensure_theme_exists (name)) {
- g_free (name);
- name = g_strdup ("classic");
- }
-
- /* If theme did not change, nothing to do */
- if (!tp_strdiff (priv->name, name)) {
- g_free (name);
- return;
- }
-
- old_type = theme_type (priv->name);
- g_free (priv->name);
- priv->name = name;
- new_type = theme_type (priv->name);
-
- if (new_type == THEME_TYPE_BOXED) {
- GList *l;
-
- /* The theme changes to a boxed one, we can update boxed views */
- for (l = priv->boxes_views; l; l = l->next) {
- theme_manager_update_boxes_theme (manager,
- EMPATHY_THEME_BOXES (l->data));
- }
- }
-
- /* Do not emit theme-changed if theme type didn't change. If theme
- * changed from a boxed to another boxed, all view are updated in place.
- * If theme changed from an adium to another adium, the signal will be
- * emited from theme_manager_notify_adium_path_cb ()
- */
- if (old_type != new_type) {
- theme_manager_emit_changed (manager);
- }
+ g_return_val_if_reached (NULL);
}
static void
@@ -574,7 +228,6 @@ theme_manager_finalize (GObject *object)
EmpathyThemeManagerPriv *priv = GET_PRIV (object);
g_object_unref (priv->gsettings_chat);
- g_free (priv->name);
if (priv->emit_changed_idle != 0) {
g_source_remove (priv->emit_changed_idle);
@@ -620,15 +273,6 @@ empathy_theme_manager_init (EmpathyThemeManager *manager)
priv->gsettings_chat = g_settings_new (EMPATHY_PREFS_CHAT_SCHEMA);
- /* Take the theme name and track changes */
- g_signal_connect (priv->gsettings_chat,
- "changed::" EMPATHY_PREFS_CHAT_THEME,
- G_CALLBACK (theme_manager_notify_name_cb),
- manager);
- theme_manager_notify_name_cb (priv->gsettings_chat,
- EMPATHY_PREFS_CHAT_THEME,
- manager);
-
/* Take the adium path/variant and track changes */
g_signal_connect (priv->gsettings_chat,
"changed::" EMPATHY_PREFS_CHAT_ADIUM_PATH,
@@ -663,12 +307,6 @@ empathy_theme_manager_dup_singleton (void)
return g_object_ref (manager);
}
-const gchar **
-empathy_theme_manager_get_themes (void)
-{
- return themes;
-}
-
static void
find_themes (GList **list, const gchar *dirpath)
{