fixed backwards compatibility for toolbar/tab styles

This commit is contained in:
Mark Tiefenbruck 2007-12-20 19:34:22 -08:00
parent 54eda44f85
commit a8d9f4fc45

View file

@ -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;
}