summaryrefslogtreecommitdiff
path: root/SkinEngine/src/skin_manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'SkinEngine/src/skin_manager.cpp')
-rw-r--r--SkinEngine/src/skin_manager.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/SkinEngine/src/skin_manager.cpp b/SkinEngine/src/skin_manager.cpp
new file mode 100644
index 0000000..aa59b47
--- /dev/null
+++ b/SkinEngine/src/skin_manager.cpp
@@ -0,0 +1,22 @@
+#include "headers.h"
+
+ISkinElement *SkinCreateObjectFromXml(HXML hXml, ISkinDataSource *ds)
+{
+ CSkinObject *result = NULL;
+
+ const TCHAR *name = xi.getName(hXml);
+ if (!lstrcmp(name, _T("image")))
+ result = new CSkinImage;
+ else if (!lstrcmp(name, _T("icon")))
+ result = new CSkinIcon;
+ else if (!lstrcmp(name, _T("text")))
+ result = new CSkinText;
+ else if (!lstrcmp(name, _T("layout")))
+ result = new CSkinLayout;
+ else
+ return NULL;
+
+ result->SetDataSource(ds);
+ result->LoadFromXml(hXml);
+ return result;
+}