xref: /haiku/src/servers/app/stackandtile/Stacking.h (revision 98057dd02a2411868fd4c35f7a48d20acfd92c23)
1 /*
2  * Copyright 2010, Haiku.
3  * Distributed under the terms of the MIT License.
4  *
5  * Authors:
6  *		Clemens Zeidler <haiku@clemens-zeidler.de>
7  */
8 #ifndef STACKING_H
9 #define STACKING_H
10 
11 #include "ObjectList.h"
12 #include "StackAndTile.h"
13 
14 
15 class SATWindow;
16 
17 
18 class StackingEventHandler
19 {
20 public:
21 	static bool				HandleMessage(SATWindow* sender,
22 								BPrivate::LinkReceiver& link,
23 								BPrivate::LinkSender& reply);
24 };
25 
26 
27 class SATStacking : public SATSnappingBehaviour {
28 public:
29 							SATStacking(SATWindow* window);
30 							~SATStacking();
31 
32 		bool				FindSnappingCandidates(SATGroup* group);
33 		bool				JoinCandidates();
34 		void				DoWindowLayout();
35 
36 		void				RemovedFromArea(WindowArea* area);
37 		void				WindowLookChanged(window_look look);
38 private:
39 		bool				_IsStackableWindow(Window* window);
40 		void				_ClearSearchResult();
41 		void				_HighlightWindows(bool highlight = true);
42 
43 		SATWindow*			fSATWindow;
44 
45 		SATWindow*			fStackingParent;
46 };
47 
48 #endif
49