X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2FToolbar.cc;h=b44017d4f6091633e8419e7f29cf160d3283c2f1;hb=82e61c015fe82b673676c3242f014bf26c0dd152;hp=01e210fc376f47350e8ad92432927e76b4825fac;hpb=72af8cea6a0573f7d2c004102cd04f1a1ad88798;p=chaz%2Fopenbox diff --git a/src/Toolbar.cc b/src/Toolbar.cc index 01e210fc..b44017d4 100644 --- a/src/Toolbar.cc +++ b/src/Toolbar.cc @@ -41,12 +41,11 @@ #include "Workspace.h" #include "Workspacemenu.h" -#include #include -#ifdef STDC_HEADERS +#ifdef HAVE_STRING_H # include -#endif // STDC_HEADERS +#endif // HAVE_STRING_H #ifdef HAVE_STDIO_H # include @@ -149,15 +148,24 @@ Toolbar::Toolbar(BScreen &scrn) : screen(scrn), openbox(scrn.getOpenbox()) { frame.pbutton = None; reconfigure(); - - XMapSubwindows(display, frame.window); - XMapWindow(display, frame.window); + mapToolbar(); } - -Toolbar::~Toolbar(void) { +inline void Toolbar::mapToolbar(){ + if(!screen.doToolbarHide()){ + do_hide=false;//not hidden, so windows should not maximize over the toolbar + XMapSubwindows(display, frame.window); + XMapWindow(display, frame.window); + }else + do_hide=true; +} +inline void Toolbar::unMapToolbar(){ + do_hide=true; //hidden so we can maximize over the toolbar XUnmapWindow(display, frame.window); +} +Toolbar::~Toolbar(void) { + unMapToolbar(); if (frame.base) image_ctrl->removeImage(frame.base); if (frame.label) image_ctrl->removeImage(frame.label); if (frame.wlabel) image_ctrl->removeImage(frame.wlabel); @@ -188,7 +196,7 @@ Toolbar::~Toolbar(void) { void Toolbar::reconfigure(void) { frame.bevel_w = screen.getBevelWidth(); - frame.width = screen.getWidth() * screen.getToolbarWidthPercent() / 100; + frame.width = screen.size().w() * screen.getToolbarWidthPercent() / 100; if (i18n->multibyte()) frame.height = @@ -212,15 +220,15 @@ void Toolbar::reconfigure(void) { case BottomLeft: frame.x = 0; - frame.y = screen.getHeight() - frame.height + frame.y = screen.size().h() - frame.height - (screen.getBorderWidth() * 2); frame.x_hidden = 0; - frame.y_hidden = screen.getHeight() - screen.getBevelWidth() + frame.y_hidden = screen.size().h() - screen.getBevelWidth() - screen.getBorderWidth(); break; case TopCenter: - frame.x = (screen.getWidth() - frame.width) / 2; + frame.x = (screen.size().w() - frame.width) / 2; frame.y = 0; frame.x_hidden = frame.x; frame.y_hidden = screen.getBevelWidth() - screen.getBorderWidth() @@ -229,16 +237,16 @@ void Toolbar::reconfigure(void) { case BottomCenter: default: - frame.x = (screen.getWidth() - frame.width) / 2; - frame.y = screen.getHeight() - frame.height + frame.x = (screen.size().w() - frame.width) / 2; + frame.y = screen.size().h() - frame.height - (screen.getBorderWidth() * 2); frame.x_hidden = frame.x; - frame.y_hidden = screen.getHeight() - screen.getBevelWidth() + frame.y_hidden = screen.size().h() - screen.getBevelWidth() - screen.getBorderWidth(); break; case TopRight: - frame.x = screen.getWidth() - frame.width + frame.x = screen.size().w() - frame.width - (screen.getBorderWidth() * 2); frame.y = 0; frame.x_hidden = frame.x; @@ -247,12 +255,12 @@ void Toolbar::reconfigure(void) { break; case BottomRight: - frame.x = screen.getWidth() - frame.width + frame.x = screen.size().w() - frame.width - (screen.getBorderWidth() * 2); - frame.y = screen.getHeight() - frame.height + frame.y = screen.size().h() - frame.height - (screen.getBorderWidth() * 2); frame.x_hidden = frame.x; - frame.y_hidden = screen.getHeight() - screen.getBevelWidth() + frame.y_hidden = screen.size().h() - screen.getBevelWidth() - screen.getBorderWidth(); break; } @@ -468,7 +476,7 @@ void Toolbar::reconfigure(void) { XClearWindow(display, frame.nsbutton); XClearWindow(display, frame.pwbutton); XClearWindow(display, frame.nwbutton); - + redrawWindowLabel(); redrawWorkspaceLabel(); redrawPrevWorkspaceButton(); @@ -476,7 +484,7 @@ void Toolbar::reconfigure(void) { redrawPrevWindowButton(); redrawNextWindowButton(); checkClock(True); - + toolbarmenu->reconfigure(); } @@ -897,13 +905,13 @@ void Toolbar::buttonPressEvent(XButtonEvent *be) { if (x < 0) x = 0; - else if (x + toolbarmenu->getWidth() > screen.getWidth()) - x = screen.getWidth() - toolbarmenu->getWidth(); + else if (x + toolbarmenu->getWidth() > screen.size().w()) + x = screen.size().w() - toolbarmenu->getWidth(); if (y < 0) y = 0; - else if (y + toolbarmenu->getHeight() > screen.getHeight()) - y = screen.getHeight() - toolbarmenu->getHeight(); + else if (y + toolbarmenu->getHeight() > screen.size().h()) + y = screen.size().h() - toolbarmenu->getHeight(); toolbarmenu->move(x, y); toolbarmenu->show();