diff options
Diffstat (limited to 'plugins/ExternalAPI/m_skinengine.h')
-rw-r--r-- | plugins/ExternalAPI/m_skinengine.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/plugins/ExternalAPI/m_skinengine.h b/plugins/ExternalAPI/m_skinengine.h new file mode 100644 index 0000000000..98b3e8843a --- /dev/null +++ b/plugins/ExternalAPI/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;
+};
|