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