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 #ifndef ODE_TEXT_LISTENER_H_
00023 #define ODE_TEXT_LISTENER_H_
00024
00025
00026 #include "../../common/xp/ODc_util.h"
00027 #include "ODe_AbiDocListenerImpl.h"
00028
00029
00030 #include <ut_string_class.h>
00031
00032
00033 #include <stdio.h>
00034
00035
00036 class ODe_AutomaticStyles;
00037 class ODe_AuxiliaryData;
00038 class ODe_ListenerAction;
00039 class ODe_Styles;
00040 class ODe_Style_List;
00041
00042
00043 class PP_AttrProp;
00044
00045
00049 class ODe_Text_Listener : public ODe_AbiDocListenerImpl {
00050 public:
00051
00052 ODe_Text_Listener(ODe_Styles& rStyles,
00053 ODe_AutomaticStyles& rAutomatiStyles,
00054 GsfOutput* pTextOutput,
00055 ODe_AuxiliaryData& rAuxiliaryData,
00056 UT_uint8 zIndex,
00057 UT_uint8 spacesOffset);
00058
00059 ODe_Text_Listener(ODe_Styles& rStyles,
00060 ODe_AutomaticStyles& rAutomatiStyles,
00061 GsfOutput* pTextOutput,
00062 ODe_AuxiliaryData& rAuxiliaryData,
00063 UT_uint8 zIndex,
00064 UT_uint8 spacesOffset,
00065 const UT_UTF8String& rPendingMasterPageStyleName);
00066
00067 ~ODe_Text_Listener();
00068
00069
00070
00071 virtual void openTable(const PP_AttrProp* pAP, ODe_ListenerAction& rAction);
00072
00073 virtual void closeCell(ODe_ListenerAction& rAction);
00074 virtual void closeSection(ODe_ListenerAction& rAction);
00075
00076 virtual void openBlock(const PP_AttrProp* pAP, ODe_ListenerAction& rAction);
00077 virtual void closeBlock();
00078
00079 virtual void openSpan(const PP_AttrProp* pAP);
00080 virtual void closeSpan();
00081
00082 virtual void openFrame(const PP_AttrProp* pAP, ODe_ListenerAction& rAction);
00083 virtual void closeFrame(ODe_ListenerAction& rAction);
00084
00085 virtual void openField(const fd_Field* field, const UT_UTF8String& fieldType, const UT_UTF8String& fieldValue);
00086 virtual void closeField(const UT_UTF8String& fieldType);
00087
00088 virtual void openFootnote(const PP_AttrProp* pAP, ODe_ListenerAction& rAction);
00089 virtual void closeFootnote(ODe_ListenerAction& rAction);
00090
00091 virtual void openEndnote(const PP_AttrProp* pAP, ODe_ListenerAction& rAction);
00092 virtual void closeEndnote(ODe_ListenerAction& rAction);
00093
00094 virtual void openAnnotation( const PP_AttrProp* pAP, const std::string& name, PD_Document* doc = 0 );
00095 virtual void closeAnnotation( const std::string& name );
00096 virtual void endAnnotation( const std::string& name );
00097
00098 virtual void openTOC(const PP_AttrProp* pAP);
00099 virtual void closeTOC();
00100
00101 virtual void openBookmark(const PP_AttrProp* pAP);
00102 virtual void closeBookmark(const PP_AttrProp* pAP);
00103 virtual void closeBookmark(UT_UTF8String &sBookmarkName);
00104
00105 virtual void openHyperlink(const PP_AttrProp* pAP);
00106 virtual void closeHyperlink();
00107
00108 void openRDFAnchor(const PP_AttrProp* pAP);
00109 void closeRDFAnchor(const PP_AttrProp* pAP);
00110
00111 virtual void insertText(const UT_UTF8String& rText);
00112
00113 virtual void insertLineBreak();
00114 virtual void insertColumnBreak();
00115 virtual void insertPageBreak();
00116 virtual void insertTabChar();
00117
00118 virtual void insertInlinedImage(const gchar* pImageName,
00119 const PP_AttrProp* pAP);
00120
00121 virtual void insertPositionedImage(const gchar* pImageName,
00122 const PP_AttrProp* pAP);
00123 void setOpenedODNote(bool b)
00124 { m_openedODNote = b;}
00125 void setIgnoreFirstTab(bool b)
00126 { m_bIgoreFirstTab = b;}
00127
00128 private:
00129 bool _blockIsPlainParagraph(const PP_AttrProp* pAP) const;
00130 void _openODListItem(const PP_AttrProp* pAP);
00131 void _openODParagraph(const PP_AttrProp* pAP);
00132 void _closeODParagraph();
00133 void _closeODList();
00134
00135
00136 bool m_openedODParagraph;
00137 bool m_openedODSpan;
00138 bool m_isFirstCharOnParagraph;
00139 bool m_isHeadingParagraph;
00140 bool m_openedODTextboxFrame;
00141 bool m_openedODNote;
00142 bool m_bIgoreFirstTab;
00143
00144
00145 GsfOutput* m_pParagraphContent;
00146
00147
00148
00149 UT_uint8 m_currentListLevel;
00150 ODe_Style_List* m_pCurrentListStyle;
00151
00152 bool m_pendingColumnBrake;
00153 bool m_pendingPageBrake;
00154
00155 bool m_pendingMasterPageStyleChange;
00156 UT_UTF8String m_masterPageStyleName;
00157
00158 ODe_Styles& m_rStyles;
00159 ODe_AutomaticStyles& m_rAutomatiStyles;
00160 GsfOutput* m_pTextOutput;
00161 ODe_AuxiliaryData& m_rAuxiliaryData;
00162 UT_uint8 m_zIndex;
00163
00164
00165 UT_sint32 m_iCurrentTOC;
00166
00167 UT_UTF8String& appendAttribute( UT_UTF8String& ret, const char* key, const char* value );
00168 };
00169
00170 #endif