summaryrefslogtreecommitdiff
path: root/sc/source/filter/inc/lotimpop.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/source/filter/inc/lotimpop.hxx')
-rw-r--r--sc/source/filter/inc/lotimpop.hxx172
1 files changed, 172 insertions, 0 deletions
diff --git a/sc/source/filter/inc/lotimpop.hxx b/sc/source/filter/inc/lotimpop.hxx
new file mode 100644
index 000000000000..bae6b7f8e3c6
--- /dev/null
+++ b/sc/source/filter/inc/lotimpop.hxx
@@ -0,0 +1,172 @@
+/*************************************************************************
+ *
+ * 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: lotimpop.hxx,v $
+ * $Revision: 1.9 $
+ *
+ * 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 SC_LOTIMPOP_HXX
+#define SC_LOTIMPOP_HXX
+
+#include <tools/string.hxx>
+
+#include "imp_op.hxx"
+#include "flttypes.hxx"
+#include "ftools.hxx"
+#include "lotform.hxx"
+#include "lotattr.hxx"
+
+class ScFormulaCell;
+class LotusFontBuffer;
+class SvxBorderLine;
+
+
+class ImportLotus : public ImportTyp
+{
+private:
+ SvStream* pIn; // benoetigt wegen multiplem Read()!
+ LotusFontBuffer* pFontBuff;
+ LotusToSc aConv;
+ UINT16 nTab; // z.Zt. bearbeitete Tabelle
+ INT32 nExtTab;
+ // -------------------------------------------------------------------
+ // in WK?-Datei
+ void Bof( void ); // 0x0000 00
+ BOOL BofFm3( void ); // 0x0000 00
+ void Columnwidth( UINT16 nRecLen ); // 0x0007 07
+ void Hiddencolumn( UINT16 nRecLen ); // 0x0008 08
+ void Userrange( void ); // 0x0009 09
+ void Errcell( void ); // 0x0014 20
+ void Nacell( void ); // 0x0015 21
+ void Labelcell( void ); // 0x0016 22
+ void Numbercell( void ); // 0x0017 23
+ void Smallnumcell( void ); // 0x0018 24
+ ScFormulaCell* Formulacell( UINT16 nRecLen ); // 0x0019 25
+ void Formulastring( ScFormulaCell& ); // 0x001a 26
+ // 0x001b 27 special
+ void NamedSheet( void ); // 14000
+ void RowPresentation( UINT16 nRecLen ); // 2007
+
+ // -------------------------------------------------------------------
+ // in FM?-Datei
+ void Font_Face( void ); // 174
+ void Font_Type( void ); // 176
+ void Font_Ysize( void ); // 177
+ void _Row( const UINT16 nRecLen ); // 197 ?
+ // -------------------------------------------------------------------
+ inline void Read( ScAddress& );
+ inline void Read( ScRange& );
+ // fuer Addresses/Ranges im Format Row(16)/Tab(8)/Col(8)
+ inline void Read( sal_Char& );
+ inline void Read( BYTE& );
+ inline void Read( UINT16& );
+ inline void Read( INT16& );
+ inline void Read( UINT32& );
+ inline void Read( double& ); // 10-Byte-IEEE lesen
+ inline void Read( LotAttrWK3& );
+ void Read( String& ); // 0-terminierten String einlesen
+ inline void Skip( const UINT16 nNumBytes );
+ // -------------------------------------------------------------------
+public:
+ ImportLotus( SvStream&, ScDocument*, CharSet eSrc );
+
+ virtual ~ImportLotus();
+
+ FltError Read();
+ FltError Read( SvStream& ); // special for *.fm3-Dateien
+};
+
+
+inline void ImportLotus::Read( ScAddress& rAddr )
+{
+ UINT16 nRow;
+ *pIn >> nRow;
+ rAddr.SetRow( static_cast<SCROW>(nRow) );
+ BYTE nByte;
+ *pIn >> nByte;
+ rAddr.SetTab( static_cast<SCTAB>(nByte) );
+ *pIn >> nByte;
+ rAddr.SetCol( static_cast<SCCOL>(nByte) );
+}
+
+
+inline void ImportLotus::Read( ScRange& rRange )
+{
+ Read( rRange.aStart );
+ Read( rRange.aEnd );
+}
+
+
+inline void ImportLotus::Read( sal_Char& r )
+{
+ *pIn >> r;
+}
+
+
+inline void ImportLotus::Read( BYTE& r )
+{
+ *pIn >> r;
+}
+
+
+inline void ImportLotus::Read( UINT16& r )
+{
+ *pIn >> r;
+}
+
+
+inline void ImportLotus::Read( INT16& r )
+{
+ *pIn >> r;
+}
+
+
+inline void ImportLotus::Read( UINT32& r )
+{
+ *pIn >> r;
+}
+
+
+inline void ImportLotus::Read( double& r )
+{
+ r = ScfTools::ReadLongDouble( *pIn );
+}
+
+
+inline void ImportLotus::Read( LotAttrWK3& r )
+{
+ *pIn >> r.nFont >> r.nFontCol >> r.nBack >> r.nLineStyle;
+}
+
+
+inline void ImportLotus::Skip( const UINT16 n )
+{
+ pIn->SeekRel( n );
+}
+
+
+
+#endif