Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _OXMLI_LISTENERSTATE_H_
00024 #define _OXMLI_LISTENERSTATE_H_
00025
00026
00027 #include <OXMLi_Types.h>
00028 #include <OXMLi_StreamListener.h>
00029
00030
00031 #include <ut_types.h>
00032
00033
00034 #include <stack>
00035 #include <string>
00036
00037
00038 class OXMLi_StreamListener;
00039
00040
00041
00042
00043 class OXMLi_ListenerState
00044 {
00045 public:
00046 OXMLi_ListenerState();
00047 virtual ~OXMLi_ListenerState();
00048
00049 inline void setListener(OXMLi_StreamListener * pListener) { m_pListener = pListener; }
00050 inline OXMLi_StreamListener * getListener() { return m_pListener; }
00051
00052 virtual void startElement (OXMLi_StartElementRequest * rqst) = 0;
00053 virtual void endElement (OXMLi_EndElementRequest * rqst) = 0;
00054 virtual void charData (OXMLi_CharDataRequest * rqst) = 0;
00055
00056 bool nameMatches(const std::string& name, const char* ns, const char* tag);
00057 const gchar* attrMatches(const char* ns, const gchar* attr, std::map<std::string, std::string>* atts);
00058 bool contextMatches(const std::string& name, const char* ns, const char* tag);
00059
00060 protected:
00061 bool _error_if_fail(bool val);
00062 UT_Error _flushTopLevel(OXMLi_ElementStack * stck, OXMLi_SectionStack * sect_stck);
00063 const gchar * _TwipsToPoints(const gchar * twips);
00064 const gchar * _TwipsToInches(const gchar * twips);
00065 const gchar * _EighthPointsToPoints(const gchar * eights);
00066 const gchar * _EmusToInches(const gchar * emus);
00067 void getFontLevelRange(const gchar * val, OXML_FontLevel& level, OXML_CharRange& range);
00068
00069 private:
00070
00071 OXMLi_StreamListener * m_pListener;
00072 };
00073 #endif //_OXMLI_LISTENERSTATE_H_
00074