summaryrefslogtreecommitdiff
path: root/SkinEngine/src/skin_layout.h
diff options
context:
space:
mode:
Diffstat (limited to 'SkinEngine/src/skin_layout.h')
-rw-r--r--SkinEngine/src/skin_layout.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/SkinEngine/src/skin_layout.h b/SkinEngine/src/skin_layout.h
new file mode 100644
index 0000000..7e5a6a0
--- /dev/null
+++ b/SkinEngine/src/skin_layout.h
@@ -0,0 +1,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__