]> Dogcows Code - chaz/openbox/blobdiff - src/openbox.cc
Added a runtime option for hiding the toolbar totally. Will be cleaner
[chaz/openbox] / src / openbox.cc
index 670c41c05dfd66ba95959c5d3d2e123b0d9c6150..641235213bc865dedba9fb8665fab05de966444b 100644 (file)
@@ -55,6 +55,7 @@
 #include "Window.h"
 #include "Workspace.h"
 #include "Workspacemenu.h"
+#include "Util.h"
 
 #include <string>
 #include <algorithm>
 #  include <stdio.h>
 #endif // HAVE_STDIO_H
 
-#ifdef    STDC_HEADERS
+#ifdef    HAVE_STDLIB_H
 #  include <stdlib.h>
+#endif // HAVE_STDLIB_H
+
+#ifdef    HAVE_STRING_H
 #  include <string.h>
-#endif // STDC_HEADERS
+#endif // HAVE_STRING_H
 
 #ifdef    HAVE_UNISTD_H
 #  include <sys/types.h>
@@ -174,7 +178,6 @@ Openbox::Openbox(int m_argc, char **m_argv, char *dpy_name, char *rc)
   } else {
     rc_file = bstrdup(rc);
   }
-  symlink_rc(rc_file);
   config.setFile(rc_file);
 
   no_focus = False;
@@ -337,14 +340,14 @@ void Openbox::process_event(XEvent *e) {
            if (my < 0) my = 0;
 
            if (mx + screen->getWorkspacemenu()->getWidth() >
-               screen->getWidth())
-             mx = screen->getWidth() -
+               screen->size().w())
+             mx = screen->size().w() -
                screen->getWorkspacemenu()->getWidth() -
                screen->getBorderWidth();
 
            if (my + screen->getWorkspacemenu()->getHeight() >
-               screen->getHeight())
-             my = screen->getHeight() -
+               screen->size().h())
+             my = screen->size().h() -
                screen->getWorkspacemenu()->getHeight() -
                screen->getBorderWidth();
 
@@ -363,13 +366,13 @@ void Openbox::process_event(XEvent *e) {
            if (mx < 0) mx = 0;
            if (my < 0) my = 0;
 
-           if (mx + screen->getRootmenu()->getWidth() > screen->getWidth())
-             mx = screen->getWidth() -
+           if (mx + screen->getRootmenu()->getWidth() > screen->size().w())
+             mx = screen->size().w() -
                screen->getRootmenu()->getWidth() -
                screen->getBorderWidth();
 
-           if (my + screen->getRootmenu()->getHeight() > screen->getHeight())
-               my = screen->getHeight() -
+           if (my + screen->getRootmenu()->getHeight() > screen->size().h())
+               my = screen->size().h() -
                  screen->getRootmenu()->getHeight() -
                  screen->getBorderWidth();
 
@@ -380,15 +383,16 @@ void Openbox::process_event(XEvent *e) {
              screen->getRootmenu()->show();
            }
           } else if (e->xbutton.button == 4) {
-            if ((screen->getCurrentWorkspaceID()-1)<0)
-              screen->changeWorkspaceID(screen->getWorkspaceCount()-1);
+            if ((screen->getCurrentWorkspaceID() + 1) >
+                screen->getWorkspaceCount() - 1)
+              screen->changeWorkspaceID(0);
             else
-              screen->changeWorkspaceID(screen->getCurrentWorkspaceID()-1);
+              screen->changeWorkspaceID(screen->getCurrentWorkspaceID() + 1);
           } else if (e->xbutton.button == 5) {
-            if ((screen->getCurrentWorkspaceID()+1)>screen->getWorkspaceCount()-1)
-              screen->changeWorkspaceID(0);
+            if ((screen->getCurrentWorkspaceID() - 1) < 0)
+              screen->changeWorkspaceID(screen->getWorkspaceCount() - 1);
             else
-              screen->changeWorkspaceID(screen->getCurrentWorkspaceID()+1);
+              screen->changeWorkspaceID(screen->getCurrentWorkspaceID() - 1);
           }
         }
       }
@@ -467,7 +471,7 @@ void Openbox::process_event(XEvent *e) {
     OpenboxWindow *win = searchWindow(e->xmaprequest.window);
 
     if (! win)
-      win = new OpenboxWindow(this, e->xmaprequest.window);
+      win = new OpenboxWindow(*this, e->xmaprequest.window);
 
     if ((win = searchWindow(e->xmaprequest.window)))
       win->mapRequestEvent(&e->xmaprequest);
@@ -1068,6 +1072,11 @@ void Openbox::save_rc(void) {
     config.setValue(rc_string, screen->getToolbar()->doAutoHide() ?
                     "True" : "False");
 
+    sprintf(rc_string, "session.screen%d.toolbar.hide", screen_number);
+    config.setValue(rc_string, screen->doToolbarHide() ?
+                    "True" : "False");
+
+
     switch (screen->getToolbarPlacement()) {
     case Toolbar::TopLeft: placement = "TopLeft"; break;
     case Toolbar::BottomLeft: placement = "BottomLeft"; break;
@@ -1209,9 +1218,9 @@ void Openbox::load_rc(void) {
 
 
 void Openbox::load_rc(BScreen *screen) {
-  assert (screen != NULL);
+  ASSERT (screen != NULL);
   const int screen_number = screen->getScreenNumber();
-  assert (screen_number >= 0);
+  ASSERT (screen_number >= 0);
 
   if (!config.load())
     return;
@@ -1324,6 +1333,13 @@ void Openbox::load_rc(BScreen *screen) {
   else
     screen->saveToolbarOnTop(False);
 
+  sprintf(name_lookup,  "session.screen%d.toolbar.hide", screen_number);
+  sprintf(class_lookup, "Session.Screen%d.Toolbar.Hide", screen_number);
+  if (config.getValue(name_lookup, class_lookup, b))
+    screen->saveToolbarHide((Bool)b);
+  else
+    screen->saveToolbarHide(False);
+
   sprintf(name_lookup,  "session.screen%d.toolbar.autoHide", screen_number);
   sprintf(class_lookup, "Session.Screen%d.Toolbar.autoHide", screen_number);
   if (config.getValue(name_lookup, class_lookup, b))
@@ -1641,15 +1657,3 @@ void Openbox::setFocusedWindow(OpenboxWindow *win) {
   if (old_screen && old_screen != screen)
     old_screen->updateNetizenWindowFocus();
 }
-
-#warning TODO: wrap in appropriate #ifdefs.
-
-void Openbox::symlink_rc(const char*rcfile)const{
-  char *homedir = getenv("HOME");
-  
-  char *link_file = new char[strlen(homedir) + strlen("/.blackoxrc") + 1];
-  sprintf(link_file, "%s/.blackboxrc", homedir);
-  if(symlink(rcfile, link_file) == -1){
-    perror("Cannot create symlink");
-  }
-}
This page took 0.027686 seconds and 4 git commands to generate.