X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2FWorkspace.h;h=01b520ad5a1844fe97212efa7e1df3bdd0508684;hb=098fae70a6d8d15877938080437f0fc20f52bbf5;hp=55962b6211d997a999dfabf9625437b349569575;hpb=adcdf317027530bcfbf757a23919d3a87107d816;p=chaz%2Fopenbox diff --git a/src/Workspace.h b/src/Workspace.h index 55962b62..01b520ad 100644 --- a/src/Workspace.h +++ b/src/Workspace.h @@ -26,12 +26,13 @@ #include #include "LinkedList.h" -#include "Geometry.h" class BScreen; class Clientmenu; class Workspace; class OpenboxWindow; +class Size; +class Rect; class Workspace { private: @@ -44,38 +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); - const Point *const cascade(const OpenboxWindow* window); + Point *colSmartPlacement(const Size &win_size, const Rect &space); + Point *const cascadePlacement(const OpenboxWindow &window, const Rect &space); public: Workspace(BScreen &, int = 0); ~Workspace(void); 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);