]> Dogcows Code - chaz/openbox/blobdiff - src/blackbox.hh
remove debug cout
[chaz/openbox] / src / blackbox.hh
index 48fda8c549a594aa5f0697b541c343cf0318b5fe..6a6a22d1c3fc5d22fa9e5ed77a51a38147f25998 100644 (file)
@@ -98,7 +98,7 @@ extern I18n i18n;
 class Blackbox : public BaseDisplay, public TimeoutHandler {
 private:
   struct BCursor {
-    Cursor session, move, ll_angle, lr_angle;
+    Cursor session, move, ll_angle, lr_angle, ul_angle, ur_angle;
   };
   BCursor cursor;
 
@@ -115,14 +115,20 @@ private:
     timeval auto_raise_delay;
     unsigned long cache_life, cache_max;
     std::string titlebar_layout;
-    bool window_to_window_snap;
-    bool window_corner_snap;
+
+#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;
@@ -146,7 +152,7 @@ private:
   ScreenList screenList;
 
   BScreen *active_screen;
-  BlackboxWindow *focused_window;
+  BlackboxWindow *focused_window, *changing_window;
   BTimer *timer;
   Configuration config;
   XAtom *xatom;
@@ -173,25 +179,42 @@ public:
 
   Basemenu *searchMenu(Window window);
   BWindowGroup *searchGroup(Window window);
+  BScreen *searchSystrayWindow(Window window);
   BlackboxWindow *searchWindow(Window window);
   BScreen *searchScreen(Window window);
   Toolbar *searchToolbar(Window);
   Slit *searchSlit(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 saveMenuSearch(Window window, Basemenu *data);
+  void saveSystrayWindowSearch(Window window, BScreen *screen);
   void saveWindowSearch(Window window, BlackboxWindow *data);
   void saveGroupSearch(Window window, BWindowGroup *data);
   void saveToolbarSearch(Window window, Toolbar *data);
   void saveSlitSearch(Window window, Slit *data);
   void removeMenuSearch(Window window);
+  void removeSystrayWindowSearch(Window window);
   void removeWindowSearch(Window window);
   void removeGroupSearch(Window window);
   void removeToolbarSearch(Window window);
   void removeSlitSearch(Window window);
 
   inline XAtom *getXAtom(void) { return xatom; }
-  
+
   inline BlackboxWindow *getFocusedWindow(void) { return focused_window; }
+  inline BlackboxWindow *getChangingWindow(void) { return changing_window; }
 
   inline Configuration *getConfig() { return &config; }
   inline const Time &getDoubleClickInterval(void) const
@@ -217,11 +240,6 @@ public:
   inline unsigned long getCacheMax(void) const
     { return resource.cache_max; }
 
-  inline bool getWindowToWindowSnap(void) const
-    { return resource.window_to_window_snap; }
-  inline bool getWindowCornerSnap(void) const
-    { return resource.window_corner_snap; }
-
   inline void setNoFocus(bool f) { no_focus = f; }
 
   inline Cursor getSessionCursor(void) const
@@ -232,12 +250,15 @@ public:
     { 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; }
 
-  void setFocusedWindow(BlackboxWindow *w);
+  void setFocusedWindow(BlackboxWindow *win);
+  void setChangingWindow(BlackboxWindow *win);
   void shutdown(void);
   void saveStyleFilename(const std::string& filename);
-  void saveWindowToWindowSnap(bool);
-  void saveWindowCornerSnap(bool);
   void addMenuTimestamp(const std::string& filename);
   void restart(const char *prog = 0);
   void reconfigure(void);
@@ -253,64 +274,6 @@ public:
 #ifndef   HAVE_STRFTIME
   enum { B_AmericanDate = 1, B_EuropeanDate };
 #endif // HAVE_STRFTIME
-
-  inline Atom getWMDeleteAtom(void) const
-    { return xatom->getAtom(XAtom::wm_delete_window); }
-  inline Atom getWMProtocolsAtom(void) const
-    { return xatom->getAtom(XAtom::wm_protocols); }
-  inline Atom getWMTakeFocusAtom(void) const
-    { return xatom->getAtom(XAtom::wm_take_focus); }
-  inline Atom getWMColormapAtom(void) const
-    { return xatom->getAtom(XAtom::wm_colormap_windows); }
-  inline Atom getMotifWMHintsAtom(void) const
-    { return xatom->getAtom(XAtom::motif_wm_hints); }
-
-  // this atom is for normal app->WM hints about decorations, stacking,
-  // starting workspace etc...
-  inline Atom getBlackboxHintsAtom(void) const
-    { return xatom->getAtom(XAtom::blackbox_hints); }
-
-  // these atoms are for normal app->WM interaction beyond the scope of the
-  // ICCCM...
-  inline Atom getBlackboxAttributesAtom(void) const
-    { return xatom->getAtom(XAtom::blackbox_attributes); }
-  inline Atom getBlackboxChangeAttributesAtom(void) const
-    { return xatom->getAtom(XAtom::blackbox_change_attributes); }
-
-  // these atoms are for window->WM interaction, with more control and
-  // information on window "structure"... common examples are
-  // notifying apps when windows are raised/lowered... when the user changes
-  // workspaces... i.e. "pager talk"
-  inline Atom getBlackboxStructureMessagesAtom(void) const
-    { return xatom->getAtom(XAtom::blackbox_structure_messages); }
-
-  // *Notify* portions of the NETStructureMessages protocol
-  inline Atom getBlackboxNotifyStartupAtom(void) const
-    { return xatom->getAtom(XAtom::blackbox_notify_startup); }
-  inline Atom getBlackboxNotifyWindowAddAtom(void) const
-    { return xatom->getAtom(XAtom::blackbox_notify_window_add); }
-  inline Atom getBlackboxNotifyWindowDelAtom(void) const
-    { return xatom->getAtom(XAtom::blackbox_notify_window_del); }
-  inline Atom getBlackboxNotifyWindowFocusAtom(void) const
-    { return xatom->getAtom(XAtom::blackbox_notify_window_focus); }
-  inline Atom getBlackboxNotifyCurrentWorkspaceAtom(void) const
-    { return xatom->getAtom(XAtom::blackbox_notify_current_workspace); }
-  inline Atom getBlackboxNotifyWorkspaceCountAtom(void) const
-    { return xatom->getAtom(XAtom::blackbox_notify_workspace_count); }
-  inline Atom getBlackboxNotifyWindowRaiseAtom(void) const
-    { return xatom->getAtom(XAtom::blackbox_notify_window_raise); }
-  inline Atom getBlackboxNotifyWindowLowerAtom(void) const
-    { return xatom->getAtom(XAtom::blackbox_notify_window_lower); }
-
-  // atoms to change that request changes to the desktop environment during
-  // runtime... these messages can be sent by any client... as the sending
-  // client window id is not included in the ClientMessage event...
-  inline Atom getBlackboxChangeWorkspaceAtom(void) const
-    { return xatom->getAtom(XAtom::blackbox_change_workspace); }
-  inline Atom getBlackboxChangeWindowFocusAtom(void) const
-    { return xatom->getAtom(XAtom::blackbox_change_window_focus); }
-  inline Atom getBlackboxCycleWindowFocusAtom(void) const
-    { return xatom->getAtom(XAtom::blackbox_cycle_window_focus); }
 };
 
 
This page took 0.026834 seconds and 4 git commands to generate.