-void Toolbar::reconfigure(void) {
- frame.bevel_w = screen.getBevelWidth();
- frame.width = screen.size().w() * screen.getToolbarWidthPercent() / 100;
-
- if (i18n->multibyte())
- frame.height =
- screen.getToolbarStyle()->fontset_extents->max_ink_extent.height;
- else
- frame.height = screen.getToolbarStyle()->font->ascent +
- screen.getToolbarStyle()->font->descent;
- frame.button_w = frame.height;
- frame.height += 2;
- frame.label_h = frame.height;
- frame.height += (frame.bevel_w * 2);
+void Toolbar::mapToolbar() {
+ if (!screen->doHideToolbar()) {
+ //not hidden, so windows should not maximize over the toolbar
+ XMapSubwindows(display, frame.window);
+ XMapWindow(display, frame.window);
+ }
+ screen->addStrut(&strut);
+ updateStrut();
+}
+
+
+void Toolbar::unmapToolbar() {
+ if (toolbarmenu->isVisible())
+ toolbarmenu->hide();
+ //hidden so we can maximize over the toolbar
+ screen->removeStrut(&strut);
+ screen->updateAvailableArea();
+
+ 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;