aboutsummaryrefslogtreecommitdiff
path: root/src/Screen.cc
diff options
context:
space:
mode:
authorfluxgen <fluxgen>2003-12-12 18:18:49 (GMT)
committerfluxgen <fluxgen>2003-12-12 18:18:49 (GMT)
commitbf75608df0025d49ea0f52326a402825fcc55d06 (patch)
tree9a47943a7618768bebdfbcd930c066a20ef65794 /src/Screen.cc
parent624fd1e1215812057ef4d1322cafe587717a3bf8 (diff)
downloadfluxbox-bf75608df0025d49ea0f52326a402825fcc55d06.zip
fluxbox-bf75608df0025d49ea0f52326a402825fcc55d06.tar.bz2
menu delay and mode
Diffstat (limited to 'src/Screen.cc')
-rw-r--r--src/Screen.cc38
1 files changed, 36 insertions, 2 deletions
diff --git a/src/Screen.cc b/src/Screen.cc
index c95b96b..ba5e0d5 100644
--- a/src/Screen.cc
+++ b/src/Screen.cc
@@ -22,7 +22,7 @@
22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23// DEALINGS IN THE SOFTWARE. 23// DEALINGS IN THE SOFTWARE.
24 24
25// $Id: Screen.cc,v 1.247 2003/12/10 23:08:03 fluxgen Exp $ 25// $Id: Screen.cc,v 1.248 2003/12/12 18:18:12 fluxgen Exp $
26 26
27 27
28#include "Screen.hh" 28#include "Screen.hh"
@@ -154,7 +154,31 @@ private:
154 154
155}; // End anonymous namespace 155}; // End anonymous namespace
156 156
157template <>
158void FbTk::Resource<FbTk::MenuTheme::MenuMode>::setDefaultValue() {
159 *(*this) = FbTk::MenuTheme::DELAY_OPEN;
160}
161
162template <>
163string FbTk::Resource<FbTk::MenuTheme::MenuMode>::getString() {
164 switch (*(*this)) {
165 case FbTk::MenuTheme::DELAY_OPEN:
166 return string("Delay");
167 case FbTk::MenuTheme::CLICK_OPEN:
168 return string("Click");
169 }
170 return string("Delay");
171}
157 172
173template <>
174void FbTk::Resource<FbTk::MenuTheme::MenuMode>::setFromString(const char *str) {
175 if (strcasecmp(str, "Delay") == 0)
176 *(*this) = FbTk::MenuTheme::DELAY_OPEN;
177 else if (strcasecmp(str, "Click") == 0)
178 *(*this) = FbTk::MenuTheme::CLICK_OPEN;
179 else
180 setDefaultValue();
181}
158 182
159namespace { 183namespace {
160 184
@@ -222,7 +246,10 @@ BScreen::ScreenResource::ScreenResource(FbTk::ResourceManager &rm,
222 focus_model(rm, Fluxbox::CLICKTOFOCUS, scrname+".focusModel", altscrname+".FocusModel"), 246 focus_model(rm, Fluxbox::CLICKTOFOCUS, scrname+".focusModel", altscrname+".FocusModel"),
223 workspaces(rm, 1, scrname+".workspaces", altscrname+".Workspaces"), 247 workspaces(rm, 1, scrname+".workspaces", altscrname+".Workspaces"),
224 edge_snap_threshold(rm, 0, scrname+".edgeSnapThreshold", altscrname+".EdgeSnapThreshold"), 248 edge_snap_threshold(rm, 0, scrname+".edgeSnapThreshold", altscrname+".EdgeSnapThreshold"),
225 menu_alpha(rm, 255, scrname+".menuAlpha", altscrname+".MenuAlpha") { 249 menu_alpha(rm, 255, scrname+".menuAlpha", altscrname+".MenuAlpha"),
250 menu_delay(rm, 0, scrname + ".menuDelay", altscrname+".MenuDelay"),
251 menu_delay_close(rm, 0, scrname + ".menuDelayClose", altscrname+".MenuDelayClose"),
252 menu_mode(rm, FbTk::MenuTheme::DELAY_OPEN, scrname+".menuMode", altscrname+".MenuMode") {
226 253
227}; 254};
228 255
@@ -307,6 +334,9 @@ BScreen::BScreen(FbTk::ResourceManager &rm,
307 334
308 335
309 m_menutheme->setAlpha(*resource.menu_alpha); 336 m_menutheme->setAlpha(*resource.menu_alpha);
337 m_menutheme->setMenuMode(*resource.menu_mode);
338 m_menutheme->setDelayOpen(*resource.menu_delay);
339 m_menutheme->setDelayClose(*resource.menu_delay_close);
310 340
311 imageControl().setDither(*resource.image_dither); 341 imageControl().setDither(*resource.image_dither);
312 342
@@ -570,6 +600,10 @@ FbTk::Menu *BScreen::createMenu(const std::string &label) {
570 600
571void BScreen::reconfigure() { 601void BScreen::reconfigure() {
572 m_menutheme->setAlpha(*resource.menu_alpha); 602 m_menutheme->setAlpha(*resource.menu_alpha);
603 m_menutheme->setMenuMode(*resource.menu_mode);
604 m_menutheme->setDelayOpen(*resource.menu_delay);
605 m_menutheme->setDelayClose(*resource.menu_delay_close);
606
573 Fluxbox::instance()->loadRootCommand(*this); 607 Fluxbox::instance()->loadRootCommand(*this);
574 608
575 // setup windowtheme, toolbartheme for antialias 609 // setup windowtheme, toolbartheme for antialias