fix reading iconbar border from theme
This commit is contained in:
parent
e6b11e06c6
commit
37a602899d
4 changed files with 16 additions and 9 deletions
|
@ -243,13 +243,14 @@ private:
|
||||||
|
|
||||||
}; // end anonymous namespace
|
}; // end anonymous namespace
|
||||||
|
|
||||||
IconbarTool::IconbarTool(const FbTk::FbWindow &parent,
|
IconbarTool::IconbarTool(const FbTk::FbWindow &parent, IconbarTheme &theme,
|
||||||
FbTk::ThemeProxy<IconbarTheme> &focused_theme,
|
FbTk::ThemeProxy<IconbarTheme> &focused_theme,
|
||||||
FbTk::ThemeProxy<IconbarTheme> &unfocused_theme,
|
FbTk::ThemeProxy<IconbarTheme> &unfocused_theme,
|
||||||
BScreen &screen, FbTk::Menu &menu):
|
BScreen &screen, FbTk::Menu &menu):
|
||||||
ToolbarItem(ToolbarItem::RELATIVE),
|
ToolbarItem(ToolbarItem::RELATIVE),
|
||||||
m_screen(screen),
|
m_screen(screen),
|
||||||
m_icon_container(parent),
|
m_icon_container(parent),
|
||||||
|
m_theme(theme),
|
||||||
m_focused_theme(focused_theme),
|
m_focused_theme(focused_theme),
|
||||||
m_unfocused_theme(unfocused_theme),
|
m_unfocused_theme(unfocused_theme),
|
||||||
m_empty_pm( screen.imageControl() ),
|
m_empty_pm( screen.imageControl() ),
|
||||||
|
@ -290,6 +291,7 @@ IconbarTool::IconbarTool(const FbTk::FbWindow &parent,
|
||||||
menu.insert(m_menu.label(), &m_menu);
|
menu.insert(m_menu.label(), &m_menu);
|
||||||
|
|
||||||
// setup signals
|
// setup signals
|
||||||
|
theme.reconfigSig().attach(this);
|
||||||
focused_theme.reconfigSig().attach(this);
|
focused_theme.reconfigSig().attach(this);
|
||||||
unfocused_theme.reconfigSig().attach(this);
|
unfocused_theme.reconfigSig().attach(this);
|
||||||
setMode(*m_rc_mode);
|
setMode(*m_rc_mode);
|
||||||
|
@ -397,7 +399,8 @@ void IconbarTool::update(FbTk::Subject *subj) {
|
||||||
m_icon_container.setMaxSizePerClient(*m_rc_client_width);
|
m_icon_container.setMaxSizePerClient(*m_rc_client_width);
|
||||||
|
|
||||||
if (subj == &m_focused_theme.reconfigSig() ||
|
if (subj == &m_focused_theme.reconfigSig() ||
|
||||||
subj == &m_unfocused_theme.reconfigSig()) {
|
subj == &m_unfocused_theme.reconfigSig() ||
|
||||||
|
subj == &m_theme.reconfigSig()) {
|
||||||
setMode(*m_rc_mode);
|
setMode(*m_rc_mode);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -463,7 +466,8 @@ void IconbarTool::reset() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void IconbarTool::updateSizing() {
|
void IconbarTool::updateSizing() {
|
||||||
m_icon_container.setBorderWidth(m_focused_theme->border().width());
|
m_icon_container.setBorderWidth(m_theme.border().width());
|
||||||
|
m_icon_container.setBorderColor(m_theme.border().color());
|
||||||
|
|
||||||
IconMap::iterator icon_it = m_icons.begin();
|
IconMap::iterator icon_it = m_icons.begin();
|
||||||
const IconMap::iterator icon_it_end = m_icons.end();
|
const IconMap::iterator icon_it_end = m_icons.end();
|
||||||
|
@ -484,14 +488,14 @@ void IconbarTool::renderTheme() {
|
||||||
updateSizing();
|
updateSizing();
|
||||||
|
|
||||||
// if we dont have any icons then we should render empty texture
|
// if we dont have any icons then we should render empty texture
|
||||||
if (!m_focused_theme->emptyTexture().usePixmap()) {
|
if (!m_theme.emptyTexture().usePixmap()) {
|
||||||
m_empty_pm.reset( 0 );
|
m_empty_pm.reset( 0 );
|
||||||
m_icon_container.setBackgroundColor(m_focused_theme->emptyTexture().color());
|
m_icon_container.setBackgroundColor(m_theme.emptyTexture().color());
|
||||||
} else {
|
} else {
|
||||||
m_empty_pm.reset(m_screen.imageControl().
|
m_empty_pm.reset(m_screen.imageControl().
|
||||||
renderImage(m_icon_container.width(),
|
renderImage(m_icon_container.width(),
|
||||||
m_icon_container.height(),
|
m_icon_container.height(),
|
||||||
m_focused_theme->emptyTexture(), orientation()));
|
m_theme.emptyTexture(), orientation()));
|
||||||
m_icon_container.setBackgroundPixmap(m_empty_pm);
|
m_icon_container.setBackgroundPixmap(m_empty_pm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ class IconbarTool: public ToolbarItem, public FbTk::Observer {
|
||||||
public:
|
public:
|
||||||
typedef std::map<Focusable *, IconButton *> IconMap;
|
typedef std::map<Focusable *, IconButton *> IconMap;
|
||||||
|
|
||||||
IconbarTool(const FbTk::FbWindow &parent,
|
IconbarTool(const FbTk::FbWindow &parent, IconbarTheme &theme,
|
||||||
FbTk::ThemeProxy<IconbarTheme> &focused_theme,
|
FbTk::ThemeProxy<IconbarTheme> &focused_theme,
|
||||||
FbTk::ThemeProxy<IconbarTheme> &unfocused_theme,
|
FbTk::ThemeProxy<IconbarTheme> &unfocused_theme,
|
||||||
BScreen &screen, FbTk::Menu &menu);
|
BScreen &screen, FbTk::Menu &menu);
|
||||||
|
@ -97,6 +97,7 @@ private:
|
||||||
|
|
||||||
BScreen &m_screen;
|
BScreen &m_screen;
|
||||||
FbTk::Container m_icon_container;
|
FbTk::Container m_icon_container;
|
||||||
|
IconbarTheme &m_theme;
|
||||||
FbTk::ThemeProxy<IconbarTheme> &m_focused_theme, &m_unfocused_theme;
|
FbTk::ThemeProxy<IconbarTheme> &m_focused_theme, &m_unfocused_theme;
|
||||||
FbTk::CachedPixmap m_empty_pm; ///< pixmap for empty container
|
FbTk::CachedPixmap m_empty_pm; ///< pixmap for empty container
|
||||||
|
|
||||||
|
|
|
@ -75,6 +75,7 @@ ToolFactory::ToolFactory(BScreen &screen):m_screen(screen),
|
||||||
m_workspace_theme(new WorkspaceNameTheme(screen.screenNumber(), "toolbar.workspace", "Toolbar.Workspace")),
|
m_workspace_theme(new WorkspaceNameTheme(screen.screenNumber(), "toolbar.workspace", "Toolbar.Workspace")),
|
||||||
m_systray_theme(new ButtonTheme(screen.screenNumber(), "toolbar.systray", "Toolbar.Systray",
|
m_systray_theme(new ButtonTheme(screen.screenNumber(), "toolbar.systray", "Toolbar.Systray",
|
||||||
"toolbar.clock", "Toolbar.Systray")),
|
"toolbar.clock", "Toolbar.Systray")),
|
||||||
|
m_iconbar_theme(screen.screenNumber(), "toolbar.iconbar", "Toolbar.Iconbar"),
|
||||||
m_focused_iconbar_theme(screen.screenNumber(), "toolbar.iconbar.focused", "Toolbar.Iconbar.Focused"),
|
m_focused_iconbar_theme(screen.screenNumber(), "toolbar.iconbar.focused", "Toolbar.Iconbar.Focused"),
|
||||||
m_unfocused_iconbar_theme(screen.screenNumber(), "toolbar.iconbar.unfocused", "Toolbar.Iconbar.Unfocused") {
|
m_unfocused_iconbar_theme(screen.screenNumber(), "toolbar.iconbar.unfocused", "Toolbar.Iconbar.Unfocused") {
|
||||||
|
|
||||||
|
@ -95,7 +96,7 @@ ToolbarItem *ToolFactory::create(const std::string &name, const FbTk::FbWindow &
|
||||||
witem->button().setOnClick(showmenu);
|
witem->button().setOnClick(showmenu);
|
||||||
item = witem;
|
item = witem;
|
||||||
} else if (name == "iconbar") {
|
} else if (name == "iconbar") {
|
||||||
item = new IconbarTool(parent, m_focused_iconbar_theme, m_unfocused_iconbar_theme, screen(), tbar.menu());
|
item = new IconbarTool(parent, m_iconbar_theme, m_focused_iconbar_theme, m_unfocused_iconbar_theme, screen(), tbar.menu());
|
||||||
} else if (name == "systemtray") {
|
} else if (name == "systemtray") {
|
||||||
item = new SystemTray(parent, dynamic_cast<ButtonTheme &>(*m_systray_theme), screen());
|
item = new SystemTray(parent, dynamic_cast<ButtonTheme &>(*m_systray_theme), screen());
|
||||||
} else if (name == "clock") {
|
} else if (name == "clock") {
|
||||||
|
|
|
@ -55,7 +55,8 @@ private:
|
||||||
std::auto_ptr<ToolTheme> m_button_theme;
|
std::auto_ptr<ToolTheme> m_button_theme;
|
||||||
std::auto_ptr<ToolTheme> m_workspace_theme;
|
std::auto_ptr<ToolTheme> m_workspace_theme;
|
||||||
std::auto_ptr<ToolTheme> m_systray_theme;
|
std::auto_ptr<ToolTheme> m_systray_theme;
|
||||||
IconbarTheme m_focused_iconbar_theme, m_unfocused_iconbar_theme;
|
IconbarTheme m_iconbar_theme, m_focused_iconbar_theme,
|
||||||
|
m_unfocused_iconbar_theme;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // TOOLFACTORY_HH
|
#endif // TOOLFACTORY_HH
|
||||||
|
|
Loading…
Reference in a new issue