summaryrefslogtreecommitdiff
path: root/sw/source/filter/ww8/ww8par.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/filter/ww8/ww8par.hxx')
-rw-r--r--sw/source/filter/ww8/ww8par.hxx1287
1 files changed, 1287 insertions, 0 deletions
diff --git a/sw/source/filter/ww8/ww8par.hxx b/sw/source/filter/ww8/ww8par.hxx
new file mode 100644
index 000000000000..8c68d6f8809b
--- /dev/null
+++ b/sw/source/filter/ww8/ww8par.hxx
@@ -0,0 +1,1287 @@
+/*************************************************************************
+ *
+ * $RCSfile: ww8par.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 17:14:58 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _WW8PAR_HXX
+#define _WW8PAR_HXX
+
+
+//#ifndef _COM_SUN_STAR_DRAWING_XSHAPE_HPP_
+//#include <com/sun/star/drawing/XShape.hpp>
+//#endif
+//#ifndef _COM_SUN_STAR_FORM_XFORMCOMPONENT_HPP_
+//#include <com/sun/star/form/XFormComponent.hpp>
+//#endif
+//#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
+//#include <com/sun/star/beans/XPropertySet.hpp>
+//#endif
+
+#ifndef _STRING_HXX //autogen
+#include <tools/string.hxx>
+#endif
+#ifndef _VCL_COLOR_HXX
+#include <vcl/color.hxx>
+#endif
+#ifndef _SV_FONTTYPE_HXX //autogen
+#include <vcl/fonttype.hxx>
+#endif
+#ifndef _SVSTOR_HXX //autogen
+#include <so3/svstor.hxx>
+#endif
+
+#ifndef _FLTSHELL_HXX
+#include <fltshell.hxx> // fuer den Attribut Stack
+#endif
+#ifndef _WW8STRUC_HXX
+#include <ww8struc.hxx> // WW8_BRC ( Forward-Declaration mit anschliessender
+#endif // Benutzung von WW8_BRC[4] in Deklaration will der
+ // doofe Os2Blci nicht )
+#ifndef _WW8SCAN_HXX
+#include <ww8scan.hxx> // WW8Fib
+#endif
+
+#ifndef _WW8GLSY_HXX
+#include <ww8glsy.hxx>
+#endif
+
+#ifndef _MSDFFIMP_HXX
+#include <svx/msdffimp.hxx>
+#endif
+
+#ifndef _MSOCXIMP_HXX
+#include <msocximp.hxx>
+#endif
+
+
+#define WW8_ASCII2STR(s) String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM(s))
+
+
+class SvStringsDtor;
+class SwDoc;
+class SwPaM;
+class SfxPoolItem;
+class SwTxtFmtColl;
+class SwPageDesc;
+class SvxBoxItem;
+class SwFmt;
+class SwNodeIndex;
+class SwFlyFrmFmt;
+class SvxTabStopItem;
+class SwAttrSet;
+class SwNumRule;
+class SwFrmFmt;
+
+//class WW8CtrlStack;
+class SwFltControlStack;
+//class WW8EndStack;
+class SwFltEndStack;
+class SwWW8StyInf;
+class WW8Fib;
+class WW8PLCFMan;
+struct WW8PLCFManResult;
+class WW8Fonts;
+class WW8RStyle;
+class WW8PLCF_HdFt;
+class Plcx_Fkp;
+class WW8PLCFx_SEPX;
+class WW8Dop;
+class WW8ScannerBase;
+struct WW8FieldDesc;
+struct WW8FlyPara;
+struct WW8SwFlyPara;
+struct WmfFileHd;
+struct WW8_PIC;
+class WW8TabDesc;
+struct WW8_SHD;
+struct WW8_OLST;
+class SwNumFmt;
+struct WW8_ANLD;
+struct WW8_ANLV;
+struct WW8_DO;
+struct WW8_DPHEAD;
+struct WW8_FSPA;
+class Plc1;
+class SwDrawFrmFmt;
+class SdrModel;
+class SdrPage;
+class SdrObjList;
+class SdrObject;
+class SdrTextObj;
+class Size;
+class EditEngine;
+struct SwPosition;
+class SvShorts;
+class WW8ReaderSave;
+struct WW8PicDesc;
+class Graphic;
+//class String;
+class SwFieldType;
+class SvStorage;
+// alt: class SvStorageRef;
+class SwFlyFrmFmt;
+class SwAttrSet;
+class GDIMetaFile;
+struct ESelection;
+class SfxItemSet;
+struct WW8PLCFxDesc;
+
+struct WW8ULSpaceData;
+class SdrAttrObj;
+struct WW8ULSpaceData;
+
+namespace com{namespace sun {namespace star{
+ namespace beans{ class XPropertySet;}
+ namespace form { class XFormComponent;}
+ namespace drawing{class XShape;}
+ namespace lang{class XMultiServiceFactory;}
+}}}
+
+//#define WW8_CHARBUF_SIZE 1040 // Lese-Puffer fuer nackten Text
+
+// defines nur fuer die WW8-variable der INI-Datei
+
+#define WW8FL_NO_TEXT 1
+#define WW8FL_NO_STYLES 2
+#define WW8FL_NO_ZSTYLES 4 // keine Zeichenstyles importieren
+#define WW8FL_NO_APO 8
+#define WW8FL_NO_HDFT 0x10
+#define WW8FL_NO_FTN 0x20
+#define WW8FL_NO_FLD 0x40 // keine Felder
+#define WW8FL_NO_GRAF 0x80
+#define WW8FL_NO_DEFTABS 0x100 // keine impliziten Tabs
+#define WW8FL_NO_LRUL 0x200
+
+
+#define WW8FL_NO_DEFSTYLES 0x400 // falls gestetzt, werden fuer Writer-Def-Styles
+ // neue Styles mit den WW8-Def-Style-Eigenschaften
+ // erzeugt, statt die Writer-Standards zu ueberschreiben
+
+#define WW8FL_NO_TABLE 0x800
+#define WW8FL_NO_OUTLINE 0x1000
+#define WW8FL_NO_NUMRULE 0x2000
+#define WW8FL_NO_IMPLPASP 0x4000 // no implicit para space
+#define WW8FL_NO_GRAFLAYER 0x8000
+#define WW8FL_NO_COMPLEX 0x10000
+#define WW8FL_NO_OLE 0x20000
+#define WW8FL_OLE_TO_GRAF 0x40000
+#define WW8FL_NO_VCCONTROLS 0x80000
+#define WW8FL_NO_STD_STY_DYA 0x100000
+#define WW8FL_NO_COLS 0x200000
+#define WW8FL_NO_TOX 0x400000
+#define WW8FL_NO_IMPORT 0x20000000
+#define WW8FL_WRITE_TO_FILE 0x40000000
+#define WW8FL_NOWARN_COMPLEX 0x80000000
+
+// Zusatz-Filter-Flags, gueltig ab Winword 8
+#define WW8FL_NO_FLY_FOR_TXBX 1
+#define EQUAL_TAB_BORDERDISTS 2
+
+
+//-----------------------------------------
+// Listen-Manager (ab Ver8)
+//-----------------------------------------
+
+struct WW8LSTInfo;
+struct WW8LFOInfo;
+
+typedef WW8LSTInfo* WW8LSTInfo_Ptr;
+typedef WW8LFOInfo* WW8LFOInfo_Ptr;
+// Zeichenattribute aus GrpprlChpx
+typedef SfxItemSet* WW8aISet[nWW8MaxListLevel ];
+// Zeichen Style Pointer
+typedef SwCharFmt* WW8aCFmt[ nWW8MaxListLevel ];
+// Redlining: match WinWord author ids to StarWriter author ids
+struct WW8AuthorInfo;
+typedef WW8AuthorInfo* WW8AuthorInfo_Ptr;
+
+SV_DECL_PTRARR_SORT_DEL(WW8LSTInfos, WW8LSTInfo_Ptr, 16,16);
+SV_DECL_PTRARR_DEL( WW8LFOInfos, WW8LFOInfo_Ptr, 16,16);
+SV_DECL_PTRARR_SORT_DEL(WW8AuthorInfos, WW8AuthorInfo_Ptr, 16,16);
+
+class SwWW8ImplReader;
+class WW8ListManager
+{
+ SwWW8ImplReader& rReader;
+ SwDoc& rDoc;
+ const WW8Fib& rFib;
+ SvStream& rSt;
+ WW8LSTInfos* pLSTInfos;// Daten aus PLCF LST, sortiert nach LST Id
+ WW8LFOInfos* pLFOInfos;// D. aus PLF LFO, sortiert genau wie im WW8 Stream
+ USHORT nLSTInfos;// geht schneller als Abfrage von pLSTInfos->Count()
+ USHORT nLFOInfos;// dito
+ BYTE* GrpprlHasSprm(USHORT nId, BYTE& rSprms, BYTE nLen);
+ WW8LSTInfo* GetLSTByStreamPos( USHORT nStreamPos ) const;
+ WW8LSTInfo* GetLSTByListId( ULONG nIdLst ) const;
+ BOOL ReadLVL( BYTE nLevel,
+ SwNumFmt& rNumFmt,
+ SfxItemSet*& rpItemSet,
+ USHORT nLevelStyle,
+ BOOL bSetStartNo );
+ void AdjustLVL( BYTE nLevel,
+ SwNumRule& rNumRule,
+ WW8aISet& rListItemSet,
+ WW8aCFmt& aCharFmt,
+ BOOL& bNewCharFmtCreated, // Ausgabe-Parameter
+ String aPrefix = aEmptyStr );
+ BOOL LFOequaltoLST(WW8LFOInfo& rLFOInfo);
+public:
+ WW8ListManager(SvStream& rSt_, SwWW8ImplReader& rReader_);
+ ~WW8ListManager();
+ SwNumRule* GetNumRuleForActivation(USHORT nLFOPosition) const;
+ BOOL IsSimpleList(USHORT nLFOPosition) const;
+};
+
+
+
+//-----------------------------------------
+// Stack
+//-----------------------------------------
+class SwWW8FltControlStack : public SwFltControlStack
+{
+ USHORT nToggleAttrFlags;
+protected:
+ virtual void SetAttrInDoc(const SwPosition& rTmpPos, SwFltStackEntry* pEntry);
+
+public:
+ SwWW8FltControlStack( SwDoc* pDo, ULONG nFieldFl ) :
+ SwFltControlStack( pDo, nFieldFl ), nToggleAttrFlags( 0 )
+ {}
+
+ BOOL IsFtnEdnBkmField(SwFmtFld& rFmtFld, USHORT& nBkmNo);
+ void NewAttr(const SwPosition& rPos, const SfxPoolItem& rAttr);
+ void SetToggleAttr( BYTE nId, BOOL bOn )
+ {
+ if( bOn )
+ nToggleAttrFlags |= (1 << nId);
+ else
+ nToggleAttrFlags &= ~(1 << nId);
+ }
+ USHORT GetToggleAttrFlags() const { return nToggleAttrFlags; }
+};
+
+
+
+//-----------------------------------------
+// Redlining Authors
+//-----------------------------------------
+struct WW8AuthorInfo
+{
+ USHORT nWWAuthorId;
+ USHORT nOurId;
+
+ WW8AuthorInfo(USHORT nWWAuthorId_, USHORT nOurId_ = 0):
+ nWWAuthorId( nWWAuthorId_ ),
+ nOurId( nOurId_ )
+ {}
+ BOOL operator==( const WW8AuthorInfo& rEntry ) const
+ {
+ return (nWWAuthorId == rEntry.nWWAuthorId);
+ }
+ BOOL operator<( const WW8AuthorInfo& rEntry ) const
+ {
+ return (nWWAuthorId < rEntry.nWWAuthorId);
+ }
+};
+
+
+
+//-----------------------------------------
+// Mini-Merker fuer einige Flags
+//-----------------------------------------
+class WW8ReaderSave
+{
+ SwPosition aTmpPos;
+ SwWW8FltControlStack* pOldStck;
+ WW8PLCFxSaveAll aPLCFxSave;
+ WW8PLCFMan* pOldPlcxMan;
+
+ WW8FlyPara* pWFlyPara;
+ WW8SwFlyPara* pSFlyPara;
+ WW8TabDesc* pTableDesc;
+ USHORT nAktColl;
+ sal_Unicode cSymbol;
+ BOOL bIgnoreText : 1;
+ BOOL bDontCreateSep : 1;
+ BOOL bSymbol : 1;
+ BOOL bHdFtFtnEdn : 1;
+ BOOL bApo : 1;
+ BOOL bTxbxFlySection: 1;
+ BOOL bTable : 1;
+ BOOL bTableInApo : 1;
+ BOOL bAnl : 1;
+public:
+ WW8ReaderSave( SwWW8ImplReader* pRdr, WW8_CP nStart=-1 );
+ void Restore( SwWW8ImplReader* pRdr );
+};
+
+
+
+enum eF_ResT{ F_OK, F_TEXT, F_TAGIGN, F_TAGTXT, F_READ_FSPA };
+
+struct SwWW8Shade{
+ Color aColor;
+ BOOL bWhiteText;
+ SwWW8Shade( BOOL bVer67, const WW8_SHD& rSHD );
+};
+
+
+//-----------------------------------------
+// Formulas
+//-----------------------------------------
+enum SwWw8ControlType
+{
+ WW8_CT_EDIT,
+ WW8_CT_CHECKBOX,
+ WW8_CT_COMBOBOX
+};
+
+
+class WW8FormulaControl : public OCX_Control
+{
+public:
+ WW8FormulaControl(const UniString& sN,SwWW8ImplReader &rR)
+ : OCX_Control(sN), rRdr(rR) {}
+ void WW8FormulaControl::SetOthersFromDoc(com::sun::star::uno::Reference <com::sun::star::form::XFormComponent> &rFComp,
+ com::sun::star::awt::Size &rSz,
+ com::sun::star::uno::Reference <com::sun::star::beans::XPropertySet> &rPropSet);
+
+ UINT8 fToolTip:1;
+ UINT8 fNoMark:1;
+ UINT8 fUseSize:1;
+ UINT8 fNumbersOnly:1;
+ UINT8 fDateOnly:1;
+ UINT8 fUnused:3;
+ UINT16 nSize;
+
+ UINT16 hpsCheckBox;
+ UINT16 nChecked;
+
+ UniString sTitle;
+ UniString sDefault;
+ UniString sFormatting;
+ UniString sHelp;
+ UniString sToolTip;
+
+ void Read(SwWw8ControlType nWhich,SvStream *pD);
+private:
+ SwWW8ImplReader &rRdr;
+};
+
+class WW8FormulaCheckBox: public WW8FormulaControl
+{
+public:
+ WW8FormulaCheckBox(SwWW8ImplReader &rR)
+ : WW8FormulaControl( WW8_ASCII2STR( "CheckBox" ), rR)
+ {}
+ BOOL Convert(const com::sun::star::uno::Reference <com::sun::star::lang::XMultiServiceFactory> &rServiceFactory,
+ com::sun::star::uno::Reference <com::sun::star::form::XFormComponent> &rFComp,com::sun::star::awt::Size &rSz);
+
+};
+
+class WW8FormulaEditBox: public WW8FormulaControl
+{
+public:
+ WW8FormulaEditBox(SwWW8ImplReader &rR)
+ : WW8FormulaControl( WW8_ASCII2STR( "TextField" ) ,rR)
+ {}
+ BOOL Convert(const com::sun::star::uno::Reference <com::sun::star::lang::XMultiServiceFactory> &rServiceFactory,
+ com::sun::star::uno::Reference <com::sun::star::form::XFormComponent> &rFComp,com::sun::star::awt::Size &rSz);
+
+};
+
+class SwImportControls : public SwImportOCX
+{
+public:
+ SwImportControls( SfxObjectShell *pDSh,SwPaM *pP ) :
+ SwImportOCX( pDSh,pP ) {}
+ BOOL InsertFormula( WW8FormulaControl &rFormula,
+ com::sun::star::uno::Reference <com::sun::star::drawing::XShape> *pShapeRef=0 );
+};
+
+class SwMSDffManager : public SvxMSDffManager
+{
+ SwWW8ImplReader& rReader;
+ virtual BOOL GetOLEStorageName( long nOLEId, String& rStorageName,
+ SvStorageRef& rSrcStorage,
+ SvStorageRef& rDestStorage ) const;
+ virtual BOOL ShapeHasText( ULONG nShapeId, ULONG nFilePos ) const;
+// virtual void ProcessClientAnchor2( SvStream& rStData, DffRecordHeader& rHd, void* pData, DffObjData& );
+
+public:
+ SwMSDffManager( SwWW8ImplReader& rRdr );
+ static UINT32 GetFilterFlags();
+};
+
+
+//-----------------------------------------
+// Storage-Reader
+//-----------------------------------------
+class SwWW8ImplReader
+{
+friend class WW8RStyle;
+friend class WW8TabDesc;
+friend class WW8ReaderSave;
+friend struct WW8FlyPara;
+friend struct WW8SwFlyPara;
+friend class WW8FlySet;
+friend class SwMSDffManager;
+friend class WW8FormulaControl;
+
+ SvStorage* pStg; // Input-Storage
+ SvStream* pStrm; // Input-(Storage)Stream
+ SvStream* pTableStream; // Input-(Storage)Stream
+ SvStream* pDataStream; // Input-(Storage)Stream
+
+// allgemeines
+ SwDoc& rDoc;
+ SwPaM* pPaM;
+
+ SwWW8FltControlStack* pCtrlStck; // Stack fuer die Attribute
+ SwFltEndStack* pEndStck; // End-Stack fuer die Attribute
+ SwWW8FltControlStack* pRefFldStck; // for Reference Fields
+
+// BYTE* pCharBuf; // Puffer fuer nackten Text
+ SwImportControls *pFormImpl; // Control-Implementierung
+
+ SwFlyFrmFmt* pFlyFmtOfJustInsertedGraphic;
+ WW8Fib* pWwFib;
+ WW8Fonts* pFonts;
+ WW8Dop* pWDop;
+ WW8ListManager* pLstManager;
+ WW8ScannerBase* pSBase;
+ WW8PLCFMan* pPlcxMan;
+
+ WW8RStyle* pStyles; // Pointer auf die Style-Einleseklasse
+ SwFmt* pAktColl; // gerade zu erzeugende Collection
+ // ( ist ausserhalb einer Style-Def immer 0 )
+ SfxItemSet* pAktItemSet; // gerade einzulesende Zeichenattribute
+ // ( ausserhalb des WW8ListManager Ctor's immer 0 )
+ SwWW8StyInf* pCollA; // UEbersetzungs-Array der Styles
+ const SwTxtFmtColl* pDfltTxtFmtColl; // Default
+ SwFmt* pStandardFmtColl; // "Standard"
+
+ SwPageDesc* pPageDesc; // fuer uebernommene KF-Zeilen
+ WW8PLCF_HdFt* pHdFt; // Pointer auf Header / Footer - Scannerklasse
+
+ WW8FlyPara* pWFlyPara; // WW-Parameter
+ WW8SwFlyPara* pSFlyPara; // daraus erzeugte Sw-Parameter
+
+ WW8TabDesc* pTableDesc; // Beschreibung der Tabelleneigenschaften
+
+ SwNumRule* pNumRule; // fuer Nummerierung / Aufzaehlungen im Text
+ WW8_OLST* pNumOlst; // Gliederung im Text
+ SwNodeIndex* pBehindSection;// Node-Index zum Zuruecksetzen des PaM nach einem Bereich
+ SwSection* pNewSection; // last Section that was inserted into the doc
+
+ SwNode* pNode_FLY_AT_CNTNT; // set: WW8SwFlyPara() read: CreateSwTable()
+
+ SwDrawFrmFmt *pDrawFmt; // wie FlyFrmFmt
+ SdrModel* pDrawModel;
+ SdrPage* pDrawPg;
+ SdrObjList* pDrawGroup;
+ SvShorts* pDrawHeight; // Welches Objekt ueberdeckt welches ?
+ EditEngine* pDrawEditEngine;
+
+ SwFieldType* pNumFldType; // fuer Nummernkreis
+
+ SvxMSDffManager* pMSDffManager;
+
+ SvStringsDtor* pAtnNames;
+
+ WW8AuthorInfos* pAuthorInfos;
+
+ SwNodeIndex* pLastPgDeskIdx;// for inserting a section when Ft-/End-Note
+ // with flag 'on end of section' set
+
+ // Ini-Flags:
+ ULONG nIniFlags; // Flags aus der writer.ini
+ ULONG nIniFlags1; // dito ( zusaetzliche Flags )
+// ULONG nIniHdSiz; // dito fuer Header
+ ULONG nIniFtSiz; // dito fuer Default-Size Footer
+ ULONG nFieldFlags; // dito fuer Feldern
+ ULONG nFieldTagAlways[3]; // dito fuers Taggen von Feldern
+ ULONG nFieldTagBad[3]; // dito fuers Taggen von nicht importierbaren F.
+
+ ULONG nLastFlyNode; // Node number of last imported Fly
+
+ ULONG nImportedGraphicsCount; // benoetigt fuer MakeUniqueGraphName()
+
+ ULONG nHdTextHeight; // Hoehe des eingelesenen Headers
+ ULONG nFtTextHeight; // Hoehe des eingelesenen Footers
+
+ ULONG nDrawObjOfs;
+ long nDrawCpO; // Anfang der Txbx-SubDocs
+
+ long nPicLocFc; // Picture Location in File (FC)
+ long nObjLocFc; // Object Location in File (FC)
+
+ INT32 nIniFlyDx; // X-Verschiebung von Flys
+ INT32 nIniFlyDy; // Y-Verschiebung von Flys
+
+ rtl_TextEncoding eTextCharSet; // Default-Charset fuer Text
+ rtl_TextEncoding eStructCharSet; // rtl_TextEncoding fuer interne Strukturen
+ rtl_TextEncoding eFontSrcCharSet; // Source-rtl_TextEncoding fuer aktuellen Font
+ rtl_TextEncoding eFontDstCharSet; // Dest-rtl_TextEncoding fuer aktuellen Font
+ rtl_TextEncoding eHardCharSet; // Hartes rtl_TextEncoding-Attribut
+
+ USHORT nProgress; // %-Angabe fuer Progressbar
+ USHORT nColls; // Groesse des Arrays
+ USHORT nAktColl; // gemaess WW-Zaehlung
+ USHORT nPageDescOffset; // fuer UpdatePageDescs
+ USHORT nDrawTxbx; // Nummer der Textbox ( noetig ?? )
+ USHORT nFldNum; // laufende Nummer dafuer
+ USHORT nLFOPosition;
+
+ short nActSectionNo; // aktuelle Abschnitts-Nummer (in CreateSep() gesetzt)
+ short nCharFmt; // gemaess WW-Zaehlung, <0 fuer keine
+ short nAlign2;
+ short nPgWidth;
+ short nPgTop; // fuer APOs
+ short nPgLeft; // Seitenraender, z.B. fuer APOs, Tabellen
+ short nPgRight; // dito
+
+ short nLeftParaMgn; // Absatz L-Space
+ short nTxtFirstLineOfst; // Absatz 1st line ofset
+
+ short nDrawXOfs, nDrawYOfs;
+ short nDrawXOfs2, nDrawYOfs2;
+
+ sal_Unicode cSymbol; // aktuell einzulesendes Symbolzeichen
+
+
+ BYTE nWantedVersion; // urspruenglich vom Writer
+ // angeforderte WW-Doc-Version
+
+
+ BYTE nSwNumLevel; // LevelNummer fuer Outline / Nummerierung
+ BYTE nWwNumType; // Gliederung / Nummerg / Aufzaehlg
+ BYTE nDrawHeaven, nDrawHell;
+ BYTE nListLevel;
+
+ BYTE nNfcPgn; // Formatting of PageNum
+ BYTE nPgChpDelim; // ChapterDelim from PageNum
+ BYTE nPgChpLevel; // ChapterLevel of Heading from PageNum
+
+ BYTE nCorrIhdt; // used in CreateSep()
+ BOOL bSectionHasATitlePage; // used in CreateSep()
+
+ BOOL bNew; // Neues Dokument ?
+ BOOL bReadNoTbl; // Keine Tabellen
+ BOOL bPgSecBreak; // Page- oder Sectionbreak ist noch einzufuegen
+ BOOL bSpec; // Special-Char im Text folgt
+ BOOL bObj; // Obj im Text
+ BOOL bApo; // FlyFrame, der wegen Winword APO eingefuegt wurde
+ BOOL bTxbxFlySection; // FlyFrame, der als Ersatz fuer Winword Textbox eingefuegt wurde
+ BOOL bHasBorder; // fuer Buendelung der Border
+ BOOL bSymbol; // z.B. Symbol statt Times
+ BOOL bIgnoreText; // z.B. fuer FieldVanish
+ BOOL bDontCreateSep; // e.g. when skipping result of multi-column index-field
+ BOOL bTable; // wird gerade eine Tabelle eingelesen
+ BOOL bTableInApo; // Table is contained in Apo
+ BOOL bWasTabRowEnd; // Tabelle : Row End Mark
+ BOOL bTxtCol; // TextFarbe direkt gesetzt
+ BOOL bShdTxtCol; // Textfarbe indirekt gesetzt ( Hintergrund sw )
+ BOOL bCharShdTxtCol; // Textfarbe indirekt gesetzt ( Zeichenhintergrund sw )
+ BOOL bAnl; // Nummerierung in Bearbeitung
+ // Anl heisst Autonumber level
+
+ BOOL bHdFtFtnEdn; // Spezialtext: Kopf- Fuss- usw.
+ BOOL bFtnEdn; // Fussnote oder Endnote
+ BOOL bIsHeader; // Text aus Header wird gelesen ( Zeilenhoehe )
+ BOOL bIsFooter; // Text aus Footer wird gelesen ( Zeilenhoehe )
+
+ BOOL bIsUnicode; // aktuelles Text-Stueck ist als 2-Bytiger-Unicode kodiert
+ // bitte NICHT als Bitfeld kodieren!
+
+ BOOL bCpxStyle; // Style im Complex Part
+ BOOL bStyNormal; // Style mit Id 0 wird gelesen
+ BOOL bWWBugNormal; // WW-Version nit Bug Dya in Style Normal
+ BOOL bNoAttrImport; // Attribute ignorieren zum Ignorieren v. Styles
+
+ // praktische Hilfsvariablen:
+ BOOL bVer67; // ( (6 == nVersion) || (7 == nVersion) );
+ BOOL bVer6; // (6 == nVersion);
+ BOOL bVer7; // (7 == nVersion);
+ BOOL bVer8; // (8 == nVersion);
+
+ BOOL bPgChpLevel; // ChapterLevel of Heading from PageNum
+ BOOL bEmbeddObj; // EmbeddField gelesen
+ BOOL bFloatingCtrl; // Whether to anchor imported controls as char or para
+
+ BOOL bAktAND_fNumberAcross; // current active Annotated List Deskriptor - ROW flag
+
+ BOOL bNoLnNumYet; // no Line Numbering has been activated yet (we import
+ // the very 1st Line Numbering and ignore the rest)
+ BOOL bRestartLnNumPerSection;
+
+
+
+
+//---------------------------------------------
+
+ void SetLastPgDeskIdx();
+
+ SwPageDesc* CreatePageDesc( SwPageDesc* pFirstPageDesc,
+ SwPaM** ppPaMWanted = 0 );
+ void RemoveCols( SwPageDesc& rPageDesc, SwFmtCol*& rpCol );
+ BOOL SetCols( SwFrmFmt* pFmt, const WW8PLCFx_SEPX* pSep,
+ USHORT nNettoWidth,
+ BOOL bTestOnly = FALSE );
+ void SetPage1( SwPageDesc* pPageDesc, SwFrmFmt &rFmt,
+ const WW8PLCFx_SEPX* pSep, USHORT nLIdx,
+ BOOL bIgnoreCols );
+ void SetHdFt( SwPageDesc* pPageDesc0, SwPageDesc* pPageDesc1,
+ const WW8PLCFx_SEPX* pSep, BYTE nIPara );
+ void GetPageULData( const WW8PLCFx_SEPX* pSep,
+ USHORT nLIdx,
+ BOOL bFirst,
+ WW8ULSpaceData& rData );
+ void SetPageULSpaceItems( SwFrmFmt &rFmt, WW8ULSpaceData& rData );
+
+ void SetPageBorder( SwPageDesc* pPageDesc0, SwPageDesc* pPageDesc1,
+ const WW8PLCFx_SEPX* pSep, USHORT nLIdx );
+ void SetUseOn( SwPageDesc* pPageDesc0, SwPageDesc* pPageDesc1,
+ const WW8PLCFx_SEPX* pSep, BYTE nHdFt );
+ void InsertSectionWithWithoutCols( SwPaM& rMyPaM, const SwFmtCol* pCol );
+ void CreateSep( const long nTxtPos );
+
+ void CopyPageDescHdFt( const SwPageDesc* pOrgPageDesc,
+ SwPageDesc* pNewPageDesc, BYTE nCode );
+
+ void UpdatePageDescs( USHORT nPageDescOffset );
+
+ void DeleteStk(SwFltControlStack* prStck);
+ void DeleteCtrlStk() { DeleteStk( pCtrlStck ); pCtrlStck = 0; }
+ void DeleteEndStk() { DeleteStk( pEndStck ); pEndStck = 0; }
+ void DeleteRefFldStk() { DeleteStk( pRefFldStck); pRefFldStck = 0; }
+
+ BOOL ReadChar( long nPosCp, long nCpOfs );
+ BOOL ReadPlainChars( long& rPos, long nEnd, long nCpOfs );
+ BOOL ReadChars( long& rPos, long nNextAttr, long nTextEnd, long nCpOfs );
+
+
+ void ReadPlainText( long nStartCp, long nTextLen );
+ void ProcessAktCollChange( WW8PLCFManResult& rRes,
+ BOOL* pStartAttr,
+ BOOL bCallProcessSpecial );
+ long ReadTextAttr( long& rTxtPos, BOOL& rbStartLine );
+ void ReadAttrs( long& rNext, long& rTxtPos, BOOL& rbStartLine );
+ void ReadAttrEnds( long& rNext, long& rTxtPos );
+ void ReadText( long nStartCp, long nTextLen, short nType );
+
+ void ReadRevMarkAuthorStrTabl( SvStream& rStrm, INT32 nTblPos, INT32 nTblSiz, SwDoc& rDoc );
+
+ void Read_HdFtFtnText( const SwNodeIndex* pSttIdx, long nStartCp,
+ long nLen, short nType );
+ void Read_HdFt1( BYTE nPara, BYTE nWhichItems, SwPageDesc* pPD );
+ void Read_HdFtText( long nStartCp, long nLen, SwPageDesc* pPD,
+ BOOL bUseLeft, BOOL bFooter );
+
+ BYTE* ReadUntilToken( USHORT& rStrLen, USHORT nMaxLen, BYTE nToken );
+ void ImportTox( int nFldId, String aStr );
+
+ void EndSprm( USHORT nId );
+ void NewAttr( const SfxPoolItem& rAttr );
+
+ BOOL GetFontParams( USHORT, FontFamily&, String&, FontPitch&, rtl_TextEncoding& );
+ BOOL SetNewFontAttr( USHORT nFCode, BOOL bSetEnums=TRUE );
+ void ResetCharSetVars();
+
+ const SfxPoolItem* GetFmtAttr( USHORT nWhich );
+ BYTE HdFtCorrectPara( BYTE nPara );
+ BOOL JoinNode( SwPaM* pPam, BOOL bStealAttr = FALSE );
+
+ BOOL IsBorder( const WW8_BRC* pbrc, BOOL bChkBtwn=FALSE );
+ BOOL SetBorder( SvxBoxItem& pBox, const WW8_BRC* pbrc, BOOL bChkBtwn=FALSE );
+ void GetBorderDistance( WW8_BRC* pbrc, Rectangle& rInnerDist );
+ BOOL SetShadow( SvxShadowItem& rShadow, const SvxBoxItem& rBox, const WW8_BRC pbrc[4] );
+
+ void SetFlyBordersShadow( SfxItemSet& rFlySet,
+ const WW8_BRC pbrc[4], USHORT nInnerMgn );
+
+ BOOL MatchSdrBoxIntoFlyBoxItem( const Color& rLineColor,
+ MSO_LineStyle eLineStyle,
+ USHORT nLineWidth,
+ SvxBoxItem& rBox );
+ void MatchSdrItemsIntoFlySet( SdrObject* pSdrObj,
+ SfxItemSet& aFlySet,
+ MSO_LineStyle eLineStyle,
+ Rectangle& rInnerDist,
+ BOOL bFixSize );
+ void MatchWrapDistancesIntoFlyFmt( SvxMSDffImportRec* pRecord,
+ SwFrmFmt* pFlyFmt );
+
+ void SetCropAtGrfNode( SvxMSDffImportRec* pRecord,
+ SwFrmFmt* pFlyFmt,
+ WW8_FSPA* pF );
+
+ BOOL StartApo( BYTE* pSprm29, BOOL bNowStyleApo );
+ void StopApo();
+ BOOL TestSameApo( BYTE* pSprm29, BOOL bNowStyleApo );
+ BYTE* TestApo( BOOL& rbStartApo, BOOL& rbStopApo, BOOL& rbNowStyleApo,
+ BOOL bInTable, BOOL bTableRowEnd,
+ BOOL bStillInTable );
+ BOOL ProcessSpecial( BOOL bAllEnd, BOOL* pbReSync );
+
+ ULONG ReadWmfHeader( WmfFileHd* pHd, long nPos );
+ BOOL ReadGrafFile( String& rFileName, Graphic*& rpGraphic,
+ const WW8_PIC& rPic, SvStream* pSt, ULONG nFilePos, BOOL* pDelIt );
+
+ SwFrmFmt* MakeGrafByFlyFmt( SdrTextObj* pReplaceTextObj,
+ const SwFrmFmt& rOldFmt,const WW8PicDesc& rPD,
+ const Graphic* pGraph, const String& rFileName,
+ const String& rGrName,const SfxItemSet& rGrfSet,
+ const BOOL bSetToBackground );
+ SwFrmFmt* MakeGrafNotInCntnt(const WW8PicDesc& rPD,
+ const Graphic* pGraph, const String& rFileName,
+ const String& rGrName,const SfxItemSet& rGrfSet );
+ SwFrmFmt* MakeGrafInCntnt(const WW8_PIC& rPic, const WW8PicDesc& rPD,
+ const Graphic* pGraph, const String& rFileName,
+ const String& rGrName,const SfxItemSet& rGrfSet );
+
+ SwFrmFmt* ImportGraf1( WW8_PIC& rPic, SvStream* pSt, ULONG nFilePos );
+ SwFrmFmt* ImportGraf( SdrTextObj* pTextObj = 0,
+ SwFrmFmt* pFlyFmt = 0,
+ BOOL bSetToBackground = FALSE );
+ BOOL ImportURL(String &sURL,String &sMark,WW8_CP nStart);
+
+ SwFrmFmt* ImportOle( const Graphic* = 0, const SfxItemSet* pFlySet = 0 );
+
+ BOOL ImportFormulaControl(WW8FormulaControl &rBox,WW8_CP nStart,
+ SwWw8ControlType nWhich);
+
+ void ImportDop( BOOL bNewDoc );
+ void SetImplicitTab();
+ ULONG LoadDoc1( SwPaM& rPaM ,WW8Glossary *pGloss);
+
+ BOOL StartTable();
+ void TabCellEnd();
+ void StopTable();
+ short GetTableLeft();
+ BOOL IsInvalidOrToBeMergedTabCell() const;
+
+// Brush* Shade1( SwWW8Shade& rRet, WW8_SHD* pS );
+
+ ColorData GetCol( BYTE nIco );
+
+// Nummerierungen / Aufzaehlungen ( Autonumbered List Data Descriptor )
+// Liste: ANLD ( Autonumbered List Data Descriptor )
+// eine Ebene: ANLV ( Autonumber Level Descriptor )
+//
+// Chg7-8:
+// Listen sind in WW8 eigene Strukturen, die ueber folgende drei Tabellen
+// verwaltet werden: rglst, hpllfo und hsttbListNames
+// die Strukturen hierfuer sind: LSTF, LVLF, LFO LFOLVL
+
+ void SetAnlvStrings( SwNumFmt* pNum, WW8_ANLV* pAV, BYTE* pTxt,
+ BOOL bOutline );
+ void SetAnld( SwNumRule* pNumR, WW8_ANLD* pAD, BYTE nSwLevel, BOOL bOutLine );
+ void SetNumOlst( SwNumRule* pNumR, WW8_OLST* pO, BYTE nSwLevel );
+ SwNumRule* GetStyRule();
+
+ void StartAnl( BYTE* pSprm13 );
+ void NextAnlLine( BYTE* pSprm13, BYTE* pS12 = 0 );
+ void StopAnl( BOOL bGoBack = TRUE );
+
+// GrafikLayer
+
+ BOOL MakeUniqueGraphName(String& rName, const String& rFixedPart);
+
+ BOOL ReadGrafStart( void* pData, short nDataSiz, WW8_DPHEAD* pHd,
+ WW8_DO* pDo );
+ void InsertObj( SdrObject* pObj, short nWwHeight );
+ void ReadLine( WW8_DPHEAD* pHd, WW8_DO* pDo );
+ void ReadRect( WW8_DPHEAD* pHd, WW8_DO* pDo );
+ void ReadElipse( WW8_DPHEAD* pHd, WW8_DO* pDo );
+ void ReadArc( WW8_DPHEAD* pHd, WW8_DO* pDo );
+ void ReadPolyLine( WW8_DPHEAD* pHd, WW8_DO* pDo );
+ ESelection GetESelection( long nCpStart, long nCpEnd );
+ /*
+ void GetTxbxCharAttrs( SfxItemSet& rS, const WW8PLCFxDesc& rD, BOOL bONLYnPicLocFc );
+ void GetTxbxParaAttrs( SfxItemSet& rS, const WW8PLCFxDesc& rD );
+ */
+ void GetTxbxPapAndCharAttrs( SfxItemSet& rS, const WW8PLCFManResult& rRes );
+ //void InsertTxbxCharAttrs( long nStartCp, long nEndCp, BOOL bONLYnPicLocFc );
+ void InsertTxbxStyAttrs( SfxItemSet& rS, USHORT nColl );
+ //void InsertTxbxParaAttrs( long nStartCp, long nEndCp );
+ void InsertTxbxAttrs( long nStartCp, long nEndCp, BOOL bONLYnPicLocFc );
+
+ BOOL GetTxbxTextSttEndCp( long& rStartCp, long& rEndCp,
+ USHORT nTxBxS, USHORT nSequence );
+ BOOL GetTxbxText( String& rString, long StartCp, long nEndCp );
+ SwFrmFmt* InsertTxbxText(SdrTextObj* pTextObj,
+ Size* pObjSiz,
+ USHORT nTxBxS,
+ USHORT nSequence,
+ long nPosCp,
+ SwFrmFmt* pFlyFmt,
+ BOOL bMakeSdrGrafObj,
+ BOOL& rbEraseTextObj,
+ BOOL* pbTestTxbxContainsText = 0,
+ long* pnStartCp = 0,
+ long* pnEndCp = 0,
+ SvxMSDffImportRec* pRecord = 0);
+ BOOL TxbxChainContainsRealText( USHORT nTxBxS,
+ long& rStartCp,
+ long& rEndCp );
+ void ReadTxtBox( WW8_DPHEAD* pHd, WW8_DO* pDo );
+ void ReadCaptionBox( WW8_DPHEAD* pHd, WW8_DO* pDo );
+ void ReadGroup( WW8_DPHEAD* pHd, WW8_DO* pDo );
+ void ReadGrafPrimitive( short& rLeft, WW8_DO* pDo );
+ void ReadGrafLayer1( WW8PLCFspecial* pPF, long nGrafAnchorCp );
+ SdrObject* CreateContactObject( SwFlyFrmFmt* pFlyFmt );
+ SwFrmFmt* Read_GrafLayer( long nGrafAnchorCp );
+ void GrafikCtor();
+ void GrafikDtor();
+
+// anderes
+ String GetFieldResult( WW8FieldDesc* pF );
+ void QuoteChar( String& rStr, const sal_Unicode _c, BOOL bAllowCr );
+ void QuoteString( String& rStr, const String& rOrg );
+ void MakeTagString( String& rStr, const String& rOrg );
+ void Read_FieldIniFlags();
+ void UpdateFields();
+// void ConvertFName( String& rName );
+ void ConvertFFileName( String& rName, const String& rRaw );
+ long Read_F_Tag( WW8FieldDesc* pF );
+ void InsertTagField( const USHORT nId, const String& rTagText );
+ long ImportExtSprm( WW8PLCFManResult* pRes, BOOL bStart );
+ void ReadDocInfo();
+
+// Ver8-Listen
+
+ void RegisterNumFmtOnTxtNode( USHORT nActLFO,
+ BYTE nActLevel,
+ BOOL bSetAttr = TRUE );
+ void RegisterNumFmtOnStyle( SwWW8StyInf& rStyleInfo,
+ USHORT nActLFO = USHRT_MAX,
+ BYTE nActLevel = nWW8MaxListLevel );
+ void RegisterNumFmt(USHORT nActLFO, BYTE nActLevel);
+
+// Pictures mit Kode 100, die ueber MsoftbSpContainer abgespeichert sind.
+ BOOL WW8QuickHackForMSDFF_DirectBLIPImport( SvStream& rSt,
+ WW8_PIC& rPic,
+ Graphic& rData,
+ String& rGraphName);
+// spaeter zu ersetzen durch Aufruf in entsprechend erweiterten SvxMSDffManager
+
+
+ const String* GetAnnotationAuthor( short nId );
+
+ // Schnittstellen fuer die Toggle-Attribute
+ void SetToggleAttr( BYTE nAttrId, BOOL bOn );
+ void _ChkToggleAttr( USHORT nOldStyle81Mask, USHORT nNewStyle81Mask );
+
+ void ChkToggleAttr( USHORT nOldStyle81Mask, USHORT nNewStyle81Mask )
+ {
+ if( nOldStyle81Mask != nNewStyle81Mask &&
+ pCtrlStck->GetToggleAttrFlags() )
+ _ChkToggleAttr( nOldStyle81Mask, nNewStyle81Mask );
+ }
+
+public: // eigentlich private, geht aber leider nur public
+ void ConvertUFName( String& rName );
+
+ long Read_Ftn( WW8PLCFManResult* pRes, BOOL );
+ long Read_Field( WW8PLCFManResult* pRes, BOOL );
+ long Read_Book( WW8PLCFManResult* pRes, BOOL bStartAttr );
+ long Read_Piece( WW8PLCFManResult* pRes, BOOL bStartAttr );
+ long Read_And( WW8PLCFManResult* pRes, BOOL bStartAttr );
+
+ // Attribute
+
+ void Read_Special( USHORT, BYTE*, short nLen );
+ void Read_Obj( USHORT, BYTE*, short nLen );
+ void Read_PicLoc( USHORT nId, BYTE* pData, short nLen );
+ void Read_BoldUsw( USHORT nId, BYTE*, short nLen );
+ void Read_SubSuper( USHORT, BYTE*, short nLen );
+ void Read_SubSuperProp( USHORT, BYTE*, short nLen );
+ void Read_Underline( USHORT, BYTE*, short nLen );
+ void Read_TxtColor( USHORT, BYTE*, short nLen );
+ void Read_FontCode( USHORT, BYTE*, short nLen );
+ void Read_FontSize( USHORT, BYTE*, short nLen );
+ void Read_CharSet( USHORT nId, BYTE* pData, short nLen );
+ void Read_Language( USHORT, BYTE*, short nLen );
+ void Read_CColl( USHORT, BYTE*, short nLen );
+ void Read_Kern( USHORT, BYTE* pData, short nLen );
+ void Read_FontKern( USHORT, BYTE* pData, short nLen );
+ void Read_Invisible( USHORT, BYTE* pData, short nLen );
+
+ void Read_NoLineNumb( USHORT nId, BYTE* pData, short nLen );
+
+ void Read_LR( USHORT nId, BYTE*, short nLen );
+ void Read_UL( USHORT nId, BYTE*, short nLen );
+ void Read_LineSpace( USHORT, BYTE*, short nLen );
+ void Read_Justify( USHORT, BYTE*, short nLen );
+ void Read_Hyphenation( USHORT, BYTE* pData, short nLen );
+ void Read_WidowControl( USHORT, BYTE* pData, short nLen );
+ void Read_KeepLines( USHORT, BYTE* pData, short nLen );
+ void Read_KeepParas( USHORT, BYTE* pData, short nLen );
+ void Read_BreakBefore( USHORT, BYTE* pData, short nLen );
+ void Read_ApoPPC( USHORT, BYTE* pData, short nLen );
+
+ void Read_Border( USHORT nId, BYTE* pData, short nLen );
+ void Read_Tab( USHORT nId, BYTE* pData, short nLen );
+ void Read_TabCellDelete( USHORT nId, BYTE* pData, short nLen );
+ void Read_TabCellInsert( USHORT nId, BYTE* pData, short nLen );
+ void Read_Symbol( USHORT nId, BYTE* pData, short nLen );
+ void Read_FldVanish( USHORT nId, BYTE* pData, short nLen );
+
+ // Revision Marks ( == Redlining )
+
+ // insert or delete content (change char attributes resp.)
+ void Read_CRevisionMark(SwRedlineType eType,
+ USHORT nId,
+ BYTE* pData,
+ short nLen );
+ // insert new content
+ void Read_CFRMark( USHORT nId, BYTE* pData, short nLen );
+ // delete old content
+ void Read_CFRMarkDel( USHORT nId, BYTE* pData, short nLen );
+ // change properties of content (e.g. char formating)
+ void Read_CPropRMark( USHORT nId, BYTE* pData, short nLen ); // complex!
+
+
+ void Read_TabRowEnd( USHORT, BYTE* pData, short nLen );
+ void Read_Shade( USHORT, BYTE* pData, short nLen );
+ void Read_ANLevelNo( USHORT, BYTE* pData, short nLen );
+ void Read_ANLevelDesc( USHORT, BYTE* pData, short nLen );
+
+ void Read_POutLvl( USHORT nId, BYTE* pData, short nLen ); // Gliederungsebene Ver8
+
+ void Read_OLST( USHORT, BYTE* pData, short nLen );
+
+ void Read_CharShadow( USHORT, BYTE* pData, short nLen );
+ void Read_CharHighlight( USHORT, BYTE* pData, short nLen );
+ // Ver8-Listen
+
+ void Read_ListLevel( USHORT nId, BYTE* pData, short nLen);
+ void Read_LFOPosition( USHORT nId, BYTE* pData, short nLen);
+ BOOL SetTxtFmtCollAndListLevel( const SwPaM& rRg,
+ SwWW8StyInf& rStyleInfo,
+ BOOL bReset = TRUE );
+
+ // FastSave-Attribute
+
+ void Read_StyleCode( USHORT, BYTE* pData, short nLen );
+ void Read_Majority( USHORT, BYTE* pData, short nLen );
+
+ // Felder
+
+ eF_ResT Read_F_Nul( WW8FieldDesc*, String& rStr );
+ eF_ResT Read_F_Input( WW8FieldDesc*, String& rStr );
+ eF_ResT Read_F_InputVar( WW8FieldDesc*, String& rStr );
+ eF_ResT Read_F_ANumber( WW8FieldDesc*, String& );
+ eF_ResT Read_F_DocInfo( WW8FieldDesc* pF, String& rStr );
+ eF_ResT Read_F_Author( WW8FieldDesc*, String& );
+ eF_ResT Read_F_TemplName( WW8FieldDesc*, String& );
+ eF_ResT Read_F_DateTime( WW8FieldDesc*, String& rStr );
+ eF_ResT Read_F_FileName( WW8FieldDesc*, String& );
+ eF_ResT Read_F_Anz( WW8FieldDesc* pF, String& );
+ eF_ResT Read_F_CurPage( WW8FieldDesc*, String& );
+ eF_ResT Read_F_Ref( WW8FieldDesc* pF, String& );
+
+ eF_ResT Read_F_Set( WW8FieldDesc*, String& rStr );
+ eF_ResT Read_F_PgRef( WW8FieldDesc*, String& rStr );
+ eF_ResT Read_F_NoteReference( WW8FieldDesc* pF, String& rStr );
+
+ eF_ResT Read_F_Tox( WW8FieldDesc* pF, String& rStr );
+ eF_ResT Read_F_Symbol( WW8FieldDesc*, String& rStr );
+ eF_ResT Read_F_Embedd( WW8FieldDesc*, String& rStr );
+ eF_ResT Read_F_FormTextBox( WW8FieldDesc* pF, String& rStr );
+ eF_ResT Read_F_FormCheckBox( WW8FieldDesc* pF, String& rStr );
+ eF_ResT Read_F_FormListBox( WW8FieldDesc* pF, String& rStr );
+ eF_ResT Read_F_Macro( WW8FieldDesc*, String& rStr );
+ eF_ResT Read_F_DBField( WW8FieldDesc*, String& rStr );
+ eF_ResT Read_F_DBNext( WW8FieldDesc*, String& );
+ eF_ResT Read_F_DBNum( WW8FieldDesc*, String& );
+ eF_ResT Read_F_IncludePicture( WW8FieldDesc*, String& rStr );
+ eF_ResT Read_F_IncludeText( WW8FieldDesc*, String& rStr );
+ eF_ResT Read_F_Seq( WW8FieldDesc*, String& rStr );
+
+ eF_ResT Read_F_OCX( WW8FieldDesc*, String& rStr );
+ eF_ResT Read_F_Hyperlink( WW8FieldDesc*, String& rStr );
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape> InsertControl(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormComponent>& rFComp,
+ const ::com::sun::star::awt::Size& rSize,
+ //const ::com::sun::star::uno::Reference< ::com::sun::star::size::XSize>& rSize,
+ BOOL bFloatingCtrl = FALSE );
+
+ void BuildInputField( USHORT eType, const String& rParam );
+ void DeleteFormImpl();
+
+ // Ver8: Listen Manager
+ short ImportSprm( BYTE* pPos, short nSprmsLen, USHORT nId = 0 );
+
+ const WW8Fib& GetFib() const { return *pWwFib; }
+ SwDoc& GetDoc() const { return rDoc; }
+ USHORT GetNAktColl() const { return nAktColl; }
+ void SetNAktColl( USHORT nColl ) { nAktColl = nColl; }
+ //SfxItemSet* GetAktItemSet() { return pAktItemSet; }
+ void SetAktItemSet( SfxItemSet* pItemSet ) { pAktItemSet = pItemSet; }
+ const USHORT StyleUsingLFO( USHORT nLFOIndex ) const ;
+ const SwFmt* GetStyleWithOrgWWName( String& rName ) const ;
+
+
+
+ SwWW8ImplReader( BYTE nVersionPara, SvStorage* pStorage,
+ SvStream* pSt, SwDoc& rD, BOOL bNewDoc );
+
+ const ULONG GetFieldFlags() const{ return nFieldFlags; }
+ const ULONG GetIniFlags() const{ return nIniFlags; }
+ const ULONG GetIniFlags1() const{ return nIniFlags1; }
+
+ // Laden eines kompletten DocFiles
+ ULONG LoadDoc( SwPaM&,WW8Glossary *pGloss=0);
+};
+
+
+
+/*************************************************************************
+
+ Source Code Control System - Header
+
+ $Header: /zpool/svn/migration/cvs_rep_09_09_08/code/sw/source/filter/ww8/ww8par.hxx,v 1.1.1.1 2000-09-18 17:14:58 hr Exp $
+ Source Code Control System - Update
+
+ $Log: not supported by cvs2svn $
+ Revision 1.95 2000/09/18 16:05:00 willem.vandorp
+ OpenOffice header added.
+
+ Revision 1.94 2000/08/22 17:40:57 cmc
+ #77315# 95 Formulas, bad string read
+
+ Revision 1.93 2000/08/22 17:08:58 cmc
+ #77743# OLE Import, bad seek & bad FilterOptions
+
+ Revision 1.92 2000/08/18 09:48:28 khz
+ Import Line Numbering (restart on new section)
+
+ Revision 1.91 2000/08/18 06:47:26 khz
+ Import Line Numbering
+
+ Revision 1.90 2000/07/28 15:37:19 khz
+ #73796# don't delete NumRule from Attr but set it into pDoc
+
+ Revision 1.89 2000/07/27 10:21:26 khz
+ #73796# stop ANList when opening next cell in a row and !pAktANLD->fNumberAcross
+
+ Revision 1.88 2000/07/25 15:16:25 khz
+ #76811# read/write AutoHyphenation flag from/into Document Properties
+
+ Revision 1.87 2000/07/17 13:46:56 khz
+ #73987# check if sprmSNfcPgn should cause section change or not
+
+ Revision 1.86 2000/07/11 11:39:10 khz
+ #76673# prepare implementation of sprmTDelete and sprmTInsert
+
+ Revision 1.85 2000/07/07 12:48:54 jp
+ must changes VCL
+
+ Revision 1.84 2000/06/28 08:07:39 khz
+ #70915# Insert Section if end-note with flag 'on end of section' found
+
+ Revision 1.83 2000/06/15 15:23:39 cmc
+ #75669# 97Controls Import fixes
+
+ Revision 1.82 2000/05/31 12:22:57 khz
+ Changes for Unicode
+
+ Revision 1.81 2000/05/25 08:06:45 khz
+ Piece Table optimization, Unicode changes, Bugfixes
+
+ Revision 1.80 2000/05/24 08:56:06 jp
+ Bugfixes for Unicode
+
+ Revision 1.79 2000/05/17 16:41:43 khz
+ Changes for unicode (2)
+
+ Revision 1.78 2000/05/16 11:06:17 khz
+ Unicode code-conversion
+
+ Revision 1.77 2000/03/27 15:55:24 cmc
+ #74329# Ported WW97 Controls to uno codebase
+
+ Revision 1.76 2000/03/24 10:50:36 khz
+ Task #74368# IsInvalidOrToBeMergedTabCell() stops duplicate reset of NumRule
+
+ Revision 1.75 2000/03/21 15:04:57 os
+ UNOIII
+
+ Revision 1.74 2000/03/10 14:29:32 khz
+ Task #65529# improve detection if Section is identical with previous
+
+ Revision 1.73 2000/03/03 15:20:02 os
+ StarView remainders removed
+
+ Revision 1.72 2000/02/18 09:36:56 cmc
+ #69372# Improved Hyperlink Importing for WW97
+
+ Revision 1.71 2000/02/14 14:39:02 jp
+ #70473# changes for unicode
+
+ Revision 1.70 2000/02/14 09:10:28 cmc
+ #72579# working glossary implementation
+
+ Revision 1.68 2000/02/09 08:57:23 khz
+ Task #72647# Read SPRMs that are stored in piece table grpprls (2)
+
+ Revision 1.67 2000/02/02 18:07:39 khz
+ Task #69885# Read SPRMs that are stored in piece table grpprls
+
+ Revision 1.66 2000/01/06 15:23:45 khz
+ Task #71411# Let last Section be unbalanced
+
+ Revision 1.65 1999/12/23 14:03:10 khz
+ Task #68143# avoid attributes atached solely to Cell-End marks
+
+ Revision 1.64 1999/12/22 18:03:16 khz
+ Task #70919# look if ParaStyle is different behind filed than it was before
+
+ Revision 1.63 1999/12/14 14:22:38 khz
+ Task #70815# Avoid typecast when calling MatchSdrItemsIntoFlySet()
+
+ Revision 1.62 1999/12/09 19:12:20 khz
+ Task #65551# nSkipPos had erroneously been a member instead of local variable
+
+ Revision 1.61 1999/12/09 16:46:29 khz
+ Task #69180# allow Tabs if right of 1st-line-start OR right of paragraph margin
+
+ Revision 1.60 1999/12/01 14:35:45 khz
+ Task #68488# Graphics in Sections with more than one Column
+
+ Revision 1.59 1999/11/29 11:09:36 khz
+ Task #70177# SetDerivedFrom( RES_POOL_COL_STANDARD )
+
+ Revision 1.58 1999/11/19 14:57:07 khz
+ Task #68651# Store state of bSymbol and nSymbol in WW8ReaderSave class
+
+ Revision 1.57 1999/11/12 13:04:59 jp
+ new: read sprmCHighlight
+
+ Revision 1.56 1999/11/05 17:05:28 khz
+ prevent from erroneous Table-Restart when sprm24 missing
+
+ Revision 1.55 1999/11/02 15:59:34 khz
+ import new TOX_CONTENT and TOX_INDEX features (2)
+
+ Revision 1.54 1999/10/29 12:07:35 khz
+ import new TOX_CONTENT and TOX_INDEX features
+
+ Revision 1.53 1999/10/08 09:25:39 khz
+ Import Redlining
+
+ Revision 1.52 1999/08/30 19:52:58 JP
+ Bug #68219#: no static members - be reentrant
+
+
+ Rev 1.51 30 Aug 1999 21:52:58 JP
+ Bug #68219#: no static members - be reentrant
+
+ Rev 1.50 12 Aug 1999 13:57:52 KHZ
+ Task #67668# TestApo() modified
+
+ Rev 1.49 09 Aug 1999 14:16:08 JP
+ read W95 format from stream
+
+ Rev 1.48 12 Jul 1999 16:58:20 KHZ
+ Task #66194# 1. Sections with cols, 2. App.Node before PgBreak if Fly in node
+
+ Rev 1.47 05 Jul 1999 19:30:52 KHZ
+ Task #66194# Sections with columns
+
+ Rev 1.46 21 Jun 1999 10:24:40 KHZ
+ Reference field (page, bookmark, footnote) part#2
+
+ Rev 1.45 18 Jun 1999 15:53:50 KHZ
+ Reference field (page, bookmark, footnote) part#1
+
+ Rev 1.44 10 Jun 1999 17:58:52 KHZ
+ use FOUR different inner distances with SvxBoxItem
+
+ Rev 1.43 09 Jun 1999 18:25:00 KHZ
+ use FOUR different inner distances with SvxBoxItem
+
+ Rev 1.42 26 Apr 1999 17:40:20 KHZ
+ Task #61381# Attribute von Textboxen in denen NUR EINE Grafik steht
+
+ Rev 1.41 09 Apr 1999 18:01:38 KHZ
+ Task #64348# Bei Listen-Overrides nur bei Ungleichheit neue Liste anlegen!
+
+ Rev 1.40 18 Mar 1999 09:56:52 JP
+ Task #63049#: Numerierung mit rel. Einzuegen
+
+ Rev 1.39 10 Mar 1999 15:11:10 KHZ
+ Task #62521# Einlesen von Sonderzeichen
+
+ Rev 1.38 08 Mar 1999 11:51:30 KHZ
+ Task #57749# Writer kann jetzt spaltige Bereiche
+
+ Rev 1.37 26 Feb 1999 14:43:38 KHZ
+ Task #59715# Behandlung von Section breaks
+
+ Rev 1.36 17 Feb 1999 15:23:42 KHZ
+ Task #61382# jetzt auch Textbox-Grafiken im Hintergrund ( SvxOpaqItem(FALSE) )
+
+*************************************************************************/
+
+#endif
+