123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- #ifndef _SKINELEM_H
- #define _SKINELEM_H
- #include <api/xml/xmlreader.h>
- #include <tataki/region/region.h>
- #include <api/skin/skinitem.h>
- #include <api/xml/xmlparamsi.h>
- typedef struct
- {
- const wchar_t *tagname;
- int id;
- int needclosetag;
- }
- xml_elementtag;
- class XmlElementTagComp
- {
- public:
- static int compareItem(void *p1, void *p2)
- {
- return WCSICMP(((xml_elementtag *)p1)->tagname, ((xml_elementtag *)p2)->tagname);
- }
- static int compareAttrib(const wchar_t *attrib, void *item)
- {
- return WCSICMP(attrib, ((xml_elementtag *)item)->tagname);
- }
- };
- enum {
- XML_ELEMENTTAG_UNKNOWN = 0,
- XML_ELEMENTTAG_ELEMENTS,
- XML_ELEMENTTAG_ELEMENTALIAS,
- XML_ELEMENTTAG_BITMAP,
- XML_ELEMENTTAG_COLOR,
- XML_ELEMENTTAG_BITMAPFONT,
- XML_ELEMENTTAG_TRUETYPEFONT,
- XML_ELEMENTTAG_CURSOR,
- };
- class ElementRegionServer;
- /*typedef enum {
- SKIN_BITMAP_ELEMENT,
- SKIN_FONT_ELEMENT,
- SKIN_CURSOR_ELEMENT,
- SKIN_COLOR_ELEMENT
- } SkinElementType;*/
- class SkinElementsXmlReader : public XmlReaderCallbackI
- {
- public:
- void xmlReaderOnStartElementCallback(const wchar_t *xmltag, skin_xmlreaderparams *params);
- void xmlReaderOnEndElementCallback(const wchar_t *xmltag);
- };
- class SkinElementsMgr
- {
- public:
- static void init();
- static void deinit();
- static void onBeforeLoadingSkinElements(const wchar_t *rootpath);
- static void onAfterLoadingSkinElements();
- static void onBeforeLoadingScriptElements(const wchar_t *name, int script_id);
- static void onAfterLoadingScriptElements();
- static void resetSkinElements();
- static void unloadScriptElements(int scriptid);
- static void xmlReaderOnStartElementCallback( const wchar_t *xmltag, skin_xmlreaderparams *params);
- static void _xmlReaderOnStartElementCallback( int tagid, const wchar_t *xmltag, skin_xmlreaderparams *params);
- static void xmlReaderOnEndElementCallback( const wchar_t *xmltag);
- static const wchar_t *getSkinRootpathFromIncludePath(const wchar_t *includepath, const wchar_t *def);
- static int elementEqual(const wchar_t *file1, const wchar_t *rootpath1,
- const wchar_t *file2, const wchar_t *rootpath2);
- private:
- static SkinElementsXmlReader xmlreader;
- static int inelements;
- static int elementScriptId;
- static int oldid, oldinel;
- static StringW rootpath;
- static StringW original_rootpath;
- static StringW t_rootpath;
- static StringW last_includepath;
- static PtrList<StringW> rootpathstack;
-
- static PtrListQuickSorted<xml_elementtag, XmlElementTagComp> quickxmltaglist;
- };
- #endif
|