X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2FWorkspace.h;h=ab8dad3ffef7f559f57a55588985eb60e1075715;hb=89563281384c34886fb12b169d1bdf8d293f0b48;hp=f9700bdce74907d9b9dd26c419b559ea498ad180;hpb=dfc5f034581f5a26cba5c4811500438f89f0634a;p=chaz%2Fopenbox diff --git a/src/Workspace.h b/src/Workspace.h index f9700bdc..ab8dad3f 100644 --- a/src/Workspace.h +++ b/src/Workspace.h @@ -26,6 +26,7 @@ #include #include "LinkedList.h" +#include "Geometry.h" class BScreen; class Clientmenu; @@ -34,7 +35,7 @@ class OpenboxWindow; class Workspace { private: - BScreen *screen; + BScreen &screen; OpenboxWindow *lastfocus; Clientmenu *clientmenu; @@ -45,14 +46,18 @@ private: 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; }