summaryrefslogtreecommitdiff
path: root/SkinEngine/src/skin_layout.h
blob: 7e5a6a0375a3e98deea67a8079ca35d4fe5a9c20 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#ifndef skin_layout_h__
#define skin_layout_h__

class CSkinLayout: public CSkinComplexObject
{
private:
	enum
	{
		MODE_HORIZONTAL,
		MODE_VERTICAL,
		MODE_LAYERED
	} m_layoutMode;

public:
	virtual void LoadFromXml(HXML hXml);
	virtual void Measure(SkinRenderParams *params);
	virtual void Layout(SkinRenderParams *params);
	virtual void Paint(SkinRenderParams *params);

private:
	void MeasureHorizontal(SkinRenderParams *params);
	void MeasureVertical(SkinRenderParams *params);
	void MeasureLayered(SkinRenderParams *params);

	void LayoutHorizontal(SkinRenderParams *params);
	void LayoutVertical(SkinRenderParams *params);
	void LayoutLayered(SkinRenderParams *params);
};

#endif // skin_layout_h__