X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2FWorkspace.h;h=7701467ba63c86e42dfa9a664762e7f24c3f504e;hb=f804f86c3eacc11091cbff2fa287799f925c2635;hp=ab8dad3ffef7f559f57a55588985eb60e1075715;hpb=20cd70c4665de85ffe3a04f9aa47acb9666e4f39;p=chaz%2Fopenbox diff --git a/src/Workspace.h b/src/Workspace.h index ab8dad3f..7701467b 100644 --- a/src/Workspace.h +++ b/src/Workspace.h @@ -25,13 +25,18 @@ #include -#include "LinkedList.h" -#include "Geometry.h" +#include +#include class BScreen; class Clientmenu; class Workspace; class OpenboxWindow; +class Size; +class Rect; + +typedef std::vector winVect; +typedef std::list winList; class Workspace { private: @@ -39,11 +44,13 @@ private: OpenboxWindow *lastfocus; Clientmenu *clientmenu; - LinkedList *stackingList, *windowList; + winVect _windows; + winList _zorder; char *name; int id, cascade_x, cascade_y; + OpenboxWindow *_focused; protected: void placeWindow(OpenboxWindow &); @@ -58,26 +65,18 @@ public: ~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);