1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: rtfparse.hxx,v $
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
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
;
60 #endif // SC_RTFPARSE_CXX
65 class ScRTFParser
: public ScEEParser
68 ScRTFDefaultList
* pDefaultList
;
69 ScRTFColTwips
* pColTwips
;
70 ScRTFCellDefault
* pInsDefault
;
71 ScRTFCellDefault
* pActDefault
;
72 ScRTFCellDefault
* pDefMerge
;
77 DECL_LINK( RTFImportHdl
, ImportInfo
* );
78 inline void NextRow();
79 void EntryEnd( ScEEParseEntry
*, const ESelection
& );
80 void ProcToken( ImportInfo
* );
82 BOOL
SeekTwips( USHORT nTwips
, SCCOL
* pCol
);
83 void NewCellRow( ImportInfo
* );
86 ScRTFParser( EditEngine
* );
87 virtual ~ScRTFParser();
88 virtual ULONG
Read( SvStream
&, const String
& rBaseURL
);