diff options
Diffstat (limited to 'src/Screen.hh')
-rw-r--r-- | src/Screen.hh | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/Screen.hh b/src/Screen.hh index 076ee63..ad460a8 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.144 2004/09/09 14:29:04 akir Exp $ | 25 | // $Id: Screen.hh,v 1.145 2004/09/11 13:29:35 fluxgen Exp $ |
26 | 26 | ||
27 | #ifndef SCREEN_HH | 27 | #ifndef SCREEN_HH |
28 | #define SCREEN_HH | 28 | #define SCREEN_HH |
@@ -61,6 +61,7 @@ class WinClient; | |||
61 | class Workspace; | 61 | class Workspace; |
62 | class Strut; | 62 | class Strut; |
63 | class Slit; | 63 | class Slit; |
64 | class HeadArea; | ||
64 | 65 | ||
65 | namespace FbTk { | 66 | namespace FbTk { |
66 | class Menu; | 67 | class Menu; |
@@ -304,6 +305,9 @@ public: | |||
304 | int getHeadWidth(int head) const; | 305 | int getHeadWidth(int head) const; |
305 | int getHeadHeight(int head) const; | 306 | int getHeadHeight(int head) const; |
306 | 307 | ||
308 | // returns the new (x,y) for a rectangle fitted on a head | ||
309 | std::pair<int,int> clampToHead(int head, int x, int y, int w, int h) const; | ||
310 | |||
307 | // magic to allow us to have "on head" placement (menu) without | 311 | // magic to allow us to have "on head" placement (menu) without |
308 | // the object really knowing about it. | 312 | // the object really knowing about it. |
309 | template <typename OnHeadObject> | 313 | template <typename OnHeadObject> |
@@ -333,7 +337,7 @@ public: | |||
333 | FluxboxWindow *createWindow(WinClient &client); | 337 | FluxboxWindow *createWindow(WinClient &client); |
334 | void setupWindowActions(FluxboxWindow &win); | 338 | void setupWindowActions(FluxboxWindow &win); |
335 | /// request workspace space, i.e "don't maximize over this area" | 339 | /// request workspace space, i.e "don't maximize over this area" |
336 | Strut *requestStrut(int left, int right, int top, int bottom); | 340 | Strut *requestStrut(int head, int left, int right, int top, int bottom); |
337 | /// remove requested space and destroy strut | 341 | /// remove requested space and destroy strut |
338 | void clearStrut(Strut *strut); | 342 | void clearStrut(Strut *strut); |
339 | /// updates max avaible area for the workspace | 343 | /// updates max avaible area for the workspace |
@@ -363,6 +367,8 @@ private: | |||
363 | void renderGeomWindow(); | 367 | void renderGeomWindow(); |
364 | void renderPosWindow(); | 368 | void renderPosWindow(); |
365 | 369 | ||
370 | const Strut* availableWorkspaceArea(int head) const; | ||
371 | |||
366 | ScreenSubject | 372 | ScreenSubject |
367 | m_clientlist_sig, ///< client signal | 373 | m_clientlist_sig, ///< client signal |
368 | m_iconlist_sig, ///< notify if a window gets iconified/deiconified | 374 | m_iconlist_sig, ///< notify if a window gets iconified/deiconified |
@@ -455,13 +461,12 @@ private: | |||
455 | 461 | ||
456 | int m_xinerama_center_x, m_xinerama_center_y; | 462 | int m_xinerama_center_x, m_xinerama_center_y; |
457 | 463 | ||
458 | std::auto_ptr<Strut> m_available_workspace_area; | 464 | HeadArea *m_head_areas; |
459 | 465 | ||
460 | struct XineramaHeadInfo { | 466 | struct XineramaHeadInfo { |
461 | int x, y, width, height; | 467 | int x, y, width, height; |
462 | } *m_xinerama_headinfo; | 468 | } *m_xinerama_headinfo; |
463 | 469 | ||
464 | std::list<Strut *> m_strutlist; | ||
465 | bool m_shutdown; | 470 | bool m_shutdown; |
466 | }; | 471 | }; |
467 | 472 | ||