00001 #ifndef XMLPARSE_H_
00002 #define XMLPARSE_H_
00003
00004 #include "uitypes.h"
00005 #include "mythcontext.h"
00006 #include <qimage.h>
00007 #include <qrect.h>
00008 #include <qlabel.h>
00009 #include <qdom.h>
00010
00011
00012 class MPUBLIC XMLParse
00013 {
00014 public:
00015 XMLParse();
00016 ~XMLParse();
00017
00018 fontProp *GetFont(const QString &, bool checkGlobal = true);
00019 LayerSet *GetSet(const QString &text);
00020
00021 void SetWMult(double wm) { wmult = wm; }
00022 void SetHMult(double hm) { hmult = hm; }
00023 void SetFontSizeType(QString s) { fontSizeType = s; }
00024
00025 bool LoadTheme(QDomElement &, QString, QString sf = "");
00026 QString getFirstText(QDomElement &);
00027 void parseFont(QDomElement &);
00028 void normalizeRect(QRect &);
00029 QPoint parsePoint(QString);
00030 QRect parseRect(QString);
00031 void parsePopup(QDomElement &);
00032 void parseContainer(QDomElement &, QString &, int &, QRect &);
00033 void parseListArea(LayerSet *, QDomElement &);
00034 void parseBar(LayerSet *, QDomElement &);
00035 bool parseDefaultCategoryColors(QMap<QString, QString> &catColors);
00036 void parseGuideGrid(LayerSet *, QDomElement &);
00037 void parseImageGrid(LayerSet *, QDomElement &);
00038 void parseManagedTreeList(LayerSet *, QDomElement &);
00039 void parseTextArea(LayerSet *, QDomElement &);
00040 void parseRichTextArea(LayerSet *, QDomElement &);
00041 void parseMultiTextArea(LayerSet *, QDomElement &);
00042 void parseRemoteEdit(LayerSet *, QDomElement &);
00043 void parseStatusBar(LayerSet *, QDomElement &);
00044 void parseImage(LayerSet *, QDomElement &);
00045 bool parseAnimatedImage(LayerSet *, QDomElement &);
00046 void parseRepeatedImage(LayerSet *, QDomElement &);
00047 void parsePushButton(LayerSet *, QDomElement &);
00048 void parseTextButton(LayerSet *, QDomElement &);
00049 void parseCheckBox(LayerSet *, QDomElement &);
00050 void parseSelector(LayerSet *, QDomElement &);
00051 void parseBlackHole(LayerSet *, QDomElement &);
00052 void parseListBtnArea(LayerSet *, QDomElement &);
00053 void parseListTreeArea(LayerSet *, QDomElement &);
00054 void parseKeyboard(LayerSet *, QDomElement &);
00055 void parseKey(LayerSet *, QDomElement &);
00056
00057 private:
00058 bool doLoadTheme(QDomElement &, QString, QString);
00059 QMap<QString, fontProp> fontMap;
00060 QMap<QString, LayerSet*> layerMap;
00061 vector<LayerSet *> *allTypes;
00062
00063 double wmult;
00064 double hmult;
00065
00066 int usetrans;
00067
00068 QString fontSizeType;
00069 };
00070
00071 #endif