xref: /trunk/main/sc/source/filter/inc/root.hxx (revision 3ee7c2db)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef SC_ROOT_HXX
25 #define SC_ROOT_HXX
26 
27 #include <tools/solar.h>
28 #include "global.hxx"
29 #include "address.hxx"
30 #include "flttypes.hxx"
31 #include "filter.hxx"
32 #include "excdefs.hxx"
33 
34 class ScRangeName;
35 
36 class NameBuffer;
37 class RangeNameBufferWK3;
38 class ShrfmlaBuffer;
39 class ExtNameBuff;
40 class ExtSheetBuffer;
41 class ExcelToSc;
42 
43 class XclImpColRowSettings;
44 class XclImpAutoFilterBuffer;
45 class XclImpPivotCacheList;
46 class _ScRangeListTabs;
47 
48 class XclExpChTrTabId;
49 class XclExpUserBViewList;
50 
51 class XclImpRoot;
52 class XclExpRoot;
53 
54 // ---------------------------------------------------------- Excel Imp~/Exp~ -
55 
56 struct RootData		// -> Inkarnation jeweils im ImportExcel-Objekt!
57 {
58 	BiffTyp				eDateiTyp;				// feine Differenzierung
59 	ExtSheetBuffer*		pExtSheetBuff;
60 	ShrfmlaBuffer*		pShrfmlaBuff;
61 	ExtNameBuff*		pExtNameBuff;
62     ExcelToSc*          pFmlaConverter;
63     XclImpColRowSettings* pColRowBuff;        // Col/Row-Einstellungen 1 Tabelle
64 
65 	// Biff8
66     XclImpAutoFilterBuffer* pAutoFilterBuffer;      // ranges for autofilter and advanced filter
67     _ScRangeListTabs*       pPrintRanges;
68     _ScRangeListTabs*       pPrintTitles;
69 
70 	// Erweiterungen fuer Export
71     XclExpChTrTabId*        pTabId;             // pointer to rec list, do not destroy
72     XclExpUserBViewList*    pUserBViewList;     // pointer to rec list, do not destroy
73 
74     XclImpRoot*         pIR;
75     XclExpRoot*         pER;
76 
77 						RootData( void );		// -> exctools.cxx
78 						~RootData();			// -> exctools.cxx
79 };
80 
81 class ExcRoot
82 {
83 protected:
84 	RootData*		pExcRoot;
ExcRoot(RootData * pNexExcRoot)85     inline          ExcRoot( RootData* pNexExcRoot ) : pExcRoot( pNexExcRoot ) {}
ExcRoot(const ExcRoot & rCopy)86     inline          ExcRoot( const ExcRoot& rCopy ) : pExcRoot( rCopy.pExcRoot ) {}
87 };
88 
89 // ---------------------------------------------------------- Lotus Imp~/Exp~ -
90 
91 class LotusRangeList;
92 class LotusFontBuffer;
93 class LotAttrTable;
94 
95 
96 struct LOTUS_ROOT
97 {
98 	ScDocument*			pDoc;
99 	LotusRangeList*		pRangeNames;
100 	ScRangeName*		pScRangeName;
101 	CharSet				eCharsetQ;
102 	Lotus123Typ			eFirstType;
103 	Lotus123Typ			eActType;
104 	ScRange				aActRange;
105 	RangeNameBufferWK3*	pRngNmBffWK3;
106 	LotusFontBuffer*	pFontBuff;
107 	LotAttrTable*		pAttrTable;
108 
109                         LOTUS_ROOT( ScDocument* pDocP, CharSet eQ );
110                         ~LOTUS_ROOT();
111 };
112 
113 extern LOTUS_ROOT*		pLotusRoot;	// -> Inkarn. in filter.cxx
114 
115 // ----------------------------------------------------------------------------
116 
117 #endif
118 
119