diff options
Diffstat (limited to 'skinengine/src/skin_manager.cpp')
-rw-r--r-- | skinengine/src/skin_manager.cpp | 22 |
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;
+}
|