xref: /trunk/main/sc/inc/rechead.hxx (revision 1ecadb572e7010ff3b3382ad9bf179dbc6efadbb)
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