fixed backwards compatibility for toolbar/tab styles
Mark Tiefenbruck mark@fluxbox.org
1 files changed,
31 insertions(+),
31 deletions(-)
jump to
M
src/IconbarTheme.cc
→
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 @@ // fallback resources
bool IconbarTheme::fallback(FbTk::ThemeItem_base &item) { using namespace FbTk; ThemeManager &tm = ThemeManager::instance(); - - // 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")); + std::string focus = (m_name == "window.label" ? ".focus" : ".focused"); + std::string un = (m_name == "window.label" ? ".unfocus" : ".unfocused"); - } 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; }