aboutsummaryrefslogtreecommitdiff
path: root/src/Screen.hh
diff options
context:
space:
mode:
authorfluxgen <fluxgen>2004-09-11 13:33:07 (GMT)
committerfluxgen <fluxgen>2004-09-11 13:33:07 (GMT)
commit37757769634c836895d205b0a5149ffffaae9bfb (patch)
tree0b61e2fe2c81474bbd8472e8b777eed61e769858 /src/Screen.hh
parentad63de0281bc32180b8f4e70f2570fbae4a0487a (diff)
downloadfluxbox-37757769634c836895d205b0a5149ffffaae9bfb.zip
fluxbox-37757769634c836895d205b0a5149ffffaae9bfb.tar.bz2
head specific strut, patch from Mathieu De Zutter
Diffstat (limited to 'src/Screen.hh')
-rw-r--r--src/Screen.hh13
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;
61class Workspace; 61class Workspace;
62class Strut; 62class Strut;
63class Slit; 63class Slit;
64class HeadArea;
64 65
65namespace FbTk { 66namespace FbTk {
66class Menu; 67class 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