xref: /trunk/main/sc/inc/rechead.hxx (revision 914d351e5f5b84e4342a86d6ab8d4aca7308b9bd)
1*38d50f7bSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*38d50f7bSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*38d50f7bSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*38d50f7bSAndrew Rist  * distributed with this work for additional information
6*38d50f7bSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*38d50f7bSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*38d50f7bSAndrew Rist  * "License"); you may not use this file except in compliance
9*38d50f7bSAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
11*38d50f7bSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13*38d50f7bSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*38d50f7bSAndrew Rist  * software distributed under the License is distributed on an
15*38d50f7bSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*38d50f7bSAndrew Rist  * KIND, either express or implied.  See the License for the
17*38d50f7bSAndrew Rist  * specific language governing permissions and limitations
18*38d50f7bSAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
20*38d50f7bSAndrew Rist  *************************************************************/
21*38d50f7bSAndrew Rist 
22*38d50f7bSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef SC_RECHEAD_HXX
25cdf0e10cSrcweir #define SC_RECHEAD_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include <tools/stream.hxx>
28cdf0e10cSrcweir 
29cdf0e10cSrcweir //      ID's fuer Dateien:
30cdf0e10cSrcweir 
31cdf0e10cSrcweir #define SCID_SIZES          0x4200
32cdf0e10cSrcweir 
33cdf0e10cSrcweir #define SCID_POOLS          0x4210
34cdf0e10cSrcweir #define SCID_DOCPOOL        0x4211
35cdf0e10cSrcweir #define SCID_STYLEPOOL      0x4212
36cdf0e10cSrcweir #define SCID_NEWPOOLS       0x4213      // ID fuer SC 3.0a
37cdf0e10cSrcweir #define SCID_EDITPOOL       0x4214
38cdf0e10cSrcweir 
39cdf0e10cSrcweir #define SCID_DOCUMENT       0x4220
40cdf0e10cSrcweir #define SCID_DOCFLAGS       0x4221
41cdf0e10cSrcweir #define SCID_TABLE          0x4222
42cdf0e10cSrcweir #define SCID_DRAWING        0x4223
43cdf0e10cSrcweir #define SCID_RANGENAME      0x4224
44cdf0e10cSrcweir #define SCID_DBAREAS        0x4225
45cdf0e10cSrcweir #define SCID_PIVOT          0x4226
46cdf0e10cSrcweir #define SCID_CHARTS         0x4227
47cdf0e10cSrcweir #define SCID_NUMFORMAT      0x4228
48cdf0e10cSrcweir #define SCID_DOCOPTIONS     0x4229
49cdf0e10cSrcweir #define SCID_VIEWOPTIONS    0x422a
50cdf0e10cSrcweir #define SCID_PRINTSETUP     0x422b
51cdf0e10cSrcweir #define SCID_CHARSET        0x422c
52cdf0e10cSrcweir #define SCID_NEWDOCUMENT    0x422d      // ID fuer SC 3.0a
53cdf0e10cSrcweir #define SCID_DDELINKS       0x422e
54cdf0e10cSrcweir #define SCID_AREALINKS      0x422f
55cdf0e10cSrcweir #define SCID_CONDFORMATS    0x4230
56cdf0e10cSrcweir #define SCID_VALIDATION     0x4231
57cdf0e10cSrcweir #define SCID_COLNAMERANGES  0x4232
58cdf0e10cSrcweir #define SCID_ROWNAMERANGES  0x4233
59cdf0e10cSrcweir #define SCID_DETOPLIST      0x4234
60cdf0e10cSrcweir #define SCID_CONSOLIDATA    0x4235
61cdf0e10cSrcweir #define SCID_CHANGETRACK    0x4236
62cdf0e10cSrcweir #define SCID_CHGVIEWSET     0x4237
63cdf0e10cSrcweir #define SCID_LINKUPMODE     0x4238
64cdf0e10cSrcweir #define SCID_DATAPILOT      0x4239
65cdf0e10cSrcweir 
66cdf0e10cSrcweir #define SCID_COLUMNS        0x4240
67cdf0e10cSrcweir #define SCID_COLROWFLAGS    0x4241
68cdf0e10cSrcweir #define SCID_TABOPTIONS     0x4242
69cdf0e10cSrcweir #define SCID_TABLINK        0x4243
70cdf0e10cSrcweir 
71cdf0e10cSrcweir #define SCID_COLDATA        0x4250
72cdf0e10cSrcweir #define SCID_COLNOTES       0x4251
73cdf0e10cSrcweir #define SCID_COLATTRIB      0x4252
74cdf0e10cSrcweir 
75cdf0e10cSrcweir #define SCID_DRAWPOOL       0x4260
76cdf0e10cSrcweir #define SCID_DRAWMODEL      0x4261
77cdf0e10cSrcweir 
78cdf0e10cSrcweir 
79cdf0e10cSrcweir 
80cdf0e10cSrcweir //  Dateiversion
81cdf0e10cSrcweir //  Falls das obere Byte inkrementiert wird, wird das Doc von
82cdf0e10cSrcweir //  aelteren SCs nicht mehr geladen!
83cdf0e10cSrcweir 
84cdf0e10cSrcweir #define SC_INITIAL_VERSION  0x0001
85cdf0e10cSrcweir #define SC_FORMULA_LCLVER   0x0002          // Formalen mit lokaler VerNr
86cdf0e10cSrcweir //--------------------------------
87cdf0e10cSrcweir #define SC_NEW_TOKEN_ARRAYS 0x0003          // neues TokenArray-Format
88cdf0e10cSrcweir #define SC_FORMULA_VALUES   0x0004          // Werte in Formelzellen
89cdf0e10cSrcweir #define SC_FORMULA_VALUES2  0x0005          // Werte in Formelzellen
90cdf0e10cSrcweir #define SC_DATABYTES        0x0006          // Datenbytes, kleine Tables
91cdf0e10cSrcweir #define SC_DATABYTES2       0x0007          // Datenbytes, kleine Tables
92cdf0e10cSrcweir #define SC_NUMFMT           0x0008          // Zahlenformat an Formelzelle
93cdf0e10cSrcweir #define SC_NEWIF            0x0009          // neue Codierung von ocIf (komp.)
94cdf0e10cSrcweir //--------------------------------
95cdf0e10cSrcweir #define SC_RELATIVE_REFS    0x0010          // relative Referenzen
96cdf0e10cSrcweir #define SC_SUBTOTAL_FLAG    0x0011          // bSubTotal der Formelzelle
97cdf0e10cSrcweir #define SC_COLROWNAME_RANGEPAIR 0x0012      // ColRowNameRanges als ScRangePair
98cdf0e10cSrcweir //--------------------------------
99cdf0e10cSrcweir #define SC_31_EXPORT_VER    0x0012          // Version bei 3.1-Export
100cdf0e10cSrcweir //-------------------------------- ab 4.0
101cdf0e10cSrcweir #define SC_32K_ROWS         0x0100          // 32000 Zeilen - inkompatibel
102cdf0e10cSrcweir #define SC_FONTCHARSET      0x0101          // Font-CharSets muessen stimmen
103cdf0e10cSrcweir //--------------------------------
104cdf0e10cSrcweir #define SC_40_EXPORT_VER    0x0101          // Version bei 4.0-Export
105cdf0e10cSrcweir //-------------------------------- ab 5.0
106cdf0e10cSrcweir #define SC_RECALC_MODE_BITS 0x0201          // TokenArray RecalcMode
107cdf0e10cSrcweir #define SC_MATRIX_DOUBLEREF 0x0202          // DoubleRef implizite Schnittmenge
108cdf0e10cSrcweir #define SC_VERSION_EDITPOOL 0x0203          // EditCells mit EditPool
109cdf0e10cSrcweir #define SC_SUBTOTAL_BUGFIX  0x0204          // bSubTotal der Formelzelle wirklich
110cdf0e10cSrcweir //-------------------------------- ab 5.2
111cdf0e10cSrcweir #define SC_CONVERT_RECALC_ON_LOAD 0x0205    // #73616# CONVERT function recalculated on each load
112cdf0e10cSrcweir //--------------------------------
113cdf0e10cSrcweir #define SC_CURRENT_VERSION  0x0205
114cdf0e10cSrcweir 
115cdf0e10cSrcweir 
116cdf0e10cSrcweir //  alles ueber SC_31_EXPORT_VER muss auch beim Speichern abgefragt werden,
117cdf0e10cSrcweir //  weil 3.1-Export diese Versionsnummer schreibt.
118cdf0e10cSrcweir 
119cdf0e10cSrcweir // btw: 10 nach 09 ist kein Zaehlfehler sondern eine absichtliche Luecke,
120cdf0e10cSrcweir // weil nicht klar war, wie lange die RelRefs Entwicklung dauern wuerde.. :)
121cdf0e10cSrcweir 
122cdf0e10cSrcweir class SvStream;
123cdf0e10cSrcweir 
124cdf0e10cSrcweir // -----------------------------------------------------------------------
125cdf0e10cSrcweir 
126cdf0e10cSrcweir         //  Header mit Groessenangaben fuer mehrere Objekte
127cdf0e10cSrcweir 
128cdf0e10cSrcweir class ScMultipleReadHeader
129cdf0e10cSrcweir {
130cdf0e10cSrcweir private:
131cdf0e10cSrcweir     SvStream&       rStream;
132cdf0e10cSrcweir     sal_uInt8*          pBuf;
133cdf0e10cSrcweir     SvMemoryStream* pMemStream;
134cdf0e10cSrcweir     sal_uLong           nEndPos;
135cdf0e10cSrcweir     sal_uLong           nEntryEnd;
136cdf0e10cSrcweir     sal_uLong           nTotalEnd;
137cdf0e10cSrcweir 
138cdf0e10cSrcweir public:
139cdf0e10cSrcweir     ScMultipleReadHeader(SvStream& rNewStream);
140cdf0e10cSrcweir     ~ScMultipleReadHeader();
141cdf0e10cSrcweir 
142cdf0e10cSrcweir     void    StartEntry();
143cdf0e10cSrcweir     void    EndEntry();
144cdf0e10cSrcweir     sal_uLong   BytesLeft() const;
145cdf0e10cSrcweir };
146cdf0e10cSrcweir 
147cdf0e10cSrcweir class ScMultipleWriteHeader
148cdf0e10cSrcweir {
149cdf0e10cSrcweir private:
150cdf0e10cSrcweir     SvStream&       rStream;
151cdf0e10cSrcweir     SvMemoryStream  aMemStream;
152cdf0e10cSrcweir     sal_uLong           nDataPos;
153cdf0e10cSrcweir     sal_uInt32      nDataSize;
154cdf0e10cSrcweir     sal_uLong           nEntryStart;
155cdf0e10cSrcweir 
156cdf0e10cSrcweir public:
157cdf0e10cSrcweir     ScMultipleWriteHeader(SvStream& rNewStream, sal_uInt32 nDefault = 0);
158cdf0e10cSrcweir     ~ScMultipleWriteHeader();
159cdf0e10cSrcweir 
160cdf0e10cSrcweir     void    StartEntry();
161cdf0e10cSrcweir     void    EndEntry();
162cdf0e10cSrcweir };
163cdf0e10cSrcweir 
164cdf0e10cSrcweir #endif
165