summaryrefslogtreecommitdiff
path: root/skinengine/api/m_skinengine.h
diff options
context:
space:
mode:
authorwatcherhd <watcherhd@e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb>2011-04-21 14:14:52 +0000
committerwatcherhd <watcherhd@e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb>2011-04-21 14:14:52 +0000
commitcb4a46e7fbe62d788e66ed6121c717a2d22a4d7c (patch)
tree30df260fdc5a1b5a7049c2f8cac8b7ef17513d6d /skinengine/api/m_skinengine.h
parent19b6f534d2e784a1e120bf52c4aa07004798f473 (diff)
svn.miranda.im is moving to a new home!
git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@7 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb
Diffstat (limited to 'skinengine/api/m_skinengine.h')
-rw-r--r--skinengine/api/m_skinengine.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/skinengine/api/m_skinengine.h b/skinengine/api/m_skinengine.h
new file mode 100644
index 0000000..98b3e88
--- /dev/null
+++ b/skinengine/api/m_skinengine.h
@@ -0,0 +1,55 @@
+struct ISkinBackend;
+struct ISkinElement;
+
+struct SkinRenderParams
+{
+ HDC hdc;
+ RECT rc;
+};
+
+struct ISkinDataSource
+{
+ virtual LPCTSTR GetText(const TCHAR *key) = 0;
+ virtual HICON GetIcon(const TCHAR *key) = 0;
+ virtual HBITMAP GetBitmap(const TCHAR *key) = 0;
+ virtual ISkinBackend *GetObject(const TCHAR *key) = 0;
+};
+
+struct ISkinElement
+{
+ // general manadgement
+ virtual void SetParent(ISkinElement *parent) = 0;
+ virtual void LoadFromXml(HXML hXml) = 0;
+ virtual void SetId(const TCHAR *id) = 0;
+ virtual void SetDataSource(ISkinDataSource *ds) = 0;
+ virtual void Destroy() = 0;
+
+ // rendering and layouting
+ virtual void Measure(SkinRenderParams *params) = 0;
+ virtual void Layout(SkinRenderParams *params) = 0;
+ virtual void Paint(SkinRenderParams *params) = 0;
+
+ // element tree
+ virtual bool IsComplexObject() = 0;
+ virtual ISkinElement *GetParent() = 0;
+ virtual int GetChildCount() = 0;
+ virtual ISkinElement *GetChild(int index) = 0;
+ virtual bool AppendChild(ISkinElement *child) = 0;
+ virtual bool InsertChild(ISkinElement *child, int index) = 0;
+ virtual void RemoveChild(ISkinElement *child) = 0;
+
+ // element properties
+ virtual void SetPropText(const TCHAR *key, const TCHAR *value) = 0;
+ virtual const TCHAR *GetPropText(const TCHAR *key, const TCHAR *value) = 0;
+ virtual void SetPropInt(const TCHAR *key, int value) = 0;
+ virtual void SetPropIntText(const TCHAR *key, const TCHAR *value) = 0;
+ virtual int GetPropInt(const TCHAR *key) = 0;
+};
+
+struct ISkinBackend
+{
+ virtual LPCTSTR GetText(const TCHAR *key) = 0;
+ virtual HICON GetIcon(const TCHAR *key) = 0;
+ virtual HBITMAP GetBitmap(const TCHAR *key) = 0;
+ virtual ISkinBackend *GetObject(const TCHAR *key) = 0;
+};