summaryrefslogtreecommitdiff
path: root/sw/source/core/inc/swblocks.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/core/inc/swblocks.hxx')
-rw-r--r--sw/source/core/inc/swblocks.hxx242
1 files changed, 242 insertions, 0 deletions
diff --git a/sw/source/core/inc/swblocks.hxx b/sw/source/core/inc/swblocks.hxx
new file mode 100644
index 000000000000..300929642f7a
--- /dev/null
+++ b/sw/source/core/inc/swblocks.hxx
@@ -0,0 +1,242 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * 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
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef _SWBLOCKS_HXX
+#define _SWBLOCKS_HXX
+
+#include <tools/string.hxx>
+
+#ifndef _DATE_HXX //autogen
+#include <tools/datetime.hxx>
+#endif
+#include <svl/svarray.hxx>
+
+
+class SfxMedium;
+class SwPaM;
+class SwDoc;
+class SvxMacroTableDtor;
+
+// Name eines Textblocks:
+
+class SwBlockName
+{
+ friend class SwImpBlocks;
+ friend class Sw2TextBlocks;
+ USHORT nHashS, nHashL; // Hash-Codes zum Checken
+ long nPos; // Dateiposition (SW2-Format)
+public:
+ String aShort; // Short name
+ String aLong; // Long name
+ String aPackageName; // Package name
+ BOOL bIsOnlyTxtFlagInit : 1; // ist das Flag gueltig?
+ BOOL bIsOnlyTxt : 1; // unformatted text
+ BOOL bInPutMuchBlocks : 1; // put serveral block entries
+
+ SwBlockName( const String& rShort, const String& rLong, long n );
+ SwBlockName( const String& rShort, const String& rLong, const String& rPackageName );
+
+ // fuer das Einsortieren in das Array
+ int operator==( const SwBlockName& r ) { return aShort == r.aShort; }
+ int operator< ( const SwBlockName& r ) { return aShort < r.aShort; }
+};
+
+SV_DECL_PTRARR_SORT( SwBlockNames, SwBlockName*, 10, 10 )
+
+
+class SwImpBlocks
+{
+ friend class SwTextBlocks;
+protected:
+ String aFile; // physikalischer Dateiname
+ String aName; // logischer Name der Datei
+ String aCur; // aktueller Text
+ String aShort, aLong; // Kurz- und Langname (PutDoc)
+ String sBaseURL; // base URL - has to be set at the Readers and Writers
+ SwBlockNames aNames; // Liste aller Bausteine
+ Date aDateModified; // fuers abgleichen bei den Aktionen
+ Time aTimeModified;
+ SwDoc* pDoc; // Austauschdokument
+ USHORT nCur; // aktueller Index
+ BOOL bReadOnly : 1;
+ BOOL bInPutMuchBlocks : 1; // put serveral block entries
+ BOOL bInfoChanged : 1; // any Info of TextBlock is changed
+
+ SwImpBlocks( const String&, BOOL = FALSE );
+ virtual ~SwImpBlocks();
+
+ static short GetFileType( const String& );
+ virtual short GetFileType() const = 0;
+#define SWBLK_NO_FILE 0 // nicht da
+#define SWBLK_NONE 1 // keine TB-Datei
+#define SWBLK_SW2 2 // SW2-Datei
+#define SWBLK_SW3 3 // SW3-Datei
+#define SWBLK_XML 4 // XML Block List
+
+ virtual void ClearDoc(); // Doc-Inhalt loeschen
+ SwPaM* MakePaM(); // PaM ueber Doc aufspannen
+ virtual void AddName( const String&, const String&, BOOL bOnlyTxt = FALSE );
+ BOOL IsFileChanged() const;
+ void Touch();
+
+public:
+ static USHORT Hash( const String& ); // Hashcode fuer Blocknamen
+ USHORT GetCount() const; // Anzahl Textbausteine ermitteln
+ USHORT GetIndex( const String& ) const; // Index fuer Kurznamen ermitteln
+ USHORT GetLongIndex( const String& ) const; //Index fuer Langnamen ermitteln
+ const String& GetShortName( USHORT ) const; // Kurzname fuer Index zurueck
+ const String& GetLongName( USHORT ) const; // Langname fuer Index zurueck
+ const String& GetPackageName( USHORT ) const; // Langname fuer Index zurueck
+
+ const String& GetFileName() const {return aFile;} // phys. Dateinamen liefern
+ void SetName( const String& rName ) // logic name
+ { aName = rName; bInfoChanged = TRUE; }
+ const String & GetName( void )
+ { return aName; }
+
+ const String& GetBaseURL() const { return sBaseURL;}
+ void SetBaseURL( const String& rURL ) { sBaseURL = rURL; }
+
+ virtual ULONG Delete( USHORT ) = 0;
+ virtual ULONG Rename( USHORT, const String&, const String& ) = 0;
+ virtual ULONG CopyBlock( SwImpBlocks& rImp, String& rShort, const String& rLong) = 0;
+ virtual ULONG GetDoc( USHORT ) = 0;
+ virtual ULONG GetDocForConversion( USHORT );
+ virtual ULONG BeginPutDoc( const String&, const String& ) = 0;
+ virtual ULONG PutDoc() = 0;
+ virtual ULONG GetText( USHORT, String& ) = 0;
+ virtual ULONG PutText( const String&, const String&, const String& ) = 0;
+ virtual ULONG MakeBlockList() = 0;
+
+ virtual ULONG OpenFile( BOOL bReadOnly = TRUE ) = 0;
+ virtual void CloseFile() = 0;
+
+ virtual BOOL IsOnlyTextBlock( const String& rShort ) const;
+
+ virtual ULONG GetMacroTable( USHORT nIdx, SvxMacroTableDtor& rMacroTbl,
+ sal_Bool bFileAlreadyOpen = sal_False );
+ virtual ULONG SetMacroTable( USHORT nIdx,
+ const SvxMacroTableDtor& rMacroTbl,
+ sal_Bool bFileAlreadyOpen = sal_False );
+ virtual BOOL PutMuchEntries( BOOL bOn );
+};
+
+/*
+class Sw3Persist : public SvPersist
+{
+ virtual void FillClass( SvGlobalName * pClassName,
+ ULONG * pClipFormat,
+ String * pAppName,
+ String * pLongUserName,
+ String * pUserName,
+ sal_Int32 nFileFormat=SOFFICE_FILEFORMAT_CURRENT ) const;
+ virtual BOOL Save();
+ virtual BOOL SaveCompleted( SvStorage * );
+public:
+ Sw3Persist();
+};
+
+class SwSwgReader;
+
+class Sw2TextBlocks : public SwImpBlocks
+{
+ SvPersistRef refPersist; // Fuer OLE-Objekte
+ SwSwgReader* pRdr; // Lese-Routinen
+ SfxMedium* pMed; // der logische Input-Stream
+ String* pText; // String fuer GetText()
+ long nDocStart; // Beginn des Doc-Records
+ long nDocSize; // Laenge des Doc-Records
+ long nStart; // Beginn des CONTENTS-Records
+ long nSize; // Laenge des CONTENTS-Records
+ USHORT nNamedFmts; // benannte Formate
+ USHORT nColls; // Text-Collections
+ USHORT nBlks; // Anzahl Elemente im CONTENTS-Record
+public:
+ Sw2TextBlocks( const String& );
+ virtual ~Sw2TextBlocks();
+ virtual ULONG Delete( USHORT );
+ virtual ULONG Rename( USHORT, const String&, const String& );
+ virtual ULONG CopyBlock( SwImpBlocks& rImp, String& rShort, const String& rLong);
+ virtual ULONG GetDoc( USHORT );
+ virtual ULONG BeginPutDoc( const String&, const String& );
+ virtual ULONG PutDoc();
+ virtual ULONG GetText( USHORT, String& );
+ virtual ULONG PutText( const String&, const String&, const String& );
+ virtual ULONG MakeBlockList();
+ virtual short GetFileType( ) const;
+ ULONG LoadDoc();
+
+ virtual ULONG OpenFile( BOOL bReadOnly = TRUE );
+ virtual void CloseFile();
+
+ void StatLineStartPercent(); // zum Anzeigen des Prozessbars
+};
+
+class Sw3Io;
+class Sw3IoImp;
+
+class Sw3TextBlocks : public SwImpBlocks
+{
+ Sw3Io* pIo3;
+ Sw3IoImp* pImp;
+ BOOL bAutocorrBlock;
+
+public:
+ Sw3TextBlocks( const String& );
+ Sw3TextBlocks( SvStorage& );
+ virtual ~Sw3TextBlocks();
+ virtual ULONG Delete( USHORT );
+ virtual ULONG Rename( USHORT, const String&, const String& );
+ virtual ULONG CopyBlock( SwImpBlocks& rImp, String& rShort, const String& rLong);
+ virtual ULONG GetDoc( USHORT );
+ virtual ULONG GetDocForConversion( USHORT );
+ virtual ULONG BeginPutDoc( const String&, const String& );
+ virtual ULONG PutDoc();
+ virtual void SetDoc( SwDoc * pNewDoc);
+ virtual ULONG GetText( USHORT, String& );
+ virtual ULONG PutText( const String&, const String&, const String& );
+ virtual ULONG MakeBlockList();
+ virtual short GetFileType( ) const;
+
+ virtual ULONG OpenFile( BOOL bReadOnly = TRUE );
+ virtual void CloseFile();
+
+ // Methoden fuer die neue Autokorrektur
+ ULONG GetText( const String& rShort, String& );
+ SwDoc* GetDoc() const { return pDoc; }
+
+ virtual BOOL IsOnlyTextBlock( const String& rShort ) const;
+
+ virtual ULONG GetMacroTable( USHORT, SvxMacroTableDtor& rMacroTbl,
+ sal_Bool bFileAlreadyOpen = sal_False );
+ virtual ULONG SetMacroTable( USHORT nIdx,
+ const SvxMacroTableDtor& rMacroTbl,
+ sal_Bool bFileAlreadyOpen = sal_False );
+
+ void ReadInfo();
+};
+*/
+#endif