]> Dogcows Code - chaz/openbox/blobdiff - src/Toolbar.cc
fixed HAVE_STRING_H introduced from some parrallel development. blast
[chaz/openbox] / src / Toolbar.cc
index 01e210fc376f47350e8ad92432927e76b4825fac..b44017d4f6091633e8419e7f29cf160d3283c2f1 100644 (file)
 #include "Workspace.h"
 #include "Workspacemenu.h"
 
-#include <X11/Xutil.h>
 #include <X11/keysym.h>
 
-#ifdef    STDC_HEADERS
+#ifdef    HAVE_STRING_H
 #  include <string.h>
-#endif // STDC_HEADERS
+#endif // HAVE_STRING_H
 
 #ifdef    HAVE_STDIO_H
 #  include <stdio.h>
@@ -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();
This page took 0.028561 seconds and 4 git commands to generate.