+void Toolbar::mapToolbar() {
+ if (!screen->doHideToolbar()) {
+ //not hidden, so windows should not maximize over the toolbar
+ XMapSubwindows(display, frame.window);
+ XMapWindow(display, frame.window);
+ }
+ updateStrut();
+}
+
+
+void Toolbar::unmapToolbar() {
+ if (toolbarmenu->isVisible())
+ toolbarmenu->hide();
+ //hidden so we can maximize over the toolbar
+ XUnmapWindow(display, frame.window);
+ updateStrut();
+}
+
+
+void Toolbar::saveOnTop(bool b) {
+ on_top = b;
+ config->setValue(toolbarstr + "onTop", on_top);
+}
+
+
+void Toolbar::saveAutoHide(bool b) {
+ do_auto_hide = b;
+ config->setValue(toolbarstr + "autoHide", do_auto_hide);
+}
+
+
+void Toolbar::saveWidthPercent(unsigned int w) {
+ width_percent = w;
+ config->setValue(toolbarstr + "widthPercent", width_percent);
+}
+
+
+void Toolbar::savePlacement(int p) {
+ placement = p;
+ const char *pname;
+ switch (placement) {
+ case TopLeft: pname = "TopLeft"; break;
+ case BottomLeft: pname = "BottomLeft"; break;
+ case TopCenter: pname = "TopCenter"; break;
+ case TopRight: pname = "TopRight"; break;
+ case BottomRight: pname = "BottomRight"; break;
+ case BottomCenter: default: pname = "BottomCenter"; break;
+ }
+ config->setValue(toolbarstr + "placement", pname);
+}
+
+
+void Toolbar::save_rc(void) {
+ saveOnTop(on_top);
+ saveAutoHide(do_auto_hide);
+ saveWidthPercent(width_percent);
+ savePlacement(placement);
+}
+
+
+void Toolbar::load_rc(void) {
+ string s;
+
+ if (! config->getValue(toolbarstr + "onTop", on_top))
+ on_top = false;
+
+ if (! config->getValue(toolbarstr + "autoHide", do_auto_hide))
+ do_auto_hide = false;
+ hidden = do_auto_hide;
+
+ if (! config->getValue(toolbarstr + "widthPercent", width_percent) ||
+ width_percent == 0 || width_percent > 100)
+ width_percent = 66;
+
+ if (config->getValue(toolbarstr + "placement", s)) {
+ if (s == "TopLeft")
+ placement = TopLeft;
+ else if (s == "BottomLeft")
+ placement = BottomLeft;
+ else if (s == "TopCenter")
+ placement = TopCenter;
+ else if (s == "TopRight")
+ placement = TopRight;
+ else if (s == "BottomRight")
+ placement = BottomRight;
+ else //if (s == "BottomCenter")
+ placement = BottomCenter;
+ } else
+ placement = BottomCenter;
+}
+
+