]> Dogcows Code - chaz/openbox/blobdiff - src/Workspace.h
better gcc3 compat. using ostrstream again. and using namespace std;
[chaz/openbox] / src / Workspace.h
index f9700bdce74907d9b9dd26c419b559ea498ad180..01b520ad5a1844fe97212efa7e1df3bdd0508684 100644 (file)
@@ -31,10 +31,12 @@ class BScreen;
 class Clientmenu;
 class Workspace;
 class OpenboxWindow;
+class Size;
+class Rect;
 
 class Workspace {
 private:
-  BScreen *screen;
+  BScreen &screen;
   OpenboxWindow *lastfocus;
   Clientmenu *clientmenu;
 
@@ -43,36 +45,34 @@ private:
   char *name;
   int id, cascade_x, cascade_y;
 
+  OpenboxWindow *_focused;
 
 protected:
-  void placeWindow(OpenboxWindow *);
-
+  void placeWindow(OpenboxWindow &);
+  Point *bestFitPlacement(const Size &win_size, const Rect &space);
+  Point *underMousePlacement(const Size &win_size, const Rect &space);
+  Point *rowSmartPlacement(const Size &win_size, const Rect &space);
+  Point *colSmartPlacement(const Size &win_size, const Rect &space);
+  Point *const cascadePlacement(const OpenboxWindow &window, const Rect &space);
 
 public:
-  Workspace(BScreen *, int = 0);
+  Workspace(BScreen &, int = 0);
   ~Workspace(void);
 
-  inline BScreen *getScreen(void) { return screen; }
-
+  inline BScreen &getScreen(void) { return screen; }
   inline OpenboxWindow *getLastFocusedWindow(void) { return lastfocus; }
-  
   inline Clientmenu *getMenu(void) { return clientmenu; }
-
   inline const char *getName(void) const { return name; }
-
   inline const int &getWorkspaceID(void) const { return id; }
-  
   inline void setLastFocusedWindow(OpenboxWindow *w) { lastfocus = w; }
-
+  inline OpenboxWindow *focusedWindow() { return _focused; }
+  void focusWindow(OpenboxWindow *win);
   OpenboxWindow *getWindow(int);
-
   Bool isCurrent(void);
   Bool isLastWindow(OpenboxWindow *);
-  
   const int addWindow(OpenboxWindow *, Bool = False);
   const int removeWindow(OpenboxWindow *);
   const int getCount(void);
-
   void showAll(void);
   void hideAll(void);
   void removeAll(void);
This page took 0.024711 seconds and 4 git commands to generate.