/************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2008 by Sun Microsystems, Inc. * * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: swhtml.hxx,v $ * $Revision: 1.18.100.1 $ * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 3 * only, as published by the Free Software Foundation. * * OpenOffice.org is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License version 3 for more details * (a copy is included in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU Lesser General Public License * version 3 along with OpenOffice.org. If not, see * * for a copy of the LGPLv3 License. * ************************************************************************/ #ifndef _SWHTML_HXX #define _SWHTML_HXX #if !defined(_SVSTDARR_XUB_STRLEN_DECL) || !defined(_SVSTDARR_LONGS_DECL) || \ !defined(_SVSTDARR_USHORTS_DECL) || !defined(_SVSTDARR_STRINGSDTOR_DECL) #ifndef _SVSTDARR_XUB_STRLEN_DECL #define _SVSTDARR_XUB_STRLEN #endif #ifndef _SVSTDARR_LONGS_DECL #define _SVSTDARR_LONGS #endif #ifndef _SVSTDARR_USHORTS_DECL #define _SVSTDARR_USHORTS #endif #ifndef _SVSTDARR_STRINGSDTOR_DECL #define _SVSTDARR_STRINGSDTOR #endif #include #endif #include #include #include #include #include #include #include #include #include "calbck.hxx" #include "htmlvsh.hxx" class SfxMedium; class SfxViewFrame; class SdrObject; class SvxMacroTableDtor; class SvStringsDtor; class SwDoc; class SwPaM; class ViewShell; class SwStartNode; class SwFmtColl; class SwField; class SwHTMLForm_Impl; class SwApplet_Impl; struct SwHTMLFootEndNote_Impl; class HTMLTableCnts; struct SwPendingStack; class SvxCSS1PropertyInfo; #define HTML_PARSPACE (MM50) #define HTML_DFLT_IMG_WIDTH (MM50*4) #define HTML_DFLT_IMG_HEIGHT (MM50*2) // ein par Sachen, die man oefter mal braucht extern HTMLOptionEnum __FAR_DATA aHTMLPAlignTable[]; extern HTMLOptionEnum __FAR_DATA aHTMLImgHAlignTable[]; extern HTMLOptionEnum __FAR_DATA aHTMLImgVAlignTable[]; // der Attribut Stack: class _HTMLAttr; typedef _HTMLAttr *_HTMLAttrPtr; SV_DECL_PTRARR( _HTMLAttrs, _HTMLAttrPtr, 5, 5 ) class _HTMLAttr { friend class SwHTMLParser; friend class _CellSaveStruct; SwNodeIndex nSttPara, nEndPara; xub_StrLen nSttCntnt, nEndCntnt; sal_Bool bInsAtStart : 1; sal_Bool bLikePara : 1; // Attribut ueber dem gesamten Absatz setzen sal_Bool bValid : 1; // ist das Attribut gueltig? SfxPoolItem* pItem; sal_uInt16 nCount; // Anzahl noch zu schliessender Attrs mit einem Wert _HTMLAttr *pNext; // noch zu schliessene Attrs mit unterschiedl. Werten _HTMLAttr *pPrev; // bereits geschlossene aber noch nicht gesetze Attrs _HTMLAttr **ppHead; // der Listenkopf _HTMLAttr( const SwPosition& rPos, const SfxPoolItem& rItem, _HTMLAttr **pHd=0 ); _HTMLAttr( const _HTMLAttr &rAttr, const SwNodeIndex &rEndPara, xub_StrLen nEndCnt, _HTMLAttr **pHd ); public: ~_HTMLAttr(); _HTMLAttr *Clone( const SwNodeIndex& rEndPara, xub_StrLen nEndCnt ) const; void Reset( const SwNodeIndex& rSttPara, xub_StrLen nSttCnt, _HTMLAttr **pHd ); inline void SetStart( const SwPosition& rPos ); sal_uInt32 GetSttParaIdx() const { return nSttPara.GetIndex(); } sal_uInt32 GetEndParaIdx() const { return nEndPara.GetIndex(); } const SwNodeIndex& GetSttPara() const { return nSttPara; } const SwNodeIndex& GetEndPara() const { return nEndPara; } xub_StrLen GetSttCnt() const { return nSttCntnt; } xub_StrLen GetEndCnt() const { return nEndCntnt; } sal_Bool IsLikePara() const { return bLikePara; } void SetLikePara( sal_Bool bPara=sal_True ) { bLikePara = bPara; } SfxPoolItem& GetItem() { return *pItem; } const SfxPoolItem& GetItem() const { return *pItem; } _HTMLAttr *GetNext() const { return pNext; } void InsertNext( _HTMLAttr *pNxt ) { pNext = pNxt; } _HTMLAttr *GetPrev() const { return pPrev; } void InsertPrev( _HTMLAttr *pPrv ); void ClearPrev() { pPrev = 0; } void SetHead( _HTMLAttr **ppHd ) { ppHead = ppHd; } // Beim Setzen von Attributen aus Vorlagen kann es passieren, // dass Attribute doch nicht mehr gesetzt werden sollen. Die zu loeschen // waere sehr aufwendig, da man nicht so genau weiss, wo sie eingekettet // sind. Sie werden deshalb einfach invalidiert und erst beim naechsten // _SetAttr() geloescht. void Invalidate() { bValid = sal_False; } sal_Bool IsValid() const { return bValid; } }; // Tabelle der Attribute: Hier ist die Reihenfolge wichtig: Die Attribute // vorne in der Tabelle werden in EndAllAttrs auch zuerst gesetzt. struct _HTMLAttrTable { _HTMLAttr *pKeep, // ::com::sun::star::frame::Frame-Attribure *pBox, *pBrush, *pBreak, *pPageDesc, *pLRSpace, // Absatz-Attribute *pULSpace, *pLineSpacing, *pAdjust, *pDropCap, *pSplit, *pWidows, *pOrphans, *pDirection, *pCharFmts, // Text-Attribute *pINetFmt, *pBold, // Zeichen-Attribute *pBoldCJK, *pBoldCTL, *pItalic, *pItalicCJK, *pItalicCTL, *pStrike, *pUnderline, *pBlink, *pFont, *pFontCJK, *pFontCTL, *pFontHeight, *pFontHeightCJK, *pFontHeightCTL, *pFontColor, *pEscapement, *pCaseMap, *pKerning, // (nur fuer SPACER) *pCharBrush, // Zeichen-Hintergrund *pLanguage, *pLanguageCJK, *pLanguageCTL ; }; class _HTMLAttrContext_SaveDoc; enum SwHTMLAppendMode { AM_NORMAL, // keine Absatz-Abstand-Behandlung AM_NOSPACE, // Abstand hart auf 0cm setzen AM_SPACE, // Abstand hart auf 0.5cm setzen AM_SOFTNOSPACE, // Abstand nicht setzen aber 0cm merken AM_NONE // gar kein Append }; class _HTMLAttrContext { _HTMLAttrs aAttrs; // die in dem Kontext gestarteten Attribute String aClass; // die Klasse des Kontexts _HTMLAttrContext_SaveDoc *pSaveDocContext; SfxItemSet *pFrmItemSet; sal_uInt16 nToken; // das Token, zu dem der Kontext gehoehrt sal_uInt16 nTxtFmtColl; // eine in dem Kontext begonnene Vorlage oder 0 sal_uInt16 nLeftMargin; // ein veraenderter linker Rand sal_uInt16 nRightMargin; // ein veraenderter rechter Rand sal_uInt16 nFirstLineIndent; // ein veraenderter Erstzeilen-Einzug sal_uInt16 nUpperSpace; sal_uInt16 nLowerSpace; SwHTMLAppendMode eAppend; sal_Bool bLRSpaceChanged : 1;// linker/rechtr Rand, Einzug veraendert? sal_Bool bULSpaceChanged : 1;// oberer/unterer Rand veraendert? sal_Bool bDfltTxtFmtColl : 1;// nTxtFmtColl ist nur ein default sal_Bool bSpansSection : 1; // Der Kontext spannt eine SwSection auf sal_Bool bPopStack : 1; // Oberhalb liegende Stack-Elemente entf. sal_Bool bFinishPREListingXMP : 1; sal_Bool bRestartPRE : 1; sal_Bool bRestartXMP : 1; sal_Bool bRestartListing : 1; public: void ClearSaveDocContext(); _HTMLAttrContext( sal_uInt16 nTokn, sal_uInt16 nPoolId, const String& rClass, sal_Bool bDfltColl=sal_False ) : aClass( rClass ), pSaveDocContext( 0 ), pFrmItemSet( 0 ), nToken( nTokn ), nTxtFmtColl( nPoolId ), nLeftMargin( 0 ), nRightMargin( 0 ), nFirstLineIndent( 0 ), nUpperSpace( 0 ), nLowerSpace( 0 ), eAppend( AM_NONE ), bLRSpaceChanged( sal_False ), bULSpaceChanged( sal_False ), bDfltTxtFmtColl( bDfltColl ), bSpansSection( sal_False ), bPopStack( sal_False ), bFinishPREListingXMP( sal_False ), bRestartPRE( sal_False ), bRestartXMP( sal_False ), bRestartListing( sal_False ) {} _HTMLAttrContext( sal_uInt16 nTokn ) : pSaveDocContext( 0 ), pFrmItemSet( 0 ), nToken( nTokn ), nTxtFmtColl( 0 ), nLeftMargin( 0 ), nRightMargin( 0 ), nFirstLineIndent( 0 ), nUpperSpace( 0 ), nLowerSpace( 0 ), eAppend( AM_NONE ), bLRSpaceChanged( sal_False ), bULSpaceChanged( sal_False ), bDfltTxtFmtColl( sal_False ), bSpansSection( sal_False ), bPopStack( sal_False ), bFinishPREListingXMP( sal_False ), bRestartPRE( sal_False ), bRestartXMP( sal_False ), bRestartListing( sal_False ) {} ~_HTMLAttrContext() { ClearSaveDocContext(); delete pFrmItemSet; } sal_uInt16 GetToken() const { return nToken; } sal_uInt16 GetTxtFmtColl() const { return bDfltTxtFmtColl ? 0 : nTxtFmtColl; } sal_uInt16 GetDfltTxtFmtColl() const { return bDfltTxtFmtColl ? nTxtFmtColl : 0; } const String& GetClass() const { return aClass; } inline void SetMargins( sal_uInt16 nLeft, sal_uInt16 nRight, short nIndent ); inline sal_Bool IsLRSpaceChanged() const { return bLRSpaceChanged; } inline void GetMargins( sal_uInt16& nLeft, sal_uInt16& nRight, short &nIndent ) const; inline void SetULSpace( sal_uInt16 nUpper, sal_uInt16 nLower ); inline sal_Bool IsULSpaceChanged() const { return bULSpaceChanged; } inline void GetULSpace( sal_uInt16& rUpper, sal_uInt16& rLower ) const; sal_Bool HasAttrs() const { return aAttrs.Count() != 0; } const _HTMLAttrs& GetAttrs() const { return aAttrs; } _HTMLAttrs& GetAttrs() { return aAttrs; } void SetSpansSection( sal_Bool bSet ) { bSpansSection = bSet; } sal_Bool GetSpansSection() const { return bSpansSection; } void SetPopStack( sal_Bool bSet ) { bPopStack = bSet; } sal_Bool GetPopStack() const { return bPopStack; } sal_Bool HasSaveDocContext() const { return pSaveDocContext!=0; } _HTMLAttrContext_SaveDoc *GetSaveDocContext( sal_Bool bCreate=sal_False ); const SfxItemSet *GetFrmItemSet() const { return pFrmItemSet; } SfxItemSet *GetFrmItemSet( SwDoc *pCreateDoc ); void SetFinishPREListingXMP( sal_Bool bSet ) { bFinishPREListingXMP = bSet; } sal_Bool IsFinishPREListingXMP() const { return bFinishPREListingXMP; } void SetRestartPRE( sal_Bool bSet ) { bRestartPRE = bSet; } sal_Bool IsRestartPRE() const { return bRestartPRE; } void SetRestartXMP( sal_Bool bSet ) { bRestartXMP = bSet; } sal_Bool IsRestartXMP() const { return bRestartXMP; } void SetRestartListing( sal_Bool bSet ) { bRestartListing = bSet; } sal_Bool IsRestartListing() const { return bRestartListing; } void SetAppendMode( SwHTMLAppendMode eMode=AM_NORMAL ) { eAppend = eMode; } SwHTMLAppendMode GetAppendMode() const { return eAppend; } }; typedef _HTMLAttrContext *_HTMLAttrContextPtr; SV_DECL_PTRARR( _HTMLAttrContexts, _HTMLAttrContextPtr, 5, 5 ) class HTMLTable; class SwCSS1Parser; class SwHTMLNumRuleInfo; typedef ImageMap *ImageMapPtr; SV_DECL_PTRARR_DEL( ImageMaps, ImageMapPtr, 1, 1 ) typedef SwFrmFmt *SwFrmFmtPtr; SV_DECL_PTRARR( SwHTMLFrmFmts, SwFrmFmtPtr, 2, 2 ) #define HTML_CNTXT_PROTECT_STACK 0x0001 #define HTML_CNTXT_STRIP_PARA 0x0002 #define HTML_CNTXT_KEEP_NUMRULE 0x0004 #define HTML_CNTXT_HEADER_DIST 0x0008 #define HTML_CNTXT_FOOTER_DIST 0x0010 #define HTML_CNTXT_KEEP_ATTRS 0x0020 #define CONTEXT_FLAGS_ABSPOS \ (HTML_CNTXT_PROTECT_STACK | \ HTML_CNTXT_STRIP_PARA) #define HTML_FF_BOX 0x0001 #define HTML_FF_BACKGROUND 0x0002 #define HTML_FF_PADDING 0x0004 #define HTML_FF_DIRECTION 0x0008 class SwHTMLParser : public SfxHTMLParser, public SwClient { friend class _SectionSaveStruct; friend class _CellSaveStruct; friend class _CaptionSaveStruct; String aPathToFile; String sBaseURL; String sSaveBaseURL; String aBasicLib; String aBasicModule; String aScriptSource; // Inhalt des aktuellen Script-Blocks String aScriptType; // Type des gelesenen Scripts (StarBasic/VB/JAVA) String aScriptURL; // URL eines Scripts String aStyleSource; // Inhalt des aktuellen Style-Sheets String aContents; // Text des akteullen Marquee, Feldes etc. String sTitle; String aUnknownToken; // ein gestartetes unbekanntes Token String aBulletGrfs[MAXLEVEL]; String sJmpMark; SvUShorts aBaseFontStack; // Stack fuer // Bit 0-2: Fontgroesse (1-7) SvUShorts aFontStack; // Stack fuer , , // Bit 0-2: Fontgroesse (1-7) // Bit 15: Fontfarbe wurde gesetzt _HTMLAttrs aSetAttrTab;// "geschlossene", noch nicht gesetzte Attr. _HTMLAttrs aParaAttrs; // vorlauefige Absatz-Attribute _HTMLAttrTable aAttrTab; // "offene" Attribute _HTMLAttrContexts aContexts;// der aktuelle Attribut/Token-Kontext SwHTMLFrmFmts aMoveFlyFrms;// Fly-Frames, deren Anker verschoben wird SvXub_StrLens aMoveFlyCnts;// und deren Content-Positionen SwApplet_Impl *pAppletImpl; // das aktuelle Applet SwCSS1Parser *pCSS1Parser; // der Style-Sheet-Parser SwHTMLNumRuleInfo *pNumRuleInfo; SwPendingStack *pPendStack; SwDoc *pDoc; SwPaM *pPam; // SwPosition duerfte doch reichen, oder ?? ViewShell *pActionViewShell; // ViewShell, an der das StartAction // gerufen wurde. SwNodeIndex *pSttNdIdx; HTMLTable *pTable; // die aktuelle "auesserste" Tabelle SwHTMLForm_Impl *pFormImpl;// die aktuelle Form SdrObject *pMarquee; // aktuelles Marquee SwField *pField; // aktuelles Feld ImageMap *pImageMap; // aktuelle Image-Map ImageMaps *pImageMaps;// alle gelesenen Image-Maps SwHTMLFootEndNote_Impl *pFootEndNoteImpl; Size aHTMLPageSize; // die Seitengroesse der HTML-Vorlage sal_uInt32 aFontHeights[7]; // die Font-Hoehen 1-7 sal_uInt32 nScriptStartLineNr; // Zeilennummer eines Script-Blocks ULONG nEventId; sal_uInt16 nBaseFontStMin; // sal_uInt16 nFontStMin; // sal_uInt16 nDefListDeep; // sal_uInt16 nFontStHeadStart; // Elemente im Font-Stack bei sal_uInt16 nSBModuleCnt; // Zaehler fuer Basic-Module sal_uInt16 nMissingImgMaps; // Wie viele Image-Maps fehlen noch? sal_uInt16 nParaCnt; sal_uInt16 nContextStMin; // Untergrenze fuer PopContext sal_uInt16 nContextStAttrMin; // Untergrenze fuer Attributierung sal_uInt16 nSelectEntryCnt; // Anzahl der Eintraege der akt. Listbox sal_uInt16 nOpenParaToken; // ein geoeffnetes Absatz-Element enum JumpToMarks { JUMPTO_NONE, JUMPTO_MARK, JUMPTO_TABLE, JUMPTO_FRAME, JUMPTO_REGION, JUMPTO_GRAPHIC } eJumpTo; #ifdef DBG_UTIL sal_uInt16 nContinue; // Tiefe der Continue-Aufrufe #endif SvxAdjust eParaAdjust; // Ausrichtung des aktuellen Absatz HTMLScriptLanguage eScriptLang; // die aktuelle Script-Language sal_Bool bOldIsHTMLMode : 1; // War's mal ein HTML-Dokument? sal_Bool bDocInitalized : 1; // Dokument bzw. Shell wurden initialisiert // Flag um doppeltes init durch Rekursion // zu verhindern. sal_Bool bViewCreated : 1; // die View wurde schon erzeugt (asynchron) sal_Bool bSetCrsr : 1; // Crsr wieder auf den Anfang setzen sal_Bool bSetModEnabled : 1; sal_Bool bInFloatingFrame : 1; // Wir sind in einen Floating ::com::sun::star::frame::Frame sal_Bool bInField : 1; sal_Bool bKeepUnknown : 1; // unbekannte/nicht unterstuetze Tokens beh. // 8 sal_Bool bCallNextToken : 1; // In Tabellen: NextToken in jedem Fall rufen sal_Bool bIgnoreRawData : 1; // Inhalt eines Scripts/Styles ignorieren. sal_Bool bLBEntrySelected : 1; // Ist der aktuelle Listbox-Eintrag selekt. sal_Bool bTAIgnoreNewPara : 1; // naechstes LF in TextArea ignorieren? sal_Bool bFixMarqueeWidth : 1; // Groesse einer Laufschrift anpassen? sal_Bool bFixMarqueeHeight : 1; sal_Bool bUpperSpace : 1; // obererer Absatz-Abstand wird benoetigt sal_Bool bNoParSpace : 1; // 16 sal_Bool bAnyStarBasic : 1; // gibt es ueberhaupt ein StarBasic-Modul sal_Bool bInNoEmbed : 1; // Wir sind in einem NOEMBED-Bereich sal_Bool bInTitle : 1; // Wir sind im Titel sal_Bool bChkJumpMark : 1; // springe ggfs. zu einem vorgegebenem Mark sal_Bool bUpdateDocStat : 1; sal_Bool bFixSelectWidth : 1; // Breite eines Selects neu setzen? sal_Bool bFixSelectHeight : 1; // Breite eines Selects neu setzen? sal_Bool bTextArea : 1; // 24 sal_Bool bSelect : 1; sal_Bool bInFootEndNoteAnchor : 1; sal_Bool bInFootEndNoteSymbol : 1; sal_Bool bIgnoreHTMLComments : 1; sal_Bool bRemoveHidden : 1; // the filter implementation might set the hidden flag /// the names corresponding to the DOCINFO field subtypes INFO[1-4] ::rtl::OUString m_InfoNames[4]; SfxViewFrame* pTempViewFrame; void DeleteFormImpl(); void DocumentDetected(); void Show(); void ShowStatline(); ViewShell *CallStartAction( ViewShell *pVSh = 0, sal_Bool bChkPtr = sal_True ); ViewShell *CallEndAction( sal_Bool bChkAction = sal_False, sal_Bool bChkPtr = sal_True ); ViewShell *CheckActionViewShell(); DECL_LINK( AsyncCallback, void* ); // Attribute am Dok setzen void _SetAttr( sal_Bool bChkEnd, sal_Bool bBeforeTable, _HTMLAttrs *pPostIts ); inline void SetAttr( sal_Bool bChkEnd = sal_True, sal_Bool bBeforeTable = sal_False, _HTMLAttrs *pPostIts = 0 ) { if( aSetAttrTab.Count() || aMoveFlyFrms.Count() ) _SetAttr( bChkEnd, bBeforeTable, pPostIts ); } _HTMLAttr **GetAttrTabEntry( sal_uInt16 nWhich ); // Einen neuen Textknoten an PaM-Position anlegen sal_Bool AppendTxtNode( SwHTMLAppendMode eMode=AM_NORMAL, sal_Bool bUpdateNum=sal_True ); void AddParSpace(); // Ein Attribut beginnen/beenden // ppDepAttr gibt einen Attribut-Tabellen-Eintrag an, dessen Attribute // gesetzt sein muessen, bevor das Attribut beendet werden darf void NewAttr( _HTMLAttr **ppAttr, const SfxPoolItem& rItem ); void EndAttr( _HTMLAttr *pAttr, _HTMLAttr **ppDepAttr=0, sal_Bool bChkEmpty=sal_True ); void DeleteAttr( _HTMLAttr* pAttr ); void EndContextAttrs( _HTMLAttrContext *pContext, sal_Bool bRemove=sal_False ); void SaveAttrTab( _HTMLAttrTable& rNewAttrTab ); void SplitAttrTab( const SwPosition& rNewPos ); void SplitAttrTab( _HTMLAttrTable& rNewAttrTab, sal_Bool bMoveEndBack = sal_True ); void RestoreAttrTab( const _HTMLAttrTable& rNewAttrTab, sal_Bool bSetNewStart = sal_False ); void InsertAttr( const SfxPoolItem& rItem, sal_Bool bLikePara = sal_False, sal_Bool bInsAtStart=sal_False ); void InsertAttrs( _HTMLAttrs& rAttrs ); sal_Bool DoPositioning( SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo, _HTMLAttrContext *pContext ); sal_Bool CreateContainer( const String& rClass, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo, _HTMLAttrContext *pContext ); sal_Bool EndSection( sal_Bool bLFStripped=sal_False ); void InsertAttrs( SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo, _HTMLAttrContext *pContext, sal_Bool bCharLvl=sal_False ); void InsertAttr( _HTMLAttr **ppAttr, const SfxPoolItem & rItem, _HTMLAttrContext *pCntxt ); void SplitPREListingXMP( _HTMLAttrContext *pCntxt ); void FixHeaderFooterDistance( sal_Bool bHeader, const SwPosition *pOldPos ); void EndContext( _HTMLAttrContext *pContext ); void ClearContext( _HTMLAttrContext *pContext ); const SwFmtColl *GetCurrFmtColl() const; SwTwips GetCurrentBrowseWidth(); SwHTMLNumRuleInfo& GetNumInfo() { return *pNumRuleInfo; } // --> OD 2008-04-02 #refactorlists# // add parameter void SetNodeNum( sal_uInt8 nLevel, bool bCountedInList ); // <-- // Verwalten von Absatz-Vorlagen // die Vorlagen auf dem Stack bzw. deren Attribute setzen void SetTxtCollAttrs( _HTMLAttrContext *pContext = 0 ); void InsertParaAttrs( const SfxItemSet& rItemSet ); // Verwalten des Attribut-Kontexts // aktuellen Kontext merken inline void PushContext( _HTMLAttrContext *pCntxt ); // den obersten/spezifizierten Kontext holen, aber nicht ausserhalb // des Kontexts mit Token nLimit suchen. Wenn bRemove gesetzt ist, // wird er entfernt _HTMLAttrContext *PopContext( sal_uInt16 nToken=0, sal_uInt16 nLimit=0, sal_Bool bRemove=sal_True ); inline const _HTMLAttrContext *GetTopContext() const; sal_Bool GetMarginsFromContext( sal_uInt16 &nLeft, sal_uInt16 &nRight, short& nIndent, sal_Bool bIgnoreCurrent=sal_False ) const; sal_Bool GetMarginsFromContextWithNumBul( sal_uInt16 &nLeft, sal_uInt16 &nRight, short& nIndent ) const; void GetULSpaceFromContext( sal_uInt16 &rUpper, sal_uInt16 &rLower ) const; void MovePageDescAttrs( SwNode *pSrcNd, ULONG nDestIdx, sal_Bool bFmtBreak ); // Behandlung von Tags auf Absatz-Ebene //

und

bis

void NewPara(); void EndPara( sal_Bool bReal = sal_False ); void NewHeading( int nToken ); void EndHeading(); //
,
und
    void NewTxtFmtColl( int nToken, sal_uInt16 nPoolId );
    void EndTxtFmtColl( int nToken );

    // 
und
void NewDivision( int nToken ); void EndDivision( int nToken ); // Fly-Frames einfuegen/verlassen void InsertFlyFrame( const SfxItemSet& rItemSet, _HTMLAttrContext *pCntxt, const String& rId, sal_uInt16 nFlags ); void SaveDocContext( _HTMLAttrContext *pCntxt, sal_uInt16 nFlags, const SwPosition *pNewPos ); void RestoreDocContext( _HTMLAttrContext *pCntxt ); // alle durch
aufgespannten Bereiche verlassen sal_Bool EndSections( sal_Bool bLFStripped ); // void NewMultiCol(); void EndMultiCol(); // void NewMarquee( HTMLTable *pCurTable=0 ); void EndMarquee(); void InsertMarqueeText(); // Behandluung von Listen // Numerierungs
    und Aufzaehlungs-Listen