Update ooo320-m1
[ooovba.git] / sc / source / filter / inc / rtfparse.hxx
blob6c8eccb52a3ca770c473eee5f7e99bda2fb81ad2
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: rtfparse.hxx,v $
10 * $Revision: 1.6 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #ifndef SC_RTFPARSE_HXX
32 #define SC_RTFPARSE_HXX
34 #include "eeparser.hxx"
36 #ifdef SC_RTFPARSE_CXX
38 struct ScRTFCellDefault
40 SfxItemSet aItemSet;
41 SCCOL nCol;
42 USHORT nTwips; // rechter Rand der Zelle
43 SCCOL nColOverlap; // MergeCell wenn >1, merged cells wenn 0
45 ScRTFCellDefault( SfxItemPool* pPool ) :
46 aItemSet( *pPool ), nColOverlap(1) {}
49 DECLARE_LIST( ScRTFDefaultList, ScRTFCellDefault* )
50 // Remove: (const unsigned short &) not sufficiently different from (unsigned short)
51 // deswegen ULONG, typedef bringt's auch nicht :-(
52 SV_DECL_VARARR_SORT( ScRTFColTwips, ULONG, 16, 4)
54 #else // SC_RTFPARSE_CXX
56 struct ScRTFCellDefault;
57 class ScRTFDefaultList;
58 class ScRTFColTwips;
60 #endif // SC_RTFPARSE_CXX
63 class EditEngine;
65 class ScRTFParser : public ScEEParser
67 private:
68 ScRTFDefaultList* pDefaultList;
69 ScRTFColTwips* pColTwips;
70 ScRTFCellDefault* pInsDefault;
71 ScRTFCellDefault* pActDefault;
72 ScRTFCellDefault* pDefMerge;
73 ULONG nStartAdjust;
74 USHORT nLastWidth;
75 BOOL bNewDef;
77 DECL_LINK( RTFImportHdl, ImportInfo* );
78 inline void NextRow();
79 void EntryEnd( ScEEParseEntry*, const ESelection& );
80 void ProcToken( ImportInfo* );
81 void ColAdjust();
82 BOOL SeekTwips( USHORT nTwips, SCCOL* pCol );
83 void NewCellRow( ImportInfo* );
85 public:
86 ScRTFParser( EditEngine* );
87 virtual ~ScRTFParser();
88 virtual ULONG Read( SvStream&, const String& rBaseURL );
92 #endif