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