X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2FToolbar.cc;h=a6da46a96ad26899172c964a40586a393313c338;hb=e75d3560a621976eee5413d3583c14c294fbeab6;hp=b6469957ddf66d72583a9dd853b5bff7853a5ff9;hpb=66c879bd5c0c9f668096f620007388ef347becd0;p=chaz%2Fopenbox diff --git a/src/Toolbar.cc b/src/Toolbar.cc index b6469957..a6da46a9 100644 --- a/src/Toolbar.cc +++ b/src/Toolbar.cc @@ -73,6 +73,7 @@ Toolbar::Toolbar(BScreen &scrn, Resource &conf) : screen(scrn), m_placement = BottomCenter; m_ontop = false; m_hidden = m_autohide = false; + load(); // get the clock updating every minute clock_timer = new BTimer(openbox, *this); @@ -222,6 +223,7 @@ void Toolbar::setOnTop(bool b) { ostrstream s; s << "session.screen" << screen.getScreenNumber() << ".toolbar.onTop" << ends; config.setValue(s.str(), m_ontop ? "True" : "False"); + s.rdbuf()->freeze(0); } void Toolbar::setAutoHide(bool b) { @@ -230,6 +232,7 @@ void Toolbar::setAutoHide(bool b) { s << "session.screen" << screen.getScreenNumber() << ".toolbar.autoHide" << ends; config.setValue(s.str(), m_autohide ? "True" : "False"); + s.rdbuf()->freeze(0); } void Toolbar::setWidthPercent(int w) { @@ -238,6 +241,7 @@ void Toolbar::setWidthPercent(int w) { s << "session.screen" << screen.getScreenNumber() << ".toolbar.widthPercent" << ends; config.setValue(s.str(), m_width_percent); + s.rdbuf()->freeze(0); } void Toolbar::setPlacement(int p) { @@ -255,6 +259,14 @@ void Toolbar::setPlacement(int p) { case BottomCenter: default: placement = "BottomCenter"; break; } config.setValue(s.str(), placement); + s.rdbuf()->freeze(0); +} + +void Toolbar::save() { + setOnTop(m_ontop); + setAutoHide(m_autohide); + setWidthPercent(m_width_percent); + setPlacement(m_placement); } void Toolbar::load() { @@ -298,6 +310,9 @@ void Toolbar::load() { rclass << rscreen.str() << "Toolbar.AutoHide" << ends; if (config.getValue(rname.str(), rclass.str(), b)) m_hidden = m_autohide = b; + rscreen.rdbuf()->freeze(0); + rname.rdbuf()->freeze(0); + rclass.rdbuf()->freeze(0); } void Toolbar::reconfigure() { @@ -379,7 +394,7 @@ void Toolbar::reconfigure() { tt = localtime(&ttmp); if (tt) { char t[1025], *time_string = (char *) 0; - int len = strftime(t, 1024, screen.getStrftimeFormat(), tt); + int len = strftime(t, 1024, screen.strftimeFormat(), tt); t[len++-1] = ' '; // add a space to the string for padding t[len] = '\0'; @@ -616,7 +631,7 @@ void Toolbar::checkClock(Bool redraw, Bool date) { if (redraw) { #ifdef HAVE_STRFTIME char t[1024]; - if (! strftime(t, 1024, screen.getStrftimeFormat(), tt)) + if (! strftime(t, 1024, screen.strftimeFormat(), tt)) return; #else // !HAVE_STRFTIME char t[9]; @@ -950,7 +965,7 @@ void Toolbar::edit() { return; XSetInputFocus(display, frame.workspace_label, - ((screen.isSloppyFocus()) ? RevertToPointerRoot : + ((screen.sloppyFocus()) ? RevertToPointerRoot : RevertToParent), CurrentTime); XClearWindow(display, frame.workspace_label); @@ -1264,9 +1279,13 @@ Toolbarmenu::Toolbarmenu(Toolbar &tb) : Basemenu(tb.screen), toolbar(tb) { "Edit current workspace name"), 3); update(); + + setValues(); +} - if (toolbar.onTop()) setItemSelected(1, True); - if (toolbar.autoHide()) setItemSelected(2, True); +void Toolbarmenu::setValues() { + setItemSelected(1, toolbar.onTop()); + setItemSelected(2, toolbar.autoHide()); } @@ -1321,6 +1340,7 @@ void Toolbarmenu::internal_hide() { void Toolbarmenu::reconfigure() { + setValues(); placementmenu->reconfigure(); Basemenu::reconfigure(); @@ -1349,7 +1369,6 @@ Toolbarmenu::Placementmenu::Placementmenu(Toolbarmenu &tm) update(); } - void Toolbarmenu::Placementmenu::itemSelected(int button, int index) { if (button != 1) return;