8 #include <lib/base/estring.h>
9 #include <lib/base/eptrlist.h>
10 #include <lib/gdi/grc.h>
14 typedef eWidget *(*tWidgetCreator)(eWidget *parent);
26 typedef ePtrList<XMLTreeParser> parserList;
30 int parseColor(const eString& name, const char *color, gRGB &col);
31 int parseColors(XMLTreeNode *colors);
32 int parseScheme(XMLTreeNode *scheme);
33 int parseImages(XMLTreeNode *images);
34 int parseImageAlias(XMLTreeNode *images);
35 int parseValues(XMLTreeNode *values);
36 int parseFonts(XMLTreeNode *fonts);
37 int parseFontAlias(XMLTreeNode *fonts);
39 gDC *getDCbyName(const char *name);
43 ePtr<gImage> paldummy;
46 static std::map< eString, tWidgetCreator > widget_creator;
47 int build(eWidget *widget, XMLTreeNode *rootwidget);
49 std::list<eNamedColor> colors;
50 std::map<eString, gColor> scheme;
51 std::map<eString, ePtr<gPixmap> > images;
52 std::map<eString, int> values;
53 std::map<eString, eString> fonts;
54 std::map<eString, gFont> fontAlias;
55 std::map<eString, eString> imageAlias;
57 eNamedColor *searchColor(const eString &name);
64 static void addWidgetCreator(const eString &name, tWidgetCreator creator);
65 static void removeWidgetCreator(const eString &name, tWidgetCreator creator);
67 int load(const char *filename);
70 int build(eWidget *widget, const char *name);
71 void setPalette(gPixmapDC *pal);
73 gColor queryColor(const eString &name);
74 gColor queryScheme(const eString &name) const;
75 RESULT queryImage(ePtr<gPixmap> &pixmap, const eString &name) const;
76 int queryValue(const eString &name, int d) const;
77 gFont queryFont(const eString &name);
81 static eSkin *getActive();
84 #define ASSIGN(v, t, n) \
85 v =(t*)search(n); if (! v ) { eWarning("skin has undefined element: %s", n); v=new t(this); }