diff options
Diffstat (limited to 'src/ToolFactory.cc')
-rw-r--r-- | src/ToolFactory.cc | 32 |
1 files changed, 6 insertions, 26 deletions
diff --git a/src/ToolFactory.cc b/src/ToolFactory.cc index c5cb895..be83616 100644 --- a/src/ToolFactory.cc +++ b/src/ToolFactory.cc | |||
@@ -101,36 +101,17 @@ ToolbarItem *ToolFactory::create(const std::string &name, const FbTk::FbWindow & | |||
101 | item = new SystemTray(parent, dynamic_cast<ButtonTheme &>(*m_systray_theme), screen()); | 101 | item = new SystemTray(parent, dynamic_cast<ButtonTheme &>(*m_systray_theme), screen()); |
102 | } else if (name == "clock") { | 102 | } else if (name == "clock") { |
103 | item = new ClockTool(parent, m_clock_theme, screen(), tbar.menu()); | 103 | item = new ClockTool(parent, m_clock_theme, screen(), tbar.menu()); |
104 | } else if (name == "nextworkspace" || | ||
105 | name == "prevworkspace") { | ||
106 | |||
107 | FbTk::RefCount<FbTk::Command<void> > cmd(FbTk::CommandParser<void>::instance().parse(name)); | ||
108 | if (*cmd == 0) // we need a command | ||
109 | return 0; | ||
110 | |||
111 | // TODO maybe direction of arrows should depend on toolbar layout ? | ||
112 | FbTk::FbDrawable::TriangleType arrow_type = FbTk::FbDrawable::LEFT; | ||
113 | if (name == "nextworkspace") | ||
114 | arrow_type = FbTk::FbDrawable::RIGHT; | ||
115 | |||
116 | ArrowButton *win = new ArrowButton(arrow_type, parent, | ||
117 | 0, 0, | ||
118 | button_size, button_size); | ||
119 | win->setOnClick(cmd); | ||
120 | item = new ButtonTool(win, ToolbarItem::SQUARE, | ||
121 | dynamic_cast<ButtonTheme &>(*m_button_theme), | ||
122 | screen().imageControl()); | ||
123 | |||
124 | } else { | 104 | } else { |
125 | |||
126 | FbTk::RefCount<FbTk::Command<void> > cmd(FbTk::CommandParser<void>::instance().parse(name)); | 105 | FbTk::RefCount<FbTk::Command<void> > cmd(FbTk::CommandParser<void>::instance().parse(name)); |
127 | if (*cmd == 0) // we need a command | 106 | if (*cmd == 0) // we need a command |
128 | return 0; | 107 | return 0; |
129 | 108 | ||
130 | FbTk::FbDrawable::TriangleType arrow_type = FbTk::FbDrawable::LEFT; | 109 | // TODO maybe direction of arrows should depend on toolbar layout ? |
131 | if (name == "nextwindow") | 110 | FbTk::FbDrawable::TriangleType arrow_type = FbTk::FbDrawable::RIGHT; |
132 | arrow_type = FbTk::FbDrawable::RIGHT; | 111 | const char *tmp = name.c_str(); |
133 | 112 | if (FbTk::StringUtil::strcasestr(tmp, "prev")) | |
113 | arrow_type = FbTk::FbDrawable::LEFT; | ||
114 | |||
134 | ArrowButton *win = new ArrowButton(arrow_type, parent, | 115 | ArrowButton *win = new ArrowButton(arrow_type, parent, |
135 | 0, 0, | 116 | 0, 0, |
136 | button_size, button_size); | 117 | button_size, button_size); |
@@ -138,7 +119,6 @@ ToolbarItem *ToolFactory::create(const std::string &name, const FbTk::FbWindow & | |||
138 | item = new ButtonTool(win, ToolbarItem::SQUARE, | 119 | item = new ButtonTool(win, ToolbarItem::SQUARE, |
139 | dynamic_cast<ButtonTheme &>(*m_button_theme), | 120 | dynamic_cast<ButtonTheme &>(*m_button_theme), |
140 | screen().imageControl()); | 121 | screen().imageControl()); |
141 | |||
142 | } | 122 | } |
143 | 123 | ||
144 | if (item) | 124 | if (item) |