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
15class SATWindow;
16
17
18class StackingEventHandler
19{
20public:
21	static bool				HandleMessage(SATWindow* sender,
22								BPrivate::LinkReceiver& link,
23								BPrivate::LinkSender& reply);
24};
25
26
27class SATStacking : public SATSnappingBehaviour {
28public:
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);
38private:
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