X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2FScreen.cc;h=e1231b8b60a2a5eba7ba570f37a7dc94b3587af0;hb=66c879bd5c0c9f668096f620007388ef347becd0;hp=239ed1b213e48f5d46fa02f56192a9fb4e820218;hpb=29fff5f56f4dce2296af459a69080e4d8147d069;p=chaz%2Fopenbox diff --git a/src/Screen.cc b/src/Screen.cc index 239ed1b2..e1231b8b 100644 --- a/src/Screen.cc +++ b/src/Screen.cc @@ -99,6 +99,7 @@ #define FONT_ELEMENT_SIZE 50 #endif // FONT_ELEMENT_SIZE +#include #include #include @@ -185,7 +186,9 @@ static const char *getFontSize(const char *pattern, int *size) { } -BScreen::BScreen(Openbox &ob, int scrn) : ScreenInfo(ob, scrn), openbox(ob) { +BScreen::BScreen(Openbox &ob, int scrn, Resource &conf) : ScreenInfo(ob, scrn), + openbox(ob), config(conf) +{ event_mask = ColormapChangeMask | EnterWindowMask | PropertyChangeMask | SubstructureRedirectMask | KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask; @@ -416,10 +419,10 @@ BScreen::BScreen(Openbox &ob, int scrn) : ScreenInfo(ob, scrn), openbox(ob) { current_workspace = workspacesList->first(); workspacemenu->setItemSelected(2, True); - toolbar = new Toolbar(*this); + toolbar = new Toolbar(*this, config); #ifdef SLIT - slit = new Slit(*this); + slit = new Slit(*this, config); #endif // SLIT InitMenu(); @@ -821,8 +824,22 @@ XFontSet BScreen::createFontSet(const char *fontname) { return fs; } +void BScreen::load() { + std::ostrstream rscreen, rname, rclass; + std::string s; + bool b; + long l; + rscreen << "session.screen" << getScreenNumber() << '.' << ends; + + rname << rscreen.str() << "hideToolbar" << ends; + rclass << rscreen.str() << "HideToolbar" << ends; + if (config.getValue(rname.str(), rclass.str(), b)) + resource.hide_toolbar = b; + +} void BScreen::reconfigure(void) { + load(); LoadStyle(); XGCValues gcv; @@ -996,7 +1013,7 @@ void BScreen::removeWorkspaceNames(void) { void BScreen::LoadStyle(void) { - obResource &conf = resource.styleconfig; + Resource &conf = resource.styleconfig; conf.setFile(openbox.getStyleFilename()); if (!conf.load()) { @@ -1541,11 +1558,11 @@ void BScreen::raiseWindows(Window *workspace_stack, int num) { *(session_stack + i++) = tmp->getWindowID(); *(session_stack + i++) = rootmenu->getWindowID(); - if (toolbar->isOnTop()) + if (toolbar->onTop()) *(session_stack + i++) = toolbar->getWindowID(); #ifdef SLIT - if (slit->isOnTop()) + if (slit->onTop()) *(session_stack + i++) = slit->getWindowID(); #endif // SLIT @@ -2264,13 +2281,14 @@ void BScreen::hideGeometry(void) { } } -void BScreen::saveToolbarHide(Bool b){ - resource.toolbar_total_hide = b; - if (toolbar != NULL){ - if (b) - toolbar->unMapToolbar(); - else - toolbar->mapToolbar(); - } - +void BScreen::setHideToolbar(bool b) { + resource.hide_toolbar = b; + if (resource.hide_toolbar) + getToolbar()->unMapToolbar(); + else + getToolbar()->mapToolbar(); + ostrstream s; + s << "session.screen" << getScreenNumber() << ".hideToolbar" << ends; + config.setValue(s.str(), resource.hide_toolbar ? "True" : "False"); } +