From a8d9f4fc457ed82b121e68fb7de78cae358f17b0 Mon Sep 17 00:00:00 2001
From: Mark Tiefenbruck <mark@fluxbox.org>
Date: Thu, 20 Dec 2007 19:34:22 -0800
Subject: fixed backwards compatibility for toolbar/tab styles

---
 src/IconbarTheme.cc | 62 ++++++++++++++++++++++++++---------------------------
 1 file changed, 31 insertions(+), 31 deletions(-)

diff --git a/src/IconbarTheme.cc b/src/IconbarTheme.cc
index 2ee8360..3b77d67 100644
--- a/src/IconbarTheme.cc
+++ b/src/IconbarTheme.cc
@@ -29,14 +29,26 @@ IconbarTheme::IconbarTheme(int screen_num,
                            const std::string &name,
                            const std::string &altname):
     FbTk::Theme(screen_num),
-    m_focused_texture(*this, name + ".focused", altname + ".Focused"),
-    m_unfocused_texture(*this, name + ".unfocused", altname + ".Unfocused"),
+    m_focused_texture(*this,
+            name + (name == "window.label" ? ".focus" : ".focused"),
+            altname + (name == "window.label" ? ".Focus" : ".Focused")),
+    m_unfocused_texture(*this,
+            name + (name == "window.label" ? ".unfocus" : ".unfocused"),
+            altname + (name == "window.label" ? ".Unfocus" : ".Unfocused")),
     m_empty_texture(*this, name + ".empty", altname + ".Empty"),
-    m_focused_border(*this, name + ".focused", altname + ".Focused"),
-    m_unfocused_border(*this, name + ".unfocused", altname + ".Unfocused"),
+    m_focused_border(*this,
+            name + (name == "window.label" ? ".focus" : ".focused"),
+            altname + (name == "window.label" ? ".Focus" : ".Focused")),
+    m_unfocused_border(*this,
+            name + (name == "window.label" ? ".unfocus" : ".unfocused"),
+            altname + (name == "window.label" ? ".Unfocus" : ".Unfocused")),
     m_border(*this, name, altname),
-    m_focused_text(*this, name + ".focused", altname + ".Focused"),
-    m_unfocused_text(*this, name + ".unfocused", altname + ".Unfocused"),
+    m_focused_text(*this,
+            name + (name == "window.label" ? ".focus" : ".focused"),
+            altname + (name == "window.label" ? ".Focus" : ".Focused")),
+    m_unfocused_text(*this,
+            name + (name == "window.label" ? ".unfocus" : ".unfocused"),
+            altname + (name == "window.label" ? ".Unfocus" : ".Unfocused")),
     m_name(name), m_altname(altname) {
 
     FbTk::ThemeManager::instance().loadTheme(*this);
@@ -56,54 +68,42 @@ void IconbarTheme::reconfigTheme() {
 bool IconbarTheme::fallback(FbTk::ThemeItem_base &item) {
     using namespace FbTk;
     ThemeManager &tm = ThemeManager::instance();
+    std::string focus = (m_name == "window.label" ? ".focus" : ".focused");
+    std::string un = (m_name == "window.label" ? ".unfocus" : ".unfocused");
 
-    // TODO: fix fallbacks for "focused" vs. "focus"
-    if (&m_focused_texture == &item) {
-        return (tm.loadItem(item, "window.label.focus", "Window.Label.Focus") ||
-                tm.loadItem(item, "toolbar.windowLabel", "toolbar.windowLabel"));
-
-    } else if (&m_unfocused_texture == &item) {
-        return (tm.loadItem(item, "window.label.unfocus",
-                "Window.Label.Unfocus") ||
-                tm.loadItem(item, "toolbar.windowLabel",
-                "toolbar.windowLabel"));
+    if (&m_focused_texture == &item || &m_unfocused_texture == &item) {
+        return tm.loadItem(item, "toolbar.windowLabel", "toolbar.windowLabel");
     } else if (&m_empty_texture == &item) {
         return (tm.loadItem(item, m_focused_texture.name(),
                 m_focused_texture.altName()) ||
                 tm.loadItem(item, "toolbar.windowLabel", "toolbar.windowLabel")
                 || tm.loadItem(item, "toolbar", "toolbar")); 
-    } else if (item.name() == m_name + ".focused.borderWidth" ||
-               item.name() == m_name + ".unfocused.borderWidth")
+    } else if (item.name() == m_name + focus + ".borderWidth" ||
+               item.name() == m_name + un + ".borderWidth")
         // don't fallback for base border, for theme backwards compatibility
         return (tm.loadItem(item, m_name + ".borderWidth",
                             m_altname + ".BorderWidth") ||
                 tm.loadItem(item, "window.borderWidth", "Window.BorderWidth") ||
                 tm.loadItem(item, "borderWidth", "BorderWidth"));
 
-    else if (item.name() == m_name + ".focused.borderColor" ||
-             item.name() == m_name + ".unfocused.borderColor")
+    else if (item.name() == m_name + focus + ".borderColor" ||
+             item.name() == m_name + un + ".borderColor")
 
         return (tm.loadItem(item, m_name + ".borderColor",
                             m_altname + ".BorderColor") ||
                 tm.loadItem(item, "window.borderColor", "Window.BorderColor") ||
                 tm.loadItem(item, "borderColor", "BorderColor"));
 
-    else if (item.name() == m_name + ".focused.font" ||
-             item.name() == m_name + ".unfocused.font")
+    else if (item.name() == m_name + focus + ".font" ||
+             item.name() == m_name + un + ".font")
 
         return tm.loadItem(item, "window.font", "Window.Font");
 
-    else if (item.name() == m_name + ".focused.textColor") {
-
-        return tm.loadItem(item, "window.label.focus.textColor", "Window.Label.Focus.TextColor");        
-
-    } else if (item.name() == m_name + ".unfocused.textColor") {
-        return tm.loadItem(item, "window.label.unfocus.textColor", "Window.Label.Unfocus.TextColor");
-    } else if (item.name() == m_name + ".focused.justify" ||
-               item.name() == m_name + ".unfocused.justify") {
+    else if (item.name() == m_name + focus + ".justify" ||
+             item.name() == m_name + un + ".justify") {
         return (tm.loadItem(item, m_name + ".justify", m_altname + ".Justify")
                 || tm.loadItem(item, "window.justify", "Window.Justify"));
     }
- 
+
     return false;
 }
-- 
cgit v0.11.2