xref: /aoo41x/main/sc/inc/rechead.hxx (revision cdf0e10c)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 #ifndef SC_RECHEAD_HXX
29 #define SC_RECHEAD_HXX
30 
31 #include <tools/stream.hxx>
32 
33 //		ID's fuer Dateien:
34 
35 #define SCID_SIZES			0x4200
36 
37 #define SCID_POOLS			0x4210
38 #define SCID_DOCPOOL		0x4211
39 #define SCID_STYLEPOOL		0x4212
40 #define SCID_NEWPOOLS		0x4213		// ID fuer SC 3.0a
41 #define SCID_EDITPOOL		0x4214
42 
43 #define SCID_DOCUMENT		0x4220
44 #define SCID_DOCFLAGS		0x4221
45 #define SCID_TABLE			0x4222
46 #define SCID_DRAWING		0x4223
47 #define SCID_RANGENAME		0x4224
48 #define SCID_DBAREAS		0x4225
49 #define SCID_PIVOT			0x4226
50 #define SCID_CHARTS			0x4227
51 #define SCID_NUMFORMAT		0x4228
52 #define SCID_DOCOPTIONS		0x4229
53 #define SCID_VIEWOPTIONS	0x422a
54 #define SCID_PRINTSETUP		0x422b
55 #define SCID_CHARSET		0x422c
56 #define SCID_NEWDOCUMENT	0x422d		// ID fuer SC 3.0a
57 #define SCID_DDELINKS		0x422e
58 #define SCID_AREALINKS		0x422f
59 #define SCID_CONDFORMATS	0x4230
60 #define SCID_VALIDATION		0x4231
61 #define SCID_COLNAMERANGES	0x4232
62 #define SCID_ROWNAMERANGES	0x4233
63 #define SCID_DETOPLIST		0x4234
64 #define SCID_CONSOLIDATA	0x4235
65 #define SCID_CHANGETRACK	0x4236
66 #define SCID_CHGVIEWSET		0x4237
67 #define SCID_LINKUPMODE		0x4238
68 #define SCID_DATAPILOT		0x4239
69 
70 #define SCID_COLUMNS		0x4240
71 #define SCID_COLROWFLAGS	0x4241
72 #define SCID_TABOPTIONS		0x4242
73 #define SCID_TABLINK		0x4243
74 
75 #define SCID_COLDATA		0x4250
76 #define SCID_COLNOTES		0x4251
77 #define SCID_COLATTRIB		0x4252
78 
79 #define SCID_DRAWPOOL		0x4260
80 #define SCID_DRAWMODEL		0x4261
81 
82 
83 
84 //	Dateiversion
85 //	Falls das obere Byte inkrementiert wird, wird das Doc von
86 // 	aelteren SCs nicht mehr geladen!
87 
88 #define	SC_INITIAL_VERSION	0x0001
89 #define	SC_FORMULA_LCLVER	0x0002			// Formalen mit lokaler VerNr
90 //--------------------------------
91 #define	SC_NEW_TOKEN_ARRAYS	0x0003			// neues TokenArray-Format
92 #define	SC_FORMULA_VALUES	0x0004			// Werte in Formelzellen
93 #define	SC_FORMULA_VALUES2	0x0005			// Werte in Formelzellen
94 #define	SC_DATABYTES		0x0006			// Datenbytes, kleine Tables
95 #define	SC_DATABYTES2   	0x0007			// Datenbytes, kleine Tables
96 #define	SC_NUMFMT		   	0x0008			// Zahlenformat an Formelzelle
97 #define	SC_NEWIF		   	0x0009			// neue Codierung von ocIf (komp.)
98 //--------------------------------
99 #define SC_RELATIVE_REFS	0x0010			// relative Referenzen
100 #define SC_SUBTOTAL_FLAG	0x0011			// bSubTotal der Formelzelle
101 #define SC_COLROWNAME_RANGEPAIR 0x0012		// ColRowNameRanges als ScRangePair
102 //--------------------------------
103 #define SC_31_EXPORT_VER	0x0012			// Version bei 3.1-Export
104 //-------------------------------- ab 4.0
105 #define SC_32K_ROWS			0x0100			// 32000 Zeilen - inkompatibel
106 #define SC_FONTCHARSET		0x0101			// Font-CharSets muessen stimmen
107 //--------------------------------
108 #define SC_40_EXPORT_VER	0x0101			// Version bei 4.0-Export
109 //-------------------------------- ab 5.0
110 #define SC_RECALC_MODE_BITS	0x0201			// TokenArray RecalcMode
111 #define SC_MATRIX_DOUBLEREF	0x0202			// DoubleRef implizite Schnittmenge
112 #define SC_VERSION_EDITPOOL	0x0203			// EditCells mit EditPool
113 #define SC_SUBTOTAL_BUGFIX	0x0204			// bSubTotal der Formelzelle wirklich
114 //-------------------------------- ab 5.2
115 #define SC_CONVERT_RECALC_ON_LOAD 0x0205	// #73616# CONVERT function recalculated on each load
116 //--------------------------------
117 #define SC_CURRENT_VERSION	0x0205
118 
119 
120 //	alles ueber SC_31_EXPORT_VER muss auch beim Speichern abgefragt werden,
121 //	weil 3.1-Export diese Versionsnummer schreibt.
122 
123 // btw: 10 nach 09 ist kein Zaehlfehler sondern eine absichtliche Luecke,
124 // weil nicht klar war, wie lange die RelRefs Entwicklung dauern wuerde.. :)
125 
126 class SvStream;
127 
128 // -----------------------------------------------------------------------
129 
130 		//	Header mit Groessenangaben fuer mehrere Objekte
131 
132 class ScMultipleReadHeader
133 {
134 private:
135 	SvStream&		rStream;
136 	sal_uInt8*			pBuf;
137 	SvMemoryStream*	pMemStream;
138 	sal_uLong			nEndPos;
139 	sal_uLong			nEntryEnd;
140 	sal_uLong			nTotalEnd;
141 
142 public:
143 	ScMultipleReadHeader(SvStream& rNewStream);
144 	~ScMultipleReadHeader();
145 
146 	void	StartEntry();
147 	void	EndEntry();
148 	sal_uLong	BytesLeft() const;
149 };
150 
151 class ScMultipleWriteHeader
152 {
153 private:
154 	SvStream&		rStream;
155 	SvMemoryStream	aMemStream;
156 	sal_uLong			nDataPos;
157 	sal_uInt32		nDataSize;
158 	sal_uLong			nEntryStart;
159 
160 public:
161 	ScMultipleWriteHeader(SvStream& rNewStream, sal_uInt32 nDefault = 0);
162 	~ScMultipleWriteHeader();
163 
164 	void	StartEntry();
165 	void	EndEntry();
166 };
167 
168 #endif
169 
170 
171