2 * Copyright 2010, Haiku.
3 * Distributed under the terms of the MIT License.
6 * Clemens Zeidler <haiku@clemens-zeidler.de>
11 #include "ObjectList.h"
13 #include "Decorator.h"
14 #include "StackAndTile.h"
21 class SATTiling
: public SATSnappingBehaviour
{
23 SATTiling(SATWindow
* window
);
26 bool FindSnappingCandidates(SATGroup
* group
);
27 bool JoinCandidates();
29 void WindowLookChanged(window_look look
);
31 bool _IsTileableWindow(Window
* window
);
33 bool _FindFreeAreaInGroup(SATGroup
* group
);
34 bool _FindFreeAreaInGroup(SATGroup
* group
,
35 Corner::position_t corner
);
37 bool _InteresstingCrossing(Crossing
* crossing
,
38 Corner::position_t corner
, BRect
& windowFrame
);
39 bool _FindFreeArea(SATGroup
* group
,
40 const Crossing
* crossing
,
41 Corner::position_t areaCorner
,
43 bool _HasOverlapp(SATGroup
* group
);
44 bool _CheckArea(SATGroup
* group
,
45 Corner::position_t corner
, BRect
& windowFrame
,
47 bool _CheckMinFreeAreaSize();
48 float _FreeAreaError(BRect
& windowFrame
);
49 bool _IsCornerInFreeArea(Corner::position_t corner
,
52 BRect
_FreeAreaSize();
54 void _HighlightWindows(SATGroup
* group
,
55 bool highlight
= true);
56 bool _SearchHighlightWindow(Tab
* tab
, Tab
* firstOrthTab
,
57 Tab
* secondOrthTab
, const TabList
* orthTabs
,
58 Corner::position_t areaCorner
,
59 Decorator::Region region
, bool highlight
);
60 void _HighlightWindows(WindowArea
* area
,
61 Decorator::Region region
, bool highlight
);
63 void _ResetSearchResults();
65 SATWindow
* fSATWindow
;
67 SATGroup
* fFreeAreaGroup
;