diff options
author | fluxgen <fluxgen> | 2003-06-18 13:42:21 (GMT) |
---|---|---|
committer | fluxgen <fluxgen> | 2003-06-18 13:42:21 (GMT) |
commit | b373962b76db06f59c04e504a8c93084607fe13d (patch) | |
tree | f5f3a3907329a0e9736ce9328be2bffe99a763c8 /src/Screen.hh | |
parent | 1314a15988c3d922cb8dd45807b0cea449ff9a5a (diff) | |
download | fluxbox-b373962b76db06f59c04e504a8c93084607fe13d.zip fluxbox-b373962b76db06f59c04e504a8c93084607fe13d.tar.bz2 |
Strut support
Diffstat (limited to 'src/Screen.hh')
-rw-r--r-- | src/Screen.hh | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/Screen.hh b/src/Screen.hh index a90ca29..9a16597 100644 --- a/src/Screen.hh +++ b/src/Screen.hh | |||
@@ -22,7 +22,7 @@ | |||
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
23 | // DEALINGS IN THE SOFTWARE. | 23 | // DEALINGS IN THE SOFTWARE. |
24 | 24 | ||
25 | // $Id: Screen.hh,v 1.105 2003/06/15 11:37:53 rathnor Exp $ | 25 | // $Id: Screen.hh,v 1.106 2003/06/18 13:42:21 fluxgen Exp $ |
26 | 26 | ||
27 | #ifndef SCREEN_HH | 27 | #ifndef SCREEN_HH |
28 | #define SCREEN_HH | 28 | #define SCREEN_HH |
@@ -52,6 +52,7 @@ class RootTheme; | |||
52 | class WinButtonTheme; | 52 | class WinButtonTheme; |
53 | class WinClient; | 53 | class WinClient; |
54 | class Workspace; | 54 | class Workspace; |
55 | class Strut; | ||
55 | 56 | ||
56 | namespace FbTk { | 57 | namespace FbTk { |
57 | class MenuTheme; | 58 | class MenuTheme; |
@@ -69,7 +70,7 @@ class BScreen : private FbTk::NotCopyable { | |||
69 | public: | 70 | public: |
70 | typedef std::vector<Workspace *> Workspaces; | 71 | typedef std::vector<Workspace *> Workspaces; |
71 | typedef std::vector<std::string> WorkspaceNames; | 72 | typedef std::vector<std::string> WorkspaceNames; |
72 | 73 | ||
73 | BScreen(FbTk::ResourceManager &rm, | 74 | BScreen(FbTk::ResourceManager &rm, |
74 | const std::string &screenname, const std::string &altscreenname, | 75 | const std::string &screenname, const std::string &altscreenname, |
75 | int scrn, int number_of_layers); | 76 | int scrn, int number_of_layers); |
@@ -334,6 +335,12 @@ public: | |||
334 | FluxboxWindow *createWindow(Window clientwin); | 335 | FluxboxWindow *createWindow(Window clientwin); |
335 | FluxboxWindow *createWindow(WinClient &client); | 336 | FluxboxWindow *createWindow(WinClient &client); |
336 | void setupWindowActions(FluxboxWindow &win); | 337 | void setupWindowActions(FluxboxWindow &win); |
338 | /// request workspace space, i.e "don't maximize over this area" | ||
339 | Strut *requestStrut(int left, int right, int top, int bottom); | ||
340 | /// remove requested space and destroy strut | ||
341 | void clearStrut(Strut *strut); | ||
342 | /// updates max avaible area for the workspace | ||
343 | void updateAvailableWorkspaceArea(); | ||
337 | 344 | ||
338 | enum { ROWSMARTPLACEMENT = 1, COLSMARTPLACEMENT, CASCADEPLACEMENT, | 345 | enum { ROWSMARTPLACEMENT = 1, COLSMARTPLACEMENT, CASCADEPLACEMENT, |
339 | UNDERMOUSEPLACEMENT, LEFTRIGHT, RIGHTLEFT, TOPBOTTOM, BOTTOMTOP }; | 346 | UNDERMOUSEPLACEMENT, LEFTRIGHT, RIGHTLEFT, TOPBOTTOM, BOTTOMTOP }; |
@@ -456,10 +463,13 @@ private: | |||
456 | 463 | ||
457 | int m_xinerama_center_x, m_xinerama_center_y; | 464 | int m_xinerama_center_x, m_xinerama_center_y; |
458 | 465 | ||
466 | std::auto_ptr<Strut> m_available_workspace_area; | ||
467 | |||
459 | struct XineramaHeadInfo { | 468 | struct XineramaHeadInfo { |
460 | int x, y, width, height; | 469 | int x, y, width, height; |
461 | } *m_xinerama_headinfo; | 470 | } *m_xinerama_headinfo; |
462 | 471 | ||
472 | std::list<Strut *> m_strutlist; | ||
463 | }; | 473 | }; |
464 | 474 | ||
465 | 475 | ||