]> Dogcows Code - chaz/openbox/commitdiff
more old bb shit to go
authorDana Jansens <danakj@orodu.net>
Fri, 3 Jan 2003 19:37:17 +0000 (19:37 +0000)
committerDana Jansens <danakj@orodu.net>
Fri, 3 Jan 2003 19:37:17 +0000 (19:37 +0000)
src/blackbox.cc [deleted file]
src/blackbox.hh [deleted file]

diff --git a/src/blackbox.cc b/src/blackbox.cc
deleted file mode 100644 (file)
index bfaefb7..0000000
+++ /dev/null
@@ -1,1219 +0,0 @@
-// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
-
-#ifdef    HAVE_CONFIG_H
-#  include "../config.h"
-#endif // HAVE_CONFIG_H
-
-extern "C" {
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include <X11/Xatom.h>
-#include <X11/cursorfont.h>
-#include <X11/keysym.h>
-
-#ifdef    SHAPE
-#include <X11/extensions/shape.h>
-#endif // SHAPE
-
-#ifdef    HAVE_STDIO_H
-#  include <stdio.h>
-#endif // HAVE_STDIO_H
-
-#ifdef HAVE_STDLIB_H
-#  include <stdlib.h>
-#endif // HAVE_STDLIB_H
-
-#ifdef HAVE_STRING_H
-#  include <string.h>
-#endif // HAVE_STRING_H
-
-#ifdef    HAVE_UNISTD_H
-#  include <sys/types.h>
-#  include <unistd.h>
-#endif // HAVE_UNISTD_H
-
-#ifdef    HAVE_SYS_PARAM_H
-#  include <sys/param.h>
-#endif // HAVE_SYS_PARAM_H
-
-#ifdef    HAVE_SYS_SELECT_H
-#  include <sys/select.h>
-#endif // HAVE_SYS_SELECT_H
-
-#ifdef    HAVE_SIGNAL_H
-#  include <signal.h>
-#endif // HAVE_SIGNAL_H
-
-#ifdef    HAVE_SYS_SIGNAL_H
-#  include <sys/signal.h>
-#endif // HAVE_SYS_SIGNAL_H
-
-#ifdef    HAVE_SYS_STAT_H
-#  include <sys/types.h>
-#  include <sys/stat.h>
-#endif // HAVE_SYS_STAT_H
-
-#ifdef    TIME_WITH_SYS_TIME
-#  include <sys/time.h>
-#  include <time.h>
-#else // !TIME_WITH_SYS_TIME
-#  ifdef    HAVE_SYS_TIME_H
-#    include <sys/time.h>
-#  else // !HAVE_SYS_TIME_H
-#    include <time.h>
-#  endif // HAVE_SYS_TIME_H
-#endif // TIME_WITH_SYS_TIME
-
-#ifdef    HAVE_LIBGEN_H
-#  include <libgen.h>
-#endif // HAVE_LIBGEN_H
-}
-
-#include <assert.h>
-
-#include <algorithm>
-#include <string>
-using std::string;
-
-#include "blackbox.hh"
-#include "otk/gccache.hh"
-#include "otk/image.hh"
-#include "otk/assassin.hh"
-#include "bbscreen.hh"
-#include "otk/util.hh"
-#include "bbwindow.hh"
-#include "workspace.hh"
-
-namespace ob {
-
-Blackbox *blackbox;
-
-
-Blackbox::Blackbox(int argc, char **m_argv, char *rc)
-  : Openbox(argc, m_argv) {
-
-  if (! XSupportsLocale())
-    fprintf(stderr, "X server does not support locale\n");
-
-  if (XSetLocaleModifiers("") == NULL)
-    fprintf(stderr, "cannot set locale modifiers\n");
-
-  ob::blackbox = this;
-  argv = m_argv;
-
-  // try to make sure the ~/.openbox directory exists
-  mkdir(otk::expandTilde("~/.openbox").c_str(), S_IREAD | S_IWRITE | S_IEXEC |
-                                           S_IRGRP | S_IWGRP | S_IXGRP |
-                                           S_IROTH | S_IWOTH | S_IXOTH);
-  
-  if (! rc) rc = "~/.openbox/rc3";
-  rc_file = otk::expandTilde(rc);
-  config.setFile(rc_file);  
-
-  no_focus = False;
-
-  resource.auto_raise_delay.tv_sec = resource.auto_raise_delay.tv_usec = 0;
-
-  active_screen = 0;
-  focused_window = changing_window = (BlackboxWindow *) 0;
-
-  load_rc();
-
-  xatom = new otk::OBProperty();
-
-  cursor.session = XCreateFontCursor(otk::OBDisplay::display, XC_left_ptr);
-  cursor.move = XCreateFontCursor(otk::OBDisplay::display, XC_fleur);
-  cursor.ll_angle = XCreateFontCursor(otk::OBDisplay::display, XC_ll_angle);
-  cursor.lr_angle = XCreateFontCursor(otk::OBDisplay::display, XC_lr_angle);
-  cursor.ul_angle = XCreateFontCursor(otk::OBDisplay::display, XC_ul_angle);
-  cursor.ur_angle = XCreateFontCursor(otk::OBDisplay::display, XC_ur_angle);
-
-  for (int i = 0; i < ScreenCount(otk::OBDisplay::display); i++) {
-    BScreen *screen = new BScreen(this, i);
-
-    if (! screen->isScreenManaged()) {
-      delete screen;
-      continue;
-    }
-
-    screenList.push_back(screen);
-  }
-
-  if (screenList.empty()) {
-    fprintf(stderr,
-            "Blackbox::Blackbox: no managable screens found, aborting.\n");
-    ::exit(3);
-  }
-
-  // save current settings and default values
-  save_rc();
-
-  // set the screen with mouse to the first managed screen
-  active_screen = screenList.front();
-  setFocusedWindow(0);
-
-  XSynchronize(otk::OBDisplay::display, False);
-  XSync(otk::OBDisplay::display, False);
-
-  reconfigure_wait = False;
-
-  timer = new otk::OBTimer(Openbox::instance->timerManager(),
-                           (otk::OBTimeoutHandler)timeout,
-                           this);
-  timer->setTimeout(0l);
-}
-
-
-Blackbox::~Blackbox(void) {
-  std::for_each(screenList.begin(), screenList.end(), otk::PointerAssassin());
-
-  delete xatom;
-
-  delete timer;
-}
-
-
-void Blackbox::process_event(XEvent *e) {
-  switch (e->type) {
-  case ButtonPress: {
-    // strip the lock key modifiers
-    //e->xbutton.state &= ~(NumLockMask | ScrollLockMask | LockMask);
-
-    last_time = e->xbutton.time;
-
-    BlackboxWindow *win = (BlackboxWindow *) 0;
-    BScreen *scrn = (BScreen *) 0;
-
-    if ((win = searchWindow(e->xbutton.window))) {
-      win->buttonPressEvent(&e->xbutton);
-
-      /* XXX: is this sane on low colour desktops? */
-      if (e->xbutton.button == 1)
-        win->installColormap(True);
-    } else if ((scrn = searchScreen(e->xbutton.window))) {
-      scrn->buttonPressEvent(&e->xbutton);
-      if (active_screen != scrn) {
-        active_screen = scrn;
-        // first, set no focus window on the old screen
-        setFocusedWindow(0);
-        // and move focus to this screen
-        setFocusedWindow(0);
-      }
-    }
-    break;
-  }
-
-  case ButtonRelease: {
-    // strip the lock key modifiers
-    //e->xbutton.state &= ~(NumLockMask | ScrollLockMask | LockMask);
-
-    last_time = e->xbutton.time;
-
-    BlackboxWindow *win = (BlackboxWindow *) 0;
-
-    if ((win = searchWindow(e->xbutton.window)))
-      win->buttonReleaseEvent(&e->xbutton);
-
-    break;
-  }
-
-  case ConfigureRequest: {
-    BlackboxWindow *win = (BlackboxWindow *) 0;
-
-    if ((win = searchWindow(e->xconfigurerequest.window))) {
-      win->configureRequestEvent(&e->xconfigurerequest);
-    } else {
-      if (validateWindow(e->xconfigurerequest.window)) {
-        XWindowChanges xwc;
-
-        xwc.x = e->xconfigurerequest.x;
-        xwc.y = e->xconfigurerequest.y;
-        xwc.width = e->xconfigurerequest.width;
-        xwc.height = e->xconfigurerequest.height;
-        xwc.border_width = e->xconfigurerequest.border_width;
-        xwc.sibling = e->xconfigurerequest.above;
-        xwc.stack_mode = e->xconfigurerequest.detail;
-
-        XConfigureWindow(otk::OBDisplay::display, e->xconfigurerequest.window,
-                         e->xconfigurerequest.value_mask, &xwc);
-      }
-    }
-
-    break;
-  }
-
-  case MapRequest: {
-#ifdef    DEBUG
-    fprintf(stderr, "Blackbox::process_event(): MapRequest for 0x%lx\n",
-            e->xmaprequest.window);
-#endif // DEBUG
-
-    BlackboxWindow *win = searchWindow(e->xmaprequest.window);
-
-    if (win) {
-      bool focus = False;
-      if (win->isIconic()) {
-        win->deiconify();
-        focus = True;
-      }
-      if (win->isShaded()) {
-        win->shade();
-        focus = True;
-      }
-
-      if (focus && (win->isTransient() || win->getScreen()->doFocusNew()) &&
-          win->isVisible())
-        win->setInputFocus();
-    } else {
-      BScreen *screen = searchScreen(e->xmaprequest.parent);
-
-      if (! screen) {
-        /*
-          we got a map request for a window who's parent isn't root. this
-          can happen in only one circumstance:
-
-            a client window unmapped a managed window, and then remapped it
-            somewhere between unmapping the client window and reparenting it
-            to root.
-
-          regardless of how it happens, we need to find the screen that
-          the window is on
-        */
-        XWindowAttributes wattrib;
-        if (! XGetWindowAttributes(otk::OBDisplay::display, e->xmaprequest.window,
-                                   &wattrib)) {
-          // failed to get the window attributes, perhaps the window has
-          // now been destroyed?
-          break;
-        }
-
-        screen = searchScreen(wattrib.root);
-        assert(screen != 0); // this should never happen
-      }
-
-      screen->manageWindow(e->xmaprequest.window);
-    }
-
-    break;
-  }
-
-  case UnmapNotify: {
-    BlackboxWindow *win = (BlackboxWindow *) 0;
-    BScreen *screen = (BScreen *) 0;
-
-    if ((win = searchWindow(e->xunmap.window))) {
-      win->unmapNotifyEvent(&e->xunmap);
-    } else if ((screen = searchSystrayWindow(e->xunmap.window))) {
-      screen->removeSystrayWindow(e->xunmap.window);
-    }
-
-    break;
-  }
-
-  case DestroyNotify: {
-    BlackboxWindow *win = (BlackboxWindow *) 0;
-    BScreen *screen = (BScreen *) 0;
-    BWindowGroup *group = (BWindowGroup *) 0;
-
-    if ((win = searchWindow(e->xdestroywindow.window))) {
-      win->destroyNotifyEvent(&e->xdestroywindow);
-    } else if ((group = searchGroup(e->xdestroywindow.window))) {
-      delete group;
-    } else if ((screen = searchSystrayWindow(e->xunmap.window))) {
-      screen->removeSystrayWindow(e->xunmap.window);
-    }
-
-    break;
-  }
-
-  case ReparentNotify: {
-    /*
-      this event is quite rare and is usually handled in unmapNotify
-      however, if the window is unmapped when the reparent event occurs
-      the window manager never sees it because an unmap event is not sent
-      to an already unmapped window.
-    */
-    BlackboxWindow *win = searchWindow(e->xreparent.window);
-    if (win)
-      win->reparentNotifyEvent(&e->xreparent);
-    break;
-  }
-
-  case MotionNotify: {
-    // motion notify compression...
-    XEvent realevent;
-    unsigned int i = 0;
-    while (XCheckTypedWindowEvent(otk::OBDisplay::display, e->xmotion.window,
-                                  MotionNotify, &realevent)) {
-      i++;
-    }
-
-    // if we have compressed some motion events, use the last one
-    if ( i > 0 )
-      e = &realevent;
-
-    // the pointer is on the wrong screen
-    if (! e->xmotion.same_screen)
-      break;
-
-    // strip the lock key modifiers
-    //e->xmotion.state &= ~(NumLockMask | ScrollLockMask | LockMask);
-
-    last_time = e->xmotion.time;
-
-    BlackboxWindow *win = (BlackboxWindow *) 0;
-
-    if ((win = searchWindow(e->xmotion.window)))
-      win->motionNotifyEvent(&e->xmotion);
-
-    break;
-  }
-
-  case PropertyNotify: {
-    last_time = e->xproperty.time;
-
-    BlackboxWindow *win = (BlackboxWindow *) 0;
-    BScreen *screen = (BScreen *) 0;
-
-    if ((win = searchWindow(e->xproperty.window)))
-      win->propertyNotifyEvent(&e->xproperty);
-    else if ((screen = searchScreen(e->xproperty.window)))
-      screen->propertyNotifyEvent(&e->xproperty);
-    break;
-  }
-
-  case EnterNotify: {
-    last_time = e->xcrossing.time;
-
-    BScreen *screen = (BScreen *) 0;
-    BlackboxWindow *win = (BlackboxWindow *) 0;
-
-    if (e->xcrossing.mode == NotifyGrab) break;
-
-    if ((e->xcrossing.window == e->xcrossing.root) &&
-        (screen = searchScreen(e->xcrossing.window))) {
-      screen->getImageControl()->installRootColormap();
-    } else if ((win = searchWindow(e->xcrossing.window))) {
-      if (! no_focus)
-        win->enterNotifyEvent(&e->xcrossing);
-    }
-    break;
-  }
-
-  case LeaveNotify: {
-    last_time = e->xcrossing.time;
-
-    BlackboxWindow *win = (BlackboxWindow *) 0;
-
-    if ((win = searchWindow(e->xcrossing.window)))
-      win->leaveNotifyEvent(&e->xcrossing);
-    break;
-  }
-
-  case Expose: {
-    // compress expose events
-    XEvent realevent;
-    unsigned int i = 0;
-    int ex1, ey1, ex2, ey2;
-    ex1 = e->xexpose.x;
-    ey1 = e->xexpose.y;
-    ex2 = ex1 + e->xexpose.width - 1;
-    ey2 = ey1 + e->xexpose.height - 1;
-    while (XCheckTypedWindowEvent(otk::OBDisplay::display, e->xexpose.window,
-                                  Expose, &realevent)) {
-      i++;
-
-      // merge expose area
-      ex1 = std::min(realevent.xexpose.x, ex1);
-      ey1 = std::min(realevent.xexpose.y, ey1);
-      ex2 = std::max(realevent.xexpose.x + realevent.xexpose.width - 1, ex2);
-      ey2 = std::max(realevent.xexpose.y + realevent.xexpose.height - 1, ey2);
-    }
-    if ( i > 0 )
-      e = &realevent;
-
-    // use the merged area
-    e->xexpose.x = ex1;
-    e->xexpose.y = ey1;
-    e->xexpose.width = ex2 - ex1 + 1;
-    e->xexpose.height = ey2 - ey1 + 1;
-
-    BlackboxWindow *win = (BlackboxWindow *) 0;
-
-    if ((win = searchWindow(e->xexpose.window)))
-      win->exposeEvent(&e->xexpose);
-
-    break;
-  }
-
-  case KeyPress: {
-    break;
-  }
-
-  case ColormapNotify: {
-    BScreen *screen = searchScreen(e->xcolormap.window);
-
-    if (screen)
-      screen->setRootColormapInstalled((e->xcolormap.state ==
-                                        ColormapInstalled) ? True : False);
-
-    break;
-  }
-
-  case FocusIn: {
-    if (e->xfocus.detail != NotifyNonlinear &&
-        e->xfocus.detail != NotifyAncestor) {
-      /*
-        don't process FocusIns when:
-        1. the new focus window isn't an ancestor or inferior of the old
-        focus window (NotifyNonlinear)
-        make sure to allow the FocusIn when the old focus window was an
-        ancestor but didn't have a parent, such as root (NotifyAncestor)
-      */
-      break;
-    }
-
-    BlackboxWindow *win = searchWindow(e->xfocus.window);
-    if (win) {
-      if (! win->isFocused())
-        win->setFocusFlag(True);
-
-      /*
-        set the event window to None.  when the FocusOut event handler calls
-        this function recursively, it uses this as an indication that focus
-        has moved to a known window.
-      */
-      e->xfocus.window = None;
-
-      no_focus = False;   // focusing is back on
-    }
-
-    break;
-  }
-
-  case FocusOut: {
-    if (e->xfocus.detail != NotifyNonlinear) {
-      /*
-        don't process FocusOuts when:
-        2. the new focus window isn't an ancestor or inferior of the old
-        focus window (NotifyNonlinear)
-      */
-      break;
-    }
-
-    BlackboxWindow *win = searchWindow(e->xfocus.window);
-    if (win && win->isFocused()) {
-      /*
-        before we mark "win" as unfocused, we need to verify that focus is
-        going to a known location, is in a known location, or set focus
-        to a known location.
-      */
-
-      XEvent event;
-      // don't check the current focus if FocusOut was generated during a grab
-      bool check_focus = (e->xfocus.mode == NotifyNormal);
-
-      /*
-        First, check if there is a pending FocusIn event waiting.  if there
-        is, process it and determine if focus has moved to another window
-        (the FocusIn event handler sets the window in the event
-        structure to None to indicate this).
-      */
-      if (XCheckTypedEvent(otk::OBDisplay::display, FocusIn, &event)) {
-
-        process_event(&event);
-        if (event.xfocus.window == None) {
-          // focus has moved
-          check_focus = False;
-        }
-      }
-
-      if (check_focus) {
-        /*
-          Second, we query the X server for the current input focus.
-          to make sure that we keep a consistent state.
-        */
-        BlackboxWindow *focus;
-        Window w;
-        int revert;
-        XGetInputFocus(otk::OBDisplay::display, &w, &revert);
-        focus = searchWindow(w);
-        if (focus) {
-          /*
-            focus got from "win" to "focus" under some very strange
-            circumstances, and we need to make sure that the focus indication
-            is correct.
-          */
-          setFocusedWindow(focus);
-        } else {
-          // we have no idea where focus went... so we set it to somewhere
-          setFocusedWindow(0);
-        }
-      }
-    }
-
-    break;
-  }
-
-  case ClientMessage: {
-    if (e->xclient.format == 32) {
-      if (e->xclient.message_type == xatom->atom(otk::OBProperty::wm_change_state)) {
-        // WM_CHANGE_STATE message
-        BlackboxWindow *win = searchWindow(e->xclient.window);
-        if (! win || ! win->validateClient()) return;
-
-        if (e->xclient.data.l[0] == IconicState)
-          win->iconify();
-        if (e->xclient.data.l[0] == NormalState)
-          win->deiconify();
-      } else if (e->xclient.message_type == 
-                 xatom->atom(otk::OBProperty::blackbox_change_workspace) || 
-                 e->xclient.message_type == 
-                 xatom->atom(otk::OBProperty::net_current_desktop)) {
-        // NET_CURRENT_DESKTOP message
-        BScreen *screen = searchScreen(e->xclient.window);
-
-        unsigned int workspace = e->xclient.data.l[0];
-        if (screen && workspace < screen->getWorkspaceCount())
-          screen->changeWorkspaceID(workspace);
-      } else if (e->xclient.message_type == 
-                 xatom->atom(otk::OBProperty::blackbox_change_window_focus)) {
-        // TEMP HACK TO KEEP BBKEYS WORKING
-        BlackboxWindow *win = searchWindow(e->xclient.window);
-
-        if (win && win->isVisible() && win->setInputFocus())
-          win->installColormap(True);
-      } else if (e->xclient.message_type == 
-                 xatom->atom(otk::OBProperty::net_active_window)) {
-        // NET_ACTIVE_WINDOW
-        BlackboxWindow *win = searchWindow(e->xclient.window);
-
-        if (win) {
-          BScreen *screen = win->getScreen();
-
-          if (win->isIconic())
-            win->deiconify(False, False);
-          if (! win->isStuck() &&
-              (win->getWorkspaceNumber() != screen->getCurrentWorkspaceID())) {
-            no_focus = True;
-            screen->changeWorkspaceID(win->getWorkspaceNumber());
-          }
-          if (win->isVisible() && win->setInputFocus()) {
-            win->getScreen()->getWorkspace(win->getWorkspaceNumber())->
-              raiseWindow(win);
-            win->installColormap(True);
-          }
-        }
-      } else if (e->xclient.message_type == 
-                 xatom->atom(otk::OBProperty::blackbox_cycle_window_focus)) {
-        // BLACKBOX_CYCLE_WINDOW_FOCUS
-        BScreen *screen = searchScreen(e->xclient.window);
-
-        if (screen) {
-          if (! e->xclient.data.l[0])
-            screen->prevFocus();
-          else
-            screen->nextFocus();
-        }
-      } else if (e->xclient.message_type == 
-                 xatom->atom(otk::OBProperty::net_wm_desktop)) {
-        // NET_WM_DESKTOP
-        BlackboxWindow *win = searchWindow(e->xclient.window);
-
-        if (win) {
-          BScreen *screen = win->getScreen();
-          unsigned long wksp = (unsigned) e->xclient.data.l[0];
-          if (wksp < screen->getWorkspaceCount()) {
-            if (win->isIconic()) win->deiconify(False, True);
-            if (win->isStuck()) win->stick();
-            if (wksp != screen->getCurrentWorkspaceID())
-              win->withdraw();
-            else
-              win->show();
-            screen->reassociateWindow(win, wksp, True);
-          } else if (wksp == 0xfffffffe || // XXX: BUG, BUT DOING THIS SO KDE WORKS FOR NOW!!
-                     wksp == 0xffffffff) {
-            if (win->isIconic()) win->deiconify(False, True);
-            if (! win->isStuck()) win->stick();
-            if (! win->isVisible()) win->show();
-          }
-        }
-      } else if (e->xclient.message_type == 
-                 xatom->atom(otk::OBProperty::blackbox_change_attributes)) {
-        // BLACKBOX_CHANGE_ATTRIBUTES
-        BlackboxWindow *win = searchWindow(e->xclient.window);
-
-        if (win && win->validateClient()) {
-          BlackboxHints net;
-          net.flags = e->xclient.data.l[0];
-          net.attrib = e->xclient.data.l[1];
-          net.workspace = e->xclient.data.l[2];
-          net.stack = e->xclient.data.l[3];
-          net.decoration = e->xclient.data.l[4];
-
-          win->changeBlackboxHints(&net);
-        }
-      } else if (e->xclient.message_type == 
-                xatom->atom(otk::OBProperty::net_number_of_desktops)) {
-        // NET_NUMBER_OF_DESKTOPS
-        BScreen *screen = searchScreen(e->xclient.window);
-        
-        if (e->xclient.data.l[0] > 0)
-          screen->changeWorkspaceCount((unsigned) e->xclient.data.l[0]);
-      } else if (e->xclient.message_type ==
-                 xatom->atom(otk::OBProperty::net_close_window)) {
-        // NET_CLOSE_WINDOW
-        BlackboxWindow *win = searchWindow(e->xclient.window);
-        if (win && win->validateClient())
-          win->close(); // could this be smarter?
-      } else if (e->xclient.message_type ==
-                 xatom->atom(otk::OBProperty::net_wm_moveresize)) {
-        // NET_WM_MOVERESIZE
-        BlackboxWindow *win = searchWindow(e->xclient.window);
-        if (win && win->validateClient()) {
-          int x_root = e->xclient.data.l[0],
-              y_root = e->xclient.data.l[1];
-          if ((Atom) e->xclient.data.l[2] ==
-              xatom->atom(otk::OBProperty::net_wm_moveresize_move)) {
-            win->beginMove(x_root, y_root);
-          } else {
-            if ((Atom) e->xclient.data.l[2] ==
-                xatom->atom(otk::OBProperty::net_wm_moveresize_size_topleft))
-              win->beginResize(x_root, y_root, BlackboxWindow::TopLeft);
-            else if ((Atom) e->xclient.data.l[2] ==
-                     xatom->atom(otk::OBProperty::net_wm_moveresize_size_topright))
-              win->beginResize(x_root, y_root, BlackboxWindow::TopRight);
-            else if ((Atom) e->xclient.data.l[2] ==
-                     xatom->atom(otk::OBProperty::net_wm_moveresize_size_bottomleft))
-              win->beginResize(x_root, y_root, BlackboxWindow::BottomLeft);
-            else if ((Atom) e->xclient.data.l[2] ==
-                xatom->atom(otk::OBProperty::net_wm_moveresize_size_bottomright))
-              win->beginResize(x_root, y_root, BlackboxWindow::BottomRight);
-          }
-        }
-      } else if (e->xclient.message_type ==
-                 xatom->atom(otk::OBProperty::net_wm_state)) {
-        // NET_WM_STATE
-        BlackboxWindow *win = searchWindow(e->xclient.window);
-        if (win && win->validateClient()) {
-          const Atom action = (Atom) e->xclient.data.l[0];
-          const Atom state[] = { (Atom) e->xclient.data.l[1],
-                                 (Atom) e->xclient.data.l[2] };
-          
-          for (int i = 0; i < 2; ++i) {
-            if (! state[i])
-              continue;
-
-            if ((Atom) e->xclient.data.l[0] == 1) {
-              // ADD
-              if (state[i] == xatom->atom(otk::OBProperty::net_wm_state_modal)) {
-                win->setModal(True);
-              } else if (state[i] ==
-                         xatom->atom(otk::OBProperty::net_wm_state_maximized_vert)) {
-                if (win->isMaximizedHoriz()) {
-                  win->maximize(0); // unmaximize
-                  win->maximize(1); // full
-                } else if (! win->isMaximized()) {
-                  win->maximize(2); // vert
-                }
-              } else if (state[i] ==
-                         xatom->atom(otk::OBProperty::net_wm_state_maximized_horz)) {
-                if (win->isMaximizedVert()) {
-                  win->maximize(0); // unmaximize
-                  win->maximize(1); // full
-                } else if (! win->isMaximized()) {
-                  win->maximize(3); // horiz
-                }
-              } else if (state[i] ==
-                         xatom->atom(otk::OBProperty::net_wm_state_shaded)) {
-                if (! win->isShaded())
-                  win->shade();
-              } else if (state[i] ==
-                         xatom->atom(otk::OBProperty::net_wm_state_skip_taskbar)) {
-                win->setSkipTaskbar(True);
-              } else if (state[i] ==
-                         xatom->atom(otk::OBProperty::net_wm_state_skip_pager)) {
-                win->setSkipPager(True);
-              } else if (state[i] ==
-                         xatom->atom(otk::OBProperty::net_wm_state_fullscreen)) {
-                win->setFullscreen(True);
-              }
-            } else if (action == 0) {
-              // REMOVE
-              if (state[i] == xatom->atom(otk::OBProperty::net_wm_state_modal)) {
-                win->setModal(False);
-              } else if (state[i] ==
-                         xatom->atom(otk::OBProperty::net_wm_state_maximized_vert)) {
-                if (win->isMaximizedFull()) {
-                  win->maximize(0); // unmaximize
-                  win->maximize(3); // horiz
-                } else if (win->isMaximizedVert()) {
-                  win->maximize(0); // unmaximize
-                }
-              } else if (state[i] ==
-                         xatom->atom(otk::OBProperty::net_wm_state_maximized_horz)) {
-                if (win->isMaximizedFull()) {
-                  win->maximize(0); // unmaximize
-                  win->maximize(2); // vert
-                } else if (win->isMaximizedHoriz()) {
-                  win->maximize(0); // unmaximize
-                }
-              } else if (state[i] ==
-                         xatom->atom(otk::OBProperty::net_wm_state_shaded)) {
-                if (win->isShaded())
-                  win->shade();
-              } else if (state[i] ==
-                         xatom->atom(otk::OBProperty::net_wm_state_skip_taskbar)) {
-                win->setSkipTaskbar(False);
-              } else if (state[i] ==
-                         xatom->atom(otk::OBProperty::net_wm_state_skip_pager)) {
-                win->setSkipPager(False);
-              } else if (state[i] ==
-                         xatom->atom(otk::OBProperty::net_wm_state_fullscreen)) {
-                win->setFullscreen(False);
-              }
-            } else if (action == 2) {
-              // TOGGLE
-              if (state[i] == xatom->atom(otk::OBProperty::net_wm_state_modal)) {
-                win->setModal(! win->isModal());
-              } else if (state[i] ==
-                         xatom->atom(otk::OBProperty::net_wm_state_maximized_vert)) {
-                if (win->isMaximizedFull()) {
-                  win->maximize(0); // unmaximize
-                  win->maximize(3); // horiz
-                } else if (win->isMaximizedVert()) {
-                  win->maximize(0); // unmaximize
-                } else if (win->isMaximizedHoriz()) {
-                  win->maximize(0); // unmaximize
-                  win->maximize(1); // full
-                } else {
-                  win->maximize(2); // vert
-                }
-              } else if (state[i] ==
-                         xatom->atom(otk::OBProperty::net_wm_state_maximized_horz)) {
-                if (win->isMaximizedFull()) {
-                  win->maximize(0); // unmaximize
-                  win->maximize(2); // vert
-                } else if (win->isMaximizedHoriz()) {
-                  win->maximize(0); // unmaximize
-                } else if (win->isMaximizedVert()) {
-                  win->maximize(0); // unmaximize
-                  win->maximize(1); // full
-                } else {
-                  win->maximize(3); // horiz
-                }
-              } else if (state[i] ==
-                         xatom->atom(otk::OBProperty::net_wm_state_shaded)) {
-                win->shade();
-              } else if (state[i] ==
-                         xatom->atom(otk::OBProperty::net_wm_state_skip_taskbar)) {
-                win->setSkipTaskbar(! win->skipTaskbar());
-              } else if (state[i] ==
-                         xatom->atom(otk::OBProperty::net_wm_state_skip_pager)) {
-                win->setSkipPager(! win->skipPager());
-              } else if (state[i] ==
-                         xatom->atom(otk::OBProperty::net_wm_state_fullscreen)) {
-                win->setFullscreen(! win->isFullscreen());
-              }
-            }
-          }
-        }
-      }
-    }
-
-    break;
-  }
-
-  case NoExpose:
-  case ConfigureNotify:
-  case MapNotify:
-    break; // not handled, just ignore
-
-  default: {
-#ifdef    SHAPE
-    if (e->type == otk::OBDisplay::shapeEventBase()) {
-      XShapeEvent *shape_event = (XShapeEvent *) e;
-      BlackboxWindow *win = searchWindow(e->xany.window);
-
-      if (win && shape_event->kind == ShapeBounding)
-        win->shapeEvent(shape_event);
-    }
-#endif // SHAPE
-  }
-  } // switch
-}
-
-
-bool Blackbox::handleSignal(int sig) {
-  switch (sig) {
-  case SIGHUP:
-    reconfigure();
-    break;
-
-  case SIGUSR1:
-    restart();
-    break;
-
-  case SIGUSR2:
-    break;
-
-  case SIGPIPE:
-  case SIGSEGV:
-  case SIGFPE:
-  case SIGINT:
-  case SIGTERM:
-    shutdown();
-
-  default:
-    return False;
-  }
-
-  return True;
-}
-
-
-bool Blackbox::validateWindow(Window window) {
-  XEvent event;
-  if (XCheckTypedWindowEvent(otk::OBDisplay::display, window, DestroyNotify, &event)) {
-    XPutBackEvent(otk::OBDisplay::display, &event);
-
-    return False;
-  }
-
-  return True;
-}
-
-
-BScreen *Blackbox::searchScreen(Window window) {
-  ScreenList::iterator it = screenList.begin();
-
-  for (; it != screenList.end(); ++it) {
-    BScreen *s = *it;
-    if (s->getRootWindow() == window)
-      return s;
-  }
-
-  return (BScreen *) 0;
-}
-
-
-BScreen *Blackbox::searchSystrayWindow(Window window) {
-  WindowScreenLookup::iterator it = systraySearchList.find(window);
-  if (it != systraySearchList.end())
-    return it->second;
-
-  return (BScreen*) 0;
-}
-
-
-BlackboxWindow *Blackbox::searchWindow(Window window) {
-  WindowLookup::iterator it = windowSearchList.find(window);
-  if (it != windowSearchList.end())
-    return it->second;
-
-  return (BlackboxWindow*) 0;
-}
-
-
-BWindowGroup *Blackbox::searchGroup(Window window) {
-  GroupLookup::iterator it = groupSearchList.find(window);
-  if (it != groupSearchList.end())
-    return it->second;
-
-  return (BWindowGroup *) 0;
-}
-
-
-void Blackbox::saveSystrayWindowSearch(Window window, BScreen *screen) {
-  systraySearchList.insert(WindowScreenLookupPair(window, screen));
-}
-
-
-void Blackbox::saveWindowSearch(Window window, BlackboxWindow *data) {
-  windowSearchList.insert(WindowLookupPair(window, data));
-}
-
-
-void Blackbox::saveGroupSearch(Window window, BWindowGroup *data) {
-  groupSearchList.insert(GroupLookupPair(window, data));
-}
-
-
-void Blackbox::removeSystrayWindowSearch(Window window) {
-  systraySearchList.erase(window);
-}
-
-
-void Blackbox::removeWindowSearch(Window window) {
-  windowSearchList.erase(window);
-}
-
-
-void Blackbox::removeGroupSearch(Window window) {
-  groupSearchList.erase(window);
-}
-
-
-void Blackbox::restart(const char *prog) {
-  shutdown();
-
-  if (prog) {
-    putenv(const_cast<char *>(screenList.front()->displayString().c_str()));
-    execlp(prog, prog, NULL);
-    perror(prog);
-  }
-
-  // fall back in case the above execlp doesn't work
-  execvp(argv[0], argv);
-  string name = ::basename(argv[0]);
-  execvp(name.c_str(), argv);
-}
-
-
-void Blackbox::shutdown(void) {
-  Openbox::shutdown();
-
-  XSetInputFocus(otk::OBDisplay::display, PointerRoot, None, CurrentTime);
-
-  std::for_each(screenList.begin(), screenList.end(),
-                std::mem_fun(&BScreen::shutdown));
-
-  XSync(otk::OBDisplay::display, False);
-}
-
-
-#ifdef    XINERAMA
-void Blackbox::saveXineramaPlacement(bool x) {
-  resource.xinerama_placement = x;
-  config.setValue("session.xineramaSupport.windowPlacement",
-                  resource.xinerama_placement);
-  reconfigure();  // make sure all screens get this 
-
-void Blackbox::saveXineramaMaximizing(bool x) {
-  resource.xinerama_maximize = x;
-  config.setValue("session.xineramaSupport.windowMaximizing",
-                  resource.xinerama_maximize);
-  reconfigure();  // make sure all screens get this change
-}
-
-
-void Blackbox::saveXineramaSnapping(bool x) {
-  resource.xinerama_snap = x;
-  config.setValue("session.xineramaSupport.windowSnapping",
-                  resource.xinerama_snap);
-  reconfigure();  // make sure all screens get this change
-}
-#endif // XINERAMA
-
-  
-/*
- * Save all values as they are so that the defaults will be written to the rc
- * file
- */
-void Blackbox::save_rc(void) {
-  config.setAutoSave(false);
-
-  config.setValue("session.colorsPerChannel", resource.colors_per_channel);
-  config.setValue("session.doubleClickInterval",
-                  resource.double_click_interval);
-  config.setValue("session.autoRaiseDelay",
-                  ((resource.auto_raise_delay.tv_sec * 1000) +
-                   (resource.auto_raise_delay.tv_usec / 1000)));
-  config.setValue("session.cacheLife", resource.cache_life / 60000);
-  config.setValue("session.cacheMax", resource.cache_max);
-  config.setValue("session.styleFile", resource.style_file);
-  config.setValue("session.titlebarLayout", resource.titlebar_layout);
-
-  string s;
-  if (resource.mod_mask & Mod1Mask) s += "Mod1-";
-  if (resource.mod_mask & Mod2Mask) s += "Mod2-";
-  if (resource.mod_mask & Mod3Mask) s += "Mod3-";
-  if (resource.mod_mask & Mod4Mask) s += "Mod4-";
-  if (resource.mod_mask & Mod5Mask) s += "Mod5-";
-  if (resource.mod_mask & ShiftMask) s += "Shift-";
-  if (resource.mod_mask & ControlMask) s += "Control-";
-  s.resize(s.size() - 1); // drop the last '-'
-  config.setValue("session.modifierMask", s);
-  
-#ifdef    XINERAMA
-  saveXineramaPlacement(resource.xinerama_placement);
-  saveXineramaMaximizing(resource.xinerama_maximize);
-  saveXineramaSnapping(resource.xinerama_snap);
-#endif // XINERAMA
-
-  std::for_each(screenList.begin(), screenList.end(),
-                std::mem_fun(&BScreen::save_rc));
-  config.setAutoSave(true);
-  config.save();
-}
-
-
-void Blackbox::load_rc(void) {
-  if (! config.load())
-    config.create();
-  
-  string s;
-
-  if (! config.getValue("session.colorsPerChannel",
-                        resource.colors_per_channel))
-    resource.colors_per_channel = 4;
-  if (resource.colors_per_channel < 2) resource.colors_per_channel = 2;
-  else if (resource.colors_per_channel > 6) resource.colors_per_channel = 6;
-
-  if (config.getValue("session.styleFile", s))
-    resource.style_file = otk::expandTilde(s);
-  else
-    resource.style_file = DEFAULTSTYLE;
-
-  if (! config.getValue("session.doubleClickInterval",
-                       resource.double_click_interval));
-    resource.double_click_interval = 250;
-
-  if (! config.getValue("session.autoRaiseDelay",
-                       resource.auto_raise_delay.tv_usec))
-    resource.auto_raise_delay.tv_usec = 400;
-  resource.auto_raise_delay.tv_sec = resource.auto_raise_delay.tv_usec / 1000;
-  resource.auto_raise_delay.tv_usec -=
-    (resource.auto_raise_delay.tv_sec * 1000);
-  resource.auto_raise_delay.tv_usec *= 1000;
-
-  if (! config.getValue("session.cacheLife", resource.cache_life))
-    resource.cache_life = 5;
-  resource.cache_life *= 60000;
-
-  if (! config.getValue("session.cacheMax", resource.cache_max))
-    resource.cache_max = 200;
-  
-  if (! config.getValue("session.titlebarLayout", resource.titlebar_layout))
-    resource.titlebar_layout = "ILMC";
-
-#ifdef    XINERAMA
-  if (! config.getValue("session.xineramaSupport.windowPlacement",
-                        resource.xinerama_placement))
-    resource.xinerama_placement = false;
-
-  if (! config.getValue("session.xineramaSupport.windowMaximizing",
-                        resource.xinerama_maximize))
-    resource.xinerama_maximize = false;
-
-  if (! config.getValue("session.xineramaSupport.windowSnapping",
-                        resource.xinerama_snap))
-    resource.xinerama_snap = false;
-#endif // XINERAMA
-  
-  resource.mod_mask = 0;
-  if (config.getValue("session.modifierMask", s)) {
-    if (s.find("Mod1") != string::npos)
-      resource.mod_mask |= Mod1Mask;
-    if (s.find("Mod2") != string::npos)
-      resource.mod_mask |= Mod2Mask;
-    if (s.find("Mod3") != string::npos)
-      resource.mod_mask |= Mod3Mask;
-    if (s.find("Mod4") != string::npos)
-      resource.mod_mask |= Mod4Mask;
-    if (s.find("Mod5") != string::npos)
-      resource.mod_mask |= Mod5Mask;
-    if (s.find("Shift") != string::npos)
-      resource.mod_mask |= ShiftMask;
-    if (s.find("Control") != string::npos)
-      resource.mod_mask |= ControlMask;
-  }
-  if (! resource.mod_mask)
-    resource.mod_mask = Mod1Mask;
-}
-
-
-void Blackbox::reconfigure(void) {
-  // don't reconfigure while saving the initial rc file, it's a waste and it
-  // breaks somethings (workspace names)
-  if (state() == Openbox::State_Starting) return;
-
-  reconfigure_wait = True;
-
-  if (! timer->timing()) timer->start();
-}
-
-
-void Blackbox::real_reconfigure(void) {
-  load_rc();
-  
-  otk::OBDisplay::gcCache()->purge();
-
-  std::for_each(screenList.begin(), screenList.end(),
-                std::mem_fun(&BScreen::reconfigure));
-}
-
-
-void Blackbox::saveStyleFilename(const string& filename) {
-  assert(! filename.empty());
-  resource.style_file = filename;
-  config.setValue("session.styleFile", resource.style_file);
-}
-
-
-void Blackbox::timeout(Blackbox *t) {
-  if (t->reconfigure_wait)
-    t->real_reconfigure();
-
-  t->reconfigure_wait = False;
-}
-
-
-void Blackbox::setChangingWindow(BlackboxWindow *win) {
-  // make sure one of the two is null and the other isn't
-  assert((! changing_window && win) || (! win && changing_window));
-  changing_window = win;
-}
-
-
-void Blackbox::setFocusedWindow(BlackboxWindow *win) {
-  if (focused_window && focused_window == win) // nothing to do
-    return;
-
-  BScreen *old_screen = 0;
-
-  if (focused_window) {
-    focused_window->setFocusFlag(False);
-    old_screen = focused_window->getScreen();
-  }
-
-  if (win && ! win->isIconic()) {
-    // the active screen is the one with the last focused window...
-    // this will keep focus on this screen no matter where the mouse goes,
-    // so multihead keybindings will continue to work on that screen until the
-    // user focuses a window on a different screen.
-    active_screen = win->getScreen();
-    focused_window = win;
-  } else {
-    focused_window = 0;
-    if (! old_screen) {
-      if (active_screen) {
-        // set input focus to the toolbar of the screen with mouse
-        XSetInputFocus(otk::OBDisplay::display,
-                       active_screen->getRootWindow(),
-                       RevertToPointerRoot, CurrentTime);
-      } else {
-        // set input focus to the toolbar of the first managed screen
-        XSetInputFocus(otk::OBDisplay::display,
-                       screenList.front()->getRootWindow(),
-                       RevertToPointerRoot, CurrentTime);
-      }
-    } else {
-      // set input focus to the toolbar of the last screen
-      XSetInputFocus(otk::OBDisplay::display, old_screen->getRootWindow(),
-                     RevertToPointerRoot, CurrentTime);
-    }
-  }
-
-  if (active_screen && active_screen->isScreenManaged()) {
-    active_screen->updateNetizenWindowFocus();
-  }
-
-  if (old_screen && old_screen != active_screen) {
-    old_screen->updateNetizenWindowFocus();
-  }
-}
-
-
-} 
diff --git a/src/blackbox.hh b/src/blackbox.hh
deleted file mode 100644 (file)
index 42ddeab..0000000
+++ /dev/null
@@ -1,224 +0,0 @@
-// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
-#ifndef   __blackbox_hh
-#define   __blackbox_hh
-
-extern "C" {
-#include <X11/Xlib.h>
-
-#ifdef    HAVE_STDIO_H
-# include <stdio.h>
-#endif // HAVE_STDIO_H
-
-#ifdef    TIME_WITH_SYS_TIME
-#  include <sys/time.h>
-#  include <time.h>
-#else // !TIME_WITH_SYS_TIME
-#  ifdef    HAVE_SYS_TIME_H
-#    include <sys/time.h>
-#  else // !HAVE_SYS_TIME_H
-#    include <time.h>
-#  endif // HAVE_SYS_TIME_H
-#endif // TIME_WITH_SYS_TIME
-}
-
-#include <list>
-#include <map>
-#include <string>
-
-#include "otk/timer.hh"
-#include "otk/property.hh"
-#include "openbox.hh"
-#include "otk/configuration.hh"
-#include "timer.hh"
-
-#define AttribShaded      (1l << 0)
-#define AttribMaxHoriz    (1l << 1)
-#define AttribMaxVert     (1l << 2)
-#define AttribOmnipresent (1l << 3)
-#define AttribWorkspace   (1l << 4)
-#define AttribStack       (1l << 5)
-#define AttribDecoration  (1l << 6)
-
-#define StackTop          (0)
-#define StackNormal       (1)
-#define StackBottom       (2)
-
-#define DecorNone         (0)
-#define DecorNormal       (1)
-#define DecorTiny         (2)
-#define DecorTool         (3)
-
-namespace ob {
-
-struct BlackboxHints {
-  unsigned long flags, attrib, workspace, stack, decoration;
-};
-
-struct BlackboxAttributes {
-  unsigned long flags, attrib, workspace, stack, decoration;
-  int premax_x, premax_y;
-  unsigned int premax_w, premax_h;
-};
-
-#define PropBlackboxHintsElements      (5)
-#define PropBlackboxAttributesElements (9)
-
-
-//forward declaration
-class BScreen;
-class Blackbox;
-class BlackboxWindow;
-class BWindowGroup;
-
-class Blackbox : public Openbox {
-private:
-  struct BCursor {
-    Cursor session, move, ll_angle, lr_angle, ul_angle, ur_angle;
-  };
-  BCursor cursor;
-
-  struct BResource {
-    Time double_click_interval;
-
-    std::string style_file;
-    int colors_per_channel;
-    timeval auto_raise_delay;
-    unsigned long cache_life, cache_max;
-    std::string titlebar_layout;
-    unsigned int mod_mask;  // modifier mask used for window-mouse interaction
-
-
-#ifdef    XINERAMA
-    bool xinerama_placement, xinerama_maximize, xinerama_snap;
-#endif // XINERAMA
-  } resource;
-
-  typedef std::map<Window, BlackboxWindow*> WindowLookup;
-  typedef WindowLookup::value_type WindowLookupPair;
-  WindowLookup windowSearchList;
-
-  typedef std::map<Window, BScreen*> WindowScreenLookup;
-  typedef WindowScreenLookup::value_type WindowScreenLookupPair;
-  WindowScreenLookup systraySearchList;
-
-  typedef std::map<Window, BWindowGroup*> GroupLookup;
-  typedef GroupLookup::value_type GroupLookupPair;
-  GroupLookup groupSearchList;
-
-  typedef std::list<BScreen*> ScreenList;
-  ScreenList screenList;
-
-  BScreen *active_screen;
-  BlackboxWindow *focused_window, *changing_window;
-  otk::OBTimer *timer;
-  otk::Configuration config;
-  otk::OBProperty *xatom;
-
-  bool no_focus, reconfigure_wait;
-  Time last_time;
-  char **argv;
-  std::string rc_file;
-
-  Blackbox(const Blackbox&);
-  Blackbox& operator=(const Blackbox&);
-
-  void load_rc(void);
-  void save_rc(void);
-  void real_reconfigure(void);
-
-  virtual void process_event(XEvent *);
-
-
-public:
-  Blackbox(int argc, char **m_argv, char *rc = 0);
-  virtual ~Blackbox(void);
-
-  BWindowGroup *searchGroup(Window window);
-  BScreen *searchSystrayWindow(Window window);
-  BlackboxWindow *searchWindow(Window window);
-  BScreen *searchScreen(Window window);
-
-#ifdef    XINERAMA
-  inline bool doXineramaPlacement(void) const
-    { return resource.xinerama_placement; }
-  inline bool doXineramaMaximizing(void) const
-    { return resource.xinerama_maximize; }
-  inline bool doXineramaSnapping(void) const
-    { return resource.xinerama_snap; }
-
-  void saveXineramaPlacement(bool x);
-  void saveXineramaMaximizing(bool x);
-  void saveXineramaSnapping(bool x);
-#endif // XINERAMA
-  
-  void saveSystrayWindowSearch(Window window, BScreen *screen);
-  void saveWindowSearch(Window window, BlackboxWindow *data);
-  void saveGroupSearch(Window window, BWindowGroup *data);
-  void removeSystrayWindowSearch(Window window);
-  void removeWindowSearch(Window window);
-  void removeGroupSearch(Window window);
-
-  inline otk::OBProperty *getXAtom(void) { return xatom; }
-
-  inline BlackboxWindow *getFocusedWindow(void) { return focused_window; }
-  inline BlackboxWindow *getChangingWindow(void) { return changing_window; }
-
-  inline otk::Configuration *getConfig() { return &config; }
-  inline const Time &getDoubleClickInterval(void) const
-  { return resource.double_click_interval; }
-  inline const Time &getLastTime(void) const { return last_time; }
-
-  inline const char *getStyleFilename(void) const
-    { return resource.style_file.c_str(); }
-
-  inline int getColorsPerChannel(void) const
-    { return resource.colors_per_channel; }
-
-  inline std::string getTitlebarLayout(void) const
-    { return resource.titlebar_layout; }
-
-  inline const timeval &getAutoRaiseDelay(void) const
-    { return resource.auto_raise_delay; }
-
-  inline unsigned long getCacheLife(void) const
-    { return resource.cache_life; }
-  inline unsigned long getCacheMax(void) const
-    { return resource.cache_max; }
-
-  inline void setNoFocus(bool f) { no_focus = f; }
-
-  inline Cursor getSessionCursor(void) const
-    { return cursor.session; }
-  inline Cursor getMoveCursor(void) const
-    { return cursor.move; }
-  inline Cursor getLowerLeftAngleCursor(void) const
-    { return cursor.ll_angle; }
-  inline Cursor getLowerRightAngleCursor(void) const
-    { return cursor.lr_angle; }
-  inline Cursor getUpperLeftAngleCursor(void) const
-    { return cursor.ul_angle; }
-  inline Cursor getUpperRightAngleCursor(void) const
-    { return cursor.ur_angle; }
-  
-  inline unsigned int getMouseModMask(void) const
-    { return resource.mod_mask; }
-
-  void setFocusedWindow(BlackboxWindow *win);
-  void setChangingWindow(BlackboxWindow *win);
-  void shutdown(void);
-  void saveStyleFilename(const std::string& filename);
-  void restart(const char *prog = 0);
-  void reconfigure(void);
-
-  bool validateWindow(Window window);
-
-  virtual bool handleSignal(int sig);
-
-  static void timeout(Blackbox *t);
-
-  enum { B_AmericanDate = 1, B_EuropeanDate };
-};
-
-}
-
-#endif // __blackbox_hh
This page took 0.045383 seconds and 4 git commands to generate.