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