138d50f7bSAndrew Rist /**************************************************************
2cdf0e10cSrcweir *
338d50f7bSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
438d50f7bSAndrew Rist * or more contributor license agreements. See the NOTICE file
538d50f7bSAndrew Rist * distributed with this work for additional information
638d50f7bSAndrew Rist * regarding copyright ownership. The ASF licenses this file
738d50f7bSAndrew Rist * to you under the Apache License, Version 2.0 (the
838d50f7bSAndrew Rist * "License"); you may not use this file except in compliance
938d50f7bSAndrew Rist * with the License. You may obtain a copy of the License at
1038d50f7bSAndrew Rist *
1138d50f7bSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0
1238d50f7bSAndrew Rist *
1338d50f7bSAndrew Rist * Unless required by applicable law or agreed to in writing,
1438d50f7bSAndrew Rist * software distributed under the License is distributed on an
1538d50f7bSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
1638d50f7bSAndrew Rist * KIND, either express or implied. See the License for the
1738d50f7bSAndrew Rist * specific language governing permissions and limitations
1838d50f7bSAndrew Rist * under the License.
1938d50f7bSAndrew Rist *
2038d50f7bSAndrew Rist *************************************************************/
2138d50f7bSAndrew Rist
2238d50f7bSAndrew Rist
23cdf0e10cSrcweir
24cdf0e10cSrcweir #ifndef SC_SCFLT_HXX
25cdf0e10cSrcweir #define SC_SCFLT_HXX
26cdf0e10cSrcweir
27cdf0e10cSrcweir #include "viewopti.hxx"
28cdf0e10cSrcweir #include "collect.hxx"
29cdf0e10cSrcweir #include <tools/solar.h>
30cdf0e10cSrcweir
31cdf0e10cSrcweir // FehlerNummern
32cdf0e10cSrcweir #define errUnknownFormat 1
33cdf0e10cSrcweir #define errUnknownID 2
34cdf0e10cSrcweir #define errOutOfMemory 3
35cdf0e10cSrcweir
36cdf0e10cSrcweir // Identifiers im FileFormat
37cdf0e10cSrcweir #define ColWidthID 1
38cdf0e10cSrcweir #define ColAttrID 2
39cdf0e10cSrcweir #define RowHeightID 3
40cdf0e10cSrcweir #define RowAttrID 4
41cdf0e10cSrcweir #define FontID 5
42cdf0e10cSrcweir #define NameID 6
43cdf0e10cSrcweir #define TableID 7
44cdf0e10cSrcweir #define ObjectID 8
45cdf0e10cSrcweir #define PatternID 9
46cdf0e10cSrcweir #define DataBaseID 10
47cdf0e10cSrcweir
48cdf0e10cSrcweir // Zeilen/Spalten Flags
49cdf0e10cSrcweir #define crfSoftBreak 1
50cdf0e10cSrcweir #define crfHardBreak 2
51cdf0e10cSrcweir #define crfHidden 4
52cdf0e10cSrcweir
53cdf0e10cSrcweir // Zelltypen
54cdf0e10cSrcweir #define ctValue 1
55cdf0e10cSrcweir #define ctString 2
56cdf0e10cSrcweir #define ctFormula 3
57cdf0e10cSrcweir #define ctNote 4
58cdf0e10cSrcweir
59cdf0e10cSrcweir // FontStyles
60cdf0e10cSrcweir #define ffDontCare 0x00
61cdf0e10cSrcweir #define ffRoman 0x10
62cdf0e10cSrcweir #define ffSwiss 0x20
63cdf0e10cSrcweir #define ffModern 0x30
64cdf0e10cSrcweir #define ffScript 0x40
65cdf0e10cSrcweir #define ffDecorative 0x50
66cdf0e10cSrcweir
67cdf0e10cSrcweir // FontWeight
68cdf0e10cSrcweir #define fwNormal 400
69cdf0e10cSrcweir
70cdf0e10cSrcweir // FontAttribute
71cdf0e10cSrcweir #define atNone 0
72cdf0e10cSrcweir #define atBold 1
73cdf0e10cSrcweir #define atItalic 2
74cdf0e10cSrcweir #define atUnderline 4
75cdf0e10cSrcweir #define atStrikeOut 8
76cdf0e10cSrcweir
77cdf0e10cSrcweir // Horizontale Ausrichtung
78cdf0e10cSrcweir #define hjNone 0
79cdf0e10cSrcweir #define hjLeft 1
80cdf0e10cSrcweir #define hjCenter 2
81cdf0e10cSrcweir #define hjRight 3
82cdf0e10cSrcweir
83cdf0e10cSrcweir // Vertikale Ausrichtung
84cdf0e10cSrcweir #define vjNone 0
85cdf0e10cSrcweir #define vjTop 1
86cdf0e10cSrcweir #define vjCenter 2
87cdf0e10cSrcweir #define vjBottom 3
88cdf0e10cSrcweir
89cdf0e10cSrcweir // AusrichtungsFlags
90cdf0e10cSrcweir #define ojWordBreak 0x01
91cdf0e10cSrcweir #define ojBottomTop 0x02
92cdf0e10cSrcweir #define ojTopBottom 0x04
93cdf0e10cSrcweir
94cdf0e10cSrcweir // ZellRaster
95cdf0e10cSrcweir #define raNone 0
96cdf0e10cSrcweir #define raGray12 1
97cdf0e10cSrcweir #define raGray25 2
98cdf0e10cSrcweir #define raGray50 3
99cdf0e10cSrcweir #define raGray75 4
100cdf0e10cSrcweir #define raGray100 5
101cdf0e10cSrcweir
102cdf0e10cSrcweir // Zellschutz
103cdf0e10cSrcweir #define paProtect 1
104cdf0e10cSrcweir #define paHideFormula 2
105cdf0e10cSrcweir #define paHideAll 4
106cdf0e10cSrcweir #define paHidePrint 8
107cdf0e10cSrcweir
108cdf0e10cSrcweir // ZahlenFormatFlags
109cdf0e10cSrcweir #define vfStandard 0
110cdf0e10cSrcweir #define vfMoney 1
111cdf0e10cSrcweir #define vfThousend 2
112cdf0e10cSrcweir #define vfPercent 3
113cdf0e10cSrcweir #define vfExponent 4
114cdf0e10cSrcweir #define vfZerro 5
115cdf0e10cSrcweir #define vfDate 6
116cdf0e10cSrcweir #define vfTime 7
117cdf0e10cSrcweir #define vfBoolean 8
118cdf0e10cSrcweir #define vfStandardRed 9
119cdf0e10cSrcweir #define vfMoneyRed 10
120cdf0e10cSrcweir #define vfThousendRed 11
121cdf0e10cSrcweir #define vfPercentRed 12
122cdf0e10cSrcweir #define vfExponentRed 13
123cdf0e10cSrcweir #define vfFormula 14
124cdf0e10cSrcweir #define vfString 15
125cdf0e10cSrcweir #define vfNone 16
126cdf0e10cSrcweir
127cdf0e10cSrcweir // DatumsFormatFlags
128cdf0e10cSrcweir #define df_NDMY_Long 0
129cdf0e10cSrcweir #define df_DMY_Long 1
130cdf0e10cSrcweir #define df_MY_Long 2
131cdf0e10cSrcweir #define df_NDM_Long 3
132cdf0e10cSrcweir #define df_DM_Long 4
133cdf0e10cSrcweir #define df_M_Long 5
134cdf0e10cSrcweir #define df_NDMY_Short 6
135cdf0e10cSrcweir #define df_DMY_Short 7
136cdf0e10cSrcweir #define df_MY_Short 8
137cdf0e10cSrcweir #define df_NDM_Short 9
138cdf0e10cSrcweir #define df_DM_Short 10
139cdf0e10cSrcweir #define df_M_Short 11
140cdf0e10cSrcweir #define df_Q_Long 12
141cdf0e10cSrcweir #define df_Q_Short 13
142cdf0e10cSrcweir
143cdf0e10cSrcweir // ZeitFormatFlags
144cdf0e10cSrcweir #define tf_HMS_Long 0
145cdf0e10cSrcweir #define tf_HM_Long 1
146cdf0e10cSrcweir #define tf_HMS_Short 2
147cdf0e10cSrcweir #define tf_HM_Short 3
148cdf0e10cSrcweir
149cdf0e10cSrcweir // Attribute fuer FormatVorlage
150cdf0e10cSrcweir #define pfValue 0x01
151cdf0e10cSrcweir #define pfFont 0x02
152cdf0e10cSrcweir #define pfJustify 0x04
153cdf0e10cSrcweir #define pfFrame 0x08
154cdf0e10cSrcweir #define pfRaster 0x10
155cdf0e10cSrcweir #define pfProtection 0x20
156cdf0e10cSrcweir
157cdf0e10cSrcweir // Displayflags fuer die Tabelle
158cdf0e10cSrcweir #define dfFormula 0x0001 // Formeln
159cdf0e10cSrcweir #define dfZerro 0x0002 // Nullwerte
160cdf0e10cSrcweir #define dfGrid 0x0004 // Gitternetz
161cdf0e10cSrcweir #define dfPageBreak 0x0008 // Seitenumbruch
162cdf0e10cSrcweir #define dfColRowBar 0x0010 // Zeilen/Spalten Koepfe (Dummy)
163cdf0e10cSrcweir #define dfSyntax 0x0020 // Syntax Highlighting
164cdf0e10cSrcweir #define dfPrintPage 0x0040 // Druckbildansicht (Dummy)
165cdf0e10cSrcweir #define dfObjectAll 0x0080 // Objekte anzeigen
166cdf0e10cSrcweir #define dfObjectFrame 0x0100 // Objekte als Platzhalter
167cdf0e10cSrcweir #define dfObjectNone 0x0200 // Objekte nicht anzeigen
168cdf0e10cSrcweir #define dfNoteMark 0x0400 // Notizanzeiger
169cdf0e10cSrcweir #define dfProtectMark 0x0800 // Schutzanzeiger
170cdf0e10cSrcweir
171cdf0e10cSrcweir // Objekt Typen
172cdf0e10cSrcweir #define otNone 0 // s.u.
173cdf0e10cSrcweir #define otOle 1
174cdf0e10cSrcweir #define otImage 2
175cdf0e10cSrcweir #define otChart 3
176cdf0e10cSrcweir
177cdf0e10cSrcweir // Grafik Typen
178cdf0e10cSrcweir #define gtNone 0 // Kann nicht vorkommen
179cdf0e10cSrcweir #define gtOle 1 // Ole 1.0 Objekt
180cdf0e10cSrcweir #define gtImage 2 // Image (Bitmap oder Metafile)
181cdf0e10cSrcweir #define gtChart 3 // Chart
182cdf0e10cSrcweir
183cdf0e10cSrcweir // Datum/Uhrzeit
184cdf0e10cSrcweir struct Sc10DateTime
185cdf0e10cSrcweir {
186cdf0e10cSrcweir sal_uInt16 Year;
187cdf0e10cSrcweir sal_uInt16 Month;
188cdf0e10cSrcweir sal_uInt16 Day;
189cdf0e10cSrcweir sal_uInt16 Hour;
190cdf0e10cSrcweir sal_uInt16 Min;
191cdf0e10cSrcweir sal_uInt16 Sec;
192cdf0e10cSrcweir };
193cdf0e10cSrcweir
194cdf0e10cSrcweir // ZahlenFormate
195cdf0e10cSrcweir struct Sc10ValueFormat
196cdf0e10cSrcweir {
197cdf0e10cSrcweir sal_uInt8 Format; // Zahl, Waehrung, Prozent etc.
198cdf0e10cSrcweir sal_uInt8 Info; // Anzahl Nachkommastellen, Anzahl Stellen, bzw. Datums/Zeitformat
199cdf0e10cSrcweir };
200cdf0e10cSrcweir
201cdf0e10cSrcweir // Fontbeschreibung
202cdf0e10cSrcweir struct Sc10LogFont
203cdf0e10cSrcweir {
204cdf0e10cSrcweir sal_Int16 lfHeight;
205cdf0e10cSrcweir sal_Int16 lfWidth;
206cdf0e10cSrcweir sal_Int16 lfEscapement;
207cdf0e10cSrcweir sal_Int16 lfOrientation;
208cdf0e10cSrcweir sal_Int16 lfWeight;
209cdf0e10cSrcweir sal_uInt8 lfItalic;
210cdf0e10cSrcweir sal_uInt8 lfUnderline;
211cdf0e10cSrcweir sal_uInt8 lfStrikeOut;
212cdf0e10cSrcweir sal_uInt8 lfCharSet;
213cdf0e10cSrcweir sal_uInt8 lfOutPrecision;
214cdf0e10cSrcweir sal_uInt8 lfClipPrecision;
215cdf0e10cSrcweir sal_uInt8 lfQuality;
216cdf0e10cSrcweir sal_uInt8 lfPitchAndFamily;
217cdf0e10cSrcweir sal_Char lfFaceName[32];
218cdf0e10cSrcweir
219cdf0e10cSrcweir int operator==( const Sc10LogFont& rData ) const;
220cdf0e10cSrcweir };
221cdf0e10cSrcweir
222cdf0e10cSrcweir // RGB-Frabwerte
223cdf0e10cSrcweir struct Sc10Color
224cdf0e10cSrcweir {
225cdf0e10cSrcweir sal_uInt8 Dummy;
226cdf0e10cSrcweir sal_uInt8 Blue;
227cdf0e10cSrcweir sal_uInt8 Green;
228cdf0e10cSrcweir sal_uInt8 Red;
229cdf0e10cSrcweir int operator==( const Sc10Color& rColor ) const;
230cdf0e10cSrcweir };
231cdf0e10cSrcweir
232cdf0e10cSrcweir // Blockbeschreibung
233cdf0e10cSrcweir struct Sc10BlockRect
234cdf0e10cSrcweir {
235cdf0e10cSrcweir sal_Int16 x1;
236cdf0e10cSrcweir sal_Int16 y1;
237cdf0e10cSrcweir sal_Int16 x2;
238cdf0e10cSrcweir sal_Int16 y2;
239cdf0e10cSrcweir };
240cdf0e10cSrcweir
241cdf0e10cSrcweir // Datenbank-Bereich
242cdf0e10cSrcweir struct Sc10DataBaseRec
243cdf0e10cSrcweir {
244cdf0e10cSrcweir sal_Char Name[32];
245cdf0e10cSrcweir sal_Int16 Tab;
246cdf0e10cSrcweir Sc10BlockRect Block;
247cdf0e10cSrcweir sal_uInt8 RowHeader;
248cdf0e10cSrcweir sal_Int16 SortField0;
249cdf0e10cSrcweir sal_uInt8 SortUpOrder0;
250cdf0e10cSrcweir sal_Int16 SortField1;
251cdf0e10cSrcweir sal_uInt8 SortUpOrder1;
252cdf0e10cSrcweir sal_Int16 SortField2;
253cdf0e10cSrcweir sal_uInt8 SortUpOrder2;
254cdf0e10cSrcweir sal_uInt8 IncludeFormat;
255cdf0e10cSrcweir sal_Int16 QueryField0;
256cdf0e10cSrcweir sal_Int16 QueryOp0;
257cdf0e10cSrcweir sal_uInt8 QueryByString0;
258cdf0e10cSrcweir sal_Char QueryString0[64];
259cdf0e10cSrcweir double QueryValue0;
260cdf0e10cSrcweir sal_Int16 QueryConnect1;
261cdf0e10cSrcweir sal_Int16 QueryField1;
262cdf0e10cSrcweir sal_Int16 QueryOp1;
263cdf0e10cSrcweir sal_uInt8 QueryByString1;
264cdf0e10cSrcweir sal_Char QueryString1[64];
265cdf0e10cSrcweir double QueryValue1;
266cdf0e10cSrcweir sal_Int16 QueryConnect2;
267cdf0e10cSrcweir sal_Int16 QueryField2;
268cdf0e10cSrcweir sal_Int16 QueryOp2;
269cdf0e10cSrcweir sal_uInt8 QueryByString2;
270cdf0e10cSrcweir sal_Char QueryString2[64];
271cdf0e10cSrcweir double QueryValue2;
272cdf0e10cSrcweir };
273cdf0e10cSrcweir
274cdf0e10cSrcweir // Kopf/Fusszeilen-Beschreibung
275cdf0e10cSrcweir struct Sc10HeadFootLine
276cdf0e10cSrcweir {
277cdf0e10cSrcweir sal_Char Title[128];
278cdf0e10cSrcweir Sc10LogFont LogFont;
279cdf0e10cSrcweir sal_uInt8 HorJustify;
280cdf0e10cSrcweir sal_uInt8 VerJustify;
281cdf0e10cSrcweir sal_uInt16 Raster;
282cdf0e10cSrcweir sal_uInt16 Frame;
283cdf0e10cSrcweir Sc10Color TextColor;
284cdf0e10cSrcweir Sc10Color BackColor;
285cdf0e10cSrcweir Sc10Color RasterColor;
286cdf0e10cSrcweir sal_uInt16 FrameColor; // Nibble Codierte Farben link oben rechts unten
287cdf0e10cSrcweir sal_uInt16 Reserved;
288cdf0e10cSrcweir
289cdf0e10cSrcweir int operator==( const Sc10HeadFootLine& rData ) const;
290cdf0e10cSrcweir };
291cdf0e10cSrcweir
292cdf0e10cSrcweir // Seitenformat
293cdf0e10cSrcweir struct Sc10PageFormat
294cdf0e10cSrcweir {
295cdf0e10cSrcweir Sc10HeadFootLine HeadLine;
296cdf0e10cSrcweir Sc10HeadFootLine FootLine;
297cdf0e10cSrcweir sal_Int16 Orientation;
298cdf0e10cSrcweir sal_Int16 Width;
299cdf0e10cSrcweir sal_Int16 Height;
300cdf0e10cSrcweir sal_Int16 NonPrintableX;
301cdf0e10cSrcweir sal_Int16 NonPrintableY;
302cdf0e10cSrcweir sal_Int16 Left;
303cdf0e10cSrcweir sal_Int16 Top;
304cdf0e10cSrcweir sal_Int16 Right;
305cdf0e10cSrcweir sal_Int16 Bottom;
306cdf0e10cSrcweir sal_Int16 Head;
307cdf0e10cSrcweir sal_Int16 Foot;
308cdf0e10cSrcweir sal_uInt8 HorCenter;
309cdf0e10cSrcweir sal_uInt8 VerCenter;
310cdf0e10cSrcweir sal_uInt8 PrintGrid;
311cdf0e10cSrcweir sal_uInt8 PrintColRow;
312cdf0e10cSrcweir sal_uInt8 PrintNote;
313cdf0e10cSrcweir sal_uInt8 TopBottomDir;
314cdf0e10cSrcweir sal_Char PrintAreaName[32];
315cdf0e10cSrcweir Sc10BlockRect PrintArea;
316cdf0e10cSrcweir sal_Char PrnZoom[6]; // Pascal 6 Byte Realzahl
317cdf0e10cSrcweir sal_uInt16 FirstPageNo;
318cdf0e10cSrcweir sal_Int16 RowRepeatStart;
319cdf0e10cSrcweir sal_Int16 RowRepeatEnd;
320cdf0e10cSrcweir sal_Int16 ColRepeatStart;
321cdf0e10cSrcweir sal_Int16 ColRepeatEnd;
322cdf0e10cSrcweir sal_Char Reserved[26];
323cdf0e10cSrcweir
324cdf0e10cSrcweir int operator==( const Sc10PageFormat& rData ) const;
325cdf0e10cSrcweir };
326cdf0e10cSrcweir
327cdf0e10cSrcweir // Tabellenschutz
328cdf0e10cSrcweir struct Sc10TableProtect
329cdf0e10cSrcweir {
330cdf0e10cSrcweir sal_Char PassWord[16];
331cdf0e10cSrcweir sal_uInt16 Flags;
332cdf0e10cSrcweir sal_uInt8 Protect;
333cdf0e10cSrcweir };
334cdf0e10cSrcweir
335cdf0e10cSrcweir // Documentschutz
336cdf0e10cSrcweir struct Sc10SheetProtect
337cdf0e10cSrcweir {
338cdf0e10cSrcweir sal_Char PassWord[16];
339cdf0e10cSrcweir sal_uInt16 Flags;
340cdf0e10cSrcweir sal_uInt8 Protect;
341cdf0e10cSrcweir };
342cdf0e10cSrcweir
343cdf0e10cSrcweir // Dateikopf StarCalc 1.0 Datei
344cdf0e10cSrcweir struct Sc10FileHeader
345cdf0e10cSrcweir {
346cdf0e10cSrcweir sal_Char CopyRight[30];
347cdf0e10cSrcweir sal_uInt16 Version;
348cdf0e10cSrcweir sal_Char Reserved[32];
349cdf0e10cSrcweir };
350cdf0e10cSrcweir
351cdf0e10cSrcweir // Benutzer-Definierte Datei-Beschreibung
352cdf0e10cSrcweir struct Sc10FileInfo
353cdf0e10cSrcweir {
354cdf0e10cSrcweir sal_Char Title[64];
355cdf0e10cSrcweir sal_Char Thema[64];
356cdf0e10cSrcweir sal_Char Keys[64];
357cdf0e10cSrcweir sal_Char Note[256];
358cdf0e10cSrcweir sal_Char InfoLabel0[16];
359cdf0e10cSrcweir sal_Char InfoLabel1[16];
360cdf0e10cSrcweir sal_Char InfoLabel2[16];
361cdf0e10cSrcweir sal_Char InfoLabel3[16];
362cdf0e10cSrcweir sal_Char Info0[32];
363cdf0e10cSrcweir sal_Char Info1[32];
364cdf0e10cSrcweir sal_Char Info2[32];
365cdf0e10cSrcweir sal_Char Info3[32];
366cdf0e10cSrcweir sal_Char CreateAuthor[64];
367cdf0e10cSrcweir sal_Char ChangeAuthor[64];
368cdf0e10cSrcweir sal_Char PrintAuthor[64];
369cdf0e10cSrcweir Sc10DateTime CreateDate;
370cdf0e10cSrcweir Sc10DateTime ChangeDate;
371cdf0e10cSrcweir Sc10DateTime PrintDate;
372cdf0e10cSrcweir sal_uInt32 PageCount;
373cdf0e10cSrcweir sal_uInt32 ChartCount;
374cdf0e10cSrcweir sal_uInt32 PictureCount;
375cdf0e10cSrcweir sal_uInt32 GraphCount;
376cdf0e10cSrcweir sal_uInt32 OleCount;
377cdf0e10cSrcweir sal_uInt32 NoteCount;
378cdf0e10cSrcweir sal_uInt32 TextCellCount;
379cdf0e10cSrcweir sal_uInt32 ValueCellCount;
380cdf0e10cSrcweir sal_uInt32 FormulaCellCount;
381cdf0e10cSrcweir sal_uInt32 CellCount;
382cdf0e10cSrcweir sal_Char Reserved[52];
383cdf0e10cSrcweir };
384cdf0e10cSrcweir
385cdf0e10cSrcweir // Letze Cursorposition
386cdf0e10cSrcweir struct Sc10EditStateInfo
387cdf0e10cSrcweir {
388cdf0e10cSrcweir // Cursor Position
389cdf0e10cSrcweir sal_uInt16 CarretX;
390cdf0e10cSrcweir sal_uInt16 CarretY;
391cdf0e10cSrcweir sal_uInt16 CarretZ;
392cdf0e10cSrcweir // Linke obere Ecke der Tabelle im Fenster
393cdf0e10cSrcweir sal_uInt16 DeltaX;
394cdf0e10cSrcweir sal_uInt16 DeltaY;
395cdf0e10cSrcweir sal_uInt16 DeltaZ;
396cdf0e10cSrcweir // Ueberfluessig in StarCalc 3.0
397cdf0e10cSrcweir sal_uInt8 DataBaseMode;
398cdf0e10cSrcweir sal_Char Reserved[51];
399cdf0e10cSrcweir };
400cdf0e10cSrcweir
401cdf0e10cSrcweir // Attribut-Eintrag
402cdf0e10cSrcweir struct Sc10ColData
403cdf0e10cSrcweir {
404cdf0e10cSrcweir sal_uInt16 Row;
405cdf0e10cSrcweir sal_uInt16 Value;
406cdf0e10cSrcweir };
407cdf0e10cSrcweir
408cdf0e10cSrcweir // ZellAttribut-Beschreibung
409cdf0e10cSrcweir struct Sc10ColAttr
410cdf0e10cSrcweir {
411cdf0e10cSrcweir sal_uInt16 Count;
412cdf0e10cSrcweir Sc10ColData* pData;
413cdf0e10cSrcweir
Sc10ColAttrSc10ColAttr414cdf0e10cSrcweir Sc10ColAttr() : pData(NULL) {}
~Sc10ColAttrSc10ColAttr415*a6014f97SArmin Le Grand ~Sc10ColAttr() { delete [] pData; }
416cdf0e10cSrcweir };
417cdf0e10cSrcweir
418cdf0e10cSrcweir // GraphHeader
419cdf0e10cSrcweir struct Sc10GraphHeader
420cdf0e10cSrcweir {
421cdf0e10cSrcweir sal_uInt8 Typ; // Typ der Grafik (Ole-Objekt, Image (Bitmap oder MetaFile), Chart-Object)
422cdf0e10cSrcweir sal_Int16 CarretX; // ZellPosition der Grafik
423cdf0e10cSrcweir sal_Int16 CarretY;
424cdf0e10cSrcweir sal_Int16 CarretZ;
425cdf0e10cSrcweir sal_Int32 x; // x,y Abstand zum Zellrand in Pixel (Pixel weil ich Grafiken in Fenstern ablege)
426cdf0e10cSrcweir sal_Int32 y;
427cdf0e10cSrcweir sal_Int32 w; // w,h Breite und Hoehe in Pixel
428cdf0e10cSrcweir sal_Int32 h;
429cdf0e10cSrcweir sal_uInt8 IsRelPos; // Ist die Position relativ zur Zelle oder absolute in der Tabelle
430cdf0e10cSrcweir sal_uInt8 DoPrint; // Soll die Grafik ausgedruckt werden
431cdf0e10cSrcweir sal_uInt16 FrameType; // Art der Umrandung um die Grafik (Keine, Einfach, Doppelt, Einfach Dick, Doppelt Dick)
432cdf0e10cSrcweir sal_uInt8 IsTransparent; // Soll der Hintergrund gezeichnet werden
433cdf0e10cSrcweir Sc10Color FrameColor; // Umrandungsfarbe als RGB-Wert
434cdf0e10cSrcweir Sc10Color BackColor; // Hintergrundfarbe als RGB-Wert
435cdf0e10cSrcweir sal_Char Reserved[32]; // Na was wohl
436cdf0e10cSrcweir };
437cdf0e10cSrcweir
438cdf0e10cSrcweir // ImageHeader
439cdf0e10cSrcweir struct Sc10ImageHeader
440cdf0e10cSrcweir {
441cdf0e10cSrcweir sal_Char FileName[128]; // Dateiname des urspruenglich eingefuegten Bildes
442cdf0e10cSrcweir sal_Int16 Typ; // Typ der Grafik (Bitmap oder Metafile)
443cdf0e10cSrcweir sal_uInt8 Linked; // Kann nicht vorkommen
444cdf0e10cSrcweir sal_Int16 x1; // Urspruengliche Groesse der Grafik (nur fuer Metafiles)
445cdf0e10cSrcweir sal_Int16 y1;
446cdf0e10cSrcweir sal_Int16 x2;
447cdf0e10cSrcweir sal_Int16 y2;
448cdf0e10cSrcweir sal_uInt32 Size; // Groesse der Grafik in BYTES
449cdf0e10cSrcweir };
450cdf0e10cSrcweir
451cdf0e10cSrcweir // ChartHeader
452cdf0e10cSrcweir struct Sc10ChartHeader
453cdf0e10cSrcweir {
454cdf0e10cSrcweir sal_Int16 MM; // Meatfile Struktur MapMode, Breite, Hoehe
455cdf0e10cSrcweir sal_Int16 xExt;
456cdf0e10cSrcweir sal_Int16 yExt;
457cdf0e10cSrcweir sal_uInt32 Size; // Groesse der Grafik in BYTES
458cdf0e10cSrcweir };
459cdf0e10cSrcweir
460cdf0e10cSrcweir // ChartSheetData
461cdf0e10cSrcweir struct Sc10ChartSheetData
462cdf0e10cSrcweir {
463cdf0e10cSrcweir sal_uInt8 HasTitle; // Hat das Chart Daten aus der Tabell fuer einen Titel
464cdf0e10cSrcweir sal_Int16 TitleX; // Zellposition des Titels
465cdf0e10cSrcweir sal_Int16 TitleY;
466cdf0e10cSrcweir sal_uInt8 HasSubTitle; // Hat das Chart Daten aus der Tabell fuer einen Untertitel
467cdf0e10cSrcweir sal_Int16 SubTitleX; // Zellposition des Untertitels
468cdf0e10cSrcweir sal_Int16 SubTitleY;
469cdf0e10cSrcweir sal_uInt8 HasLeftTitle; // Hat das Chart Daten aus der Tabelle fuer einen Linken-Titel
470cdf0e10cSrcweir sal_Int16 LeftTitleX; // Zellposition des Linken-Titels
471cdf0e10cSrcweir sal_Int16 LeftTitleY;
472cdf0e10cSrcweir sal_uInt8 HasLegend; // Hat das Chart Daten aus der Tabelle fuer eine Legende
473cdf0e10cSrcweir sal_Int16 LegendX1; // Zellen der Legende
474cdf0e10cSrcweir sal_Int16 LegendY1;
475cdf0e10cSrcweir sal_Int16 LegendX2;
476cdf0e10cSrcweir sal_Int16 LegendY2;
477cdf0e10cSrcweir sal_uInt8 HasLabel; // Hat das Chart Daten aus der Tabelle fuer die Achsbeschriftung
478cdf0e10cSrcweir sal_Int16 LabelX1; // Zellen der Achsbeschriftung
479cdf0e10cSrcweir sal_Int16 LabelY1;
480cdf0e10cSrcweir sal_Int16 LabelX2;
481cdf0e10cSrcweir sal_Int16 LabelY2;
482cdf0e10cSrcweir sal_Int16 DataX1; // Zellen der Daten
483cdf0e10cSrcweir sal_Int16 DataY1;
484cdf0e10cSrcweir sal_Int16 DataX2;
485cdf0e10cSrcweir sal_Int16 DataY2;
486cdf0e10cSrcweir sal_Char Reserved[64];
487cdf0e10cSrcweir };
488cdf0e10cSrcweir
489cdf0e10cSrcweir #define AGPie2D 1 // Pie Chart 2D
490cdf0e10cSrcweir #define AGPie3D 2 // Pie Chart 3D
491cdf0e10cSrcweir #define AGBar2D 3 // Bar Chart 2D
492cdf0e10cSrcweir #define AGBar3D 4 // Bar Chart 3D
493cdf0e10cSrcweir #define AGGantt 5 // Gantt Diagramm
494cdf0e10cSrcweir #define AGLine 6 // Line Chart
495cdf0e10cSrcweir #define AGLogLine 7 // Logarythmic-Coordinate Chart
496cdf0e10cSrcweir #define AGArea 8 // Area Chart
497cdf0e10cSrcweir #define AGHLC 11 // High-Low-Close Chart
498cdf0e10cSrcweir #define AGPolar 10 // Polar-Coordinate Chart
499cdf0e10cSrcweir
500cdf0e10cSrcweir typedef sal_Char Sc10ChartText[30];
501cdf0e10cSrcweir
502cdf0e10cSrcweir struct Sc10ChartTypeData
503cdf0e10cSrcweir {
504cdf0e10cSrcweir sal_Int16 NumSets;
505cdf0e10cSrcweir sal_Int16 NumPoints;
506cdf0e10cSrcweir sal_Int16 DrawMode;
507cdf0e10cSrcweir sal_Int16 GraphType;
508cdf0e10cSrcweir sal_Int16 GraphStyle;
509cdf0e10cSrcweir sal_Char GraphTitle[80];
510cdf0e10cSrcweir sal_Char BottomTitle[80];
511cdf0e10cSrcweir sal_Int16 SymbolData[256];
512cdf0e10cSrcweir sal_Int16 ColorData[256];
513cdf0e10cSrcweir sal_Int16 ThickLines[256];
514cdf0e10cSrcweir sal_Int16 PatternData[256];
515cdf0e10cSrcweir sal_Int16 LinePatternData[256];
516cdf0e10cSrcweir sal_Int16 NumGraphStyles[11];
517cdf0e10cSrcweir sal_Int16 ShowLegend;
518cdf0e10cSrcweir Sc10ChartText LegendText[256];
519cdf0e10cSrcweir sal_Int16 ExplodePie;
520cdf0e10cSrcweir sal_Int16 FontUse;
521cdf0e10cSrcweir sal_Int16 FontFamily[5];
522cdf0e10cSrcweir sal_Int16 FontStyle[5];
523cdf0e10cSrcweir sal_Int16 FontSize[5];
524cdf0e10cSrcweir sal_Int16 GridStyle;
525cdf0e10cSrcweir sal_Int16 Labels;
526cdf0e10cSrcweir sal_Int16 LabelEvery;
527cdf0e10cSrcweir Sc10ChartText LabelText[50];
528cdf0e10cSrcweir sal_Char LeftTitle[80];
529cdf0e10cSrcweir sal_Char Reserved[4646];
530cdf0e10cSrcweir };
531cdf0e10cSrcweir
532cdf0e10cSrcweir
533cdf0e10cSrcweir // FontAttribut
534cdf0e10cSrcweir class Sc10FontData : public ScDataObject
535cdf0e10cSrcweir {
536cdf0e10cSrcweir public:
537cdf0e10cSrcweir sal_Int16 Height;
538cdf0e10cSrcweir sal_uInt8 CharSet;
539cdf0e10cSrcweir sal_uInt8 PitchAndFamily;
540cdf0e10cSrcweir sal_Char FaceName[32];
541cdf0e10cSrcweir
Sc10FontData(const Sc10FontData & rData)542cdf0e10cSrcweir Sc10FontData( const Sc10FontData& rData ) :
543cdf0e10cSrcweir ScDataObject( rData ),
544cdf0e10cSrcweir Height( rData.Height ),
545cdf0e10cSrcweir CharSet( rData.CharSet ),
546cdf0e10cSrcweir PitchAndFamily( rData.PitchAndFamily )
547cdf0e10cSrcweir {
548cdf0e10cSrcweir strncpy( FaceName, rData.FaceName, sizeof(FaceName) );
549cdf0e10cSrcweir FaceName[sizeof(FaceName)-1] = 0;
550cdf0e10cSrcweir }
551cdf0e10cSrcweir Sc10FontData( SvStream& rStream );
Clone() const552cdf0e10cSrcweir virtual ScDataObject* Clone() const { return new Sc10FontData(*this); }
553cdf0e10cSrcweir };
554cdf0e10cSrcweir
555cdf0e10cSrcweir
556cdf0e10cSrcweir // Font-Collection
557cdf0e10cSrcweir class Sc10FontCollection : public ScCollection
558cdf0e10cSrcweir {
559cdf0e10cSrcweir protected:
560cdf0e10cSrcweir sal_uLong nError;
561cdf0e10cSrcweir public:
562cdf0e10cSrcweir Sc10FontCollection( SvStream& rStream );
GetError()563cdf0e10cSrcweir sal_uLong GetError() { return nError; }
At(sal_uInt16 nIndex)564cdf0e10cSrcweir Sc10FontData* At(sal_uInt16 nIndex) { return (Sc10FontData*)ScCollection::At(nIndex); }
565cdf0e10cSrcweir private:
566cdf0e10cSrcweir using ScCollection::At;
567cdf0e10cSrcweir };
568cdf0e10cSrcweir
569cdf0e10cSrcweir
570cdf0e10cSrcweir //BereichsDaten
571cdf0e10cSrcweir class Sc10NameData : public ScDataObject
572cdf0e10cSrcweir {
573cdf0e10cSrcweir public :
574cdf0e10cSrcweir sal_Char Name[32];
575cdf0e10cSrcweir sal_Char Reference[64];
576cdf0e10cSrcweir sal_Char Reserved[12];
577cdf0e10cSrcweir
Sc10NameData(const Sc10NameData & rData)578cdf0e10cSrcweir Sc10NameData(const Sc10NameData& rData) :
579cdf0e10cSrcweir ScDataObject( rData )
580cdf0e10cSrcweir {
581cdf0e10cSrcweir strncpy(Name, rData.Name, sizeof(Name));
582cdf0e10cSrcweir Name[sizeof(Name)-1] = 0;
583cdf0e10cSrcweir strncpy(Reference, rData.Reference, sizeof(Reference));
584cdf0e10cSrcweir Reference[sizeof(Reference)-1] = 0;
585cdf0e10cSrcweir memcpy(Reserved, rData.Reserved, sizeof(Reserved));
586cdf0e10cSrcweir }
587cdf0e10cSrcweir Sc10NameData(SvStream& rStream);
Clone() const588cdf0e10cSrcweir virtual ScDataObject* Clone() const { return new Sc10NameData(*this); }
589cdf0e10cSrcweir };
590cdf0e10cSrcweir
591cdf0e10cSrcweir
592cdf0e10cSrcweir // Bereichs-Collection
593cdf0e10cSrcweir class Sc10NameCollection : public ScCollection
594cdf0e10cSrcweir {
595cdf0e10cSrcweir protected:
596cdf0e10cSrcweir sal_uLong nError;
597cdf0e10cSrcweir public:
598cdf0e10cSrcweir Sc10NameCollection(SvStream& rStream);
GetError()599cdf0e10cSrcweir sal_uLong GetError() { return nError; }
At(sal_uInt16 nIndex)600cdf0e10cSrcweir Sc10NameData* At(sal_uInt16 nIndex) { return (Sc10NameData*)ScCollection::At(nIndex); }
601cdf0e10cSrcweir private:
602cdf0e10cSrcweir using ScCollection::At;
603cdf0e10cSrcweir };
604cdf0e10cSrcweir
605cdf0e10cSrcweir
606cdf0e10cSrcweir // Vorlage-Daten
607cdf0e10cSrcweir class Sc10PatternData : public ScDataObject
608cdf0e10cSrcweir {
609cdf0e10cSrcweir public:
610cdf0e10cSrcweir sal_Char Name[32];
611cdf0e10cSrcweir Sc10ValueFormat ValueFormat;
612cdf0e10cSrcweir Sc10LogFont LogFont;
613cdf0e10cSrcweir sal_uInt16 Attr;
614cdf0e10cSrcweir sal_uInt16 Justify;
615cdf0e10cSrcweir sal_uInt16 Frame;
616cdf0e10cSrcweir sal_uInt16 Raster;
617cdf0e10cSrcweir sal_uInt16 nColor;
618cdf0e10cSrcweir sal_uInt16 FrameColor;
619cdf0e10cSrcweir sal_uInt16 Flags;
620cdf0e10cSrcweir sal_uInt16 FormatFlags;
621cdf0e10cSrcweir sal_Char Reserved[8];
622cdf0e10cSrcweir
Sc10PatternData(const Sc10PatternData & rData)623cdf0e10cSrcweir Sc10PatternData(const Sc10PatternData& rData) :
624cdf0e10cSrcweir ScDataObject( rData )
625cdf0e10cSrcweir {
626cdf0e10cSrcweir strncpy(Name, rData.Name, sizeof(Name));
627cdf0e10cSrcweir Name[sizeof(Name)-1] = 0;
628cdf0e10cSrcweir memcpy(&ValueFormat, &rData.ValueFormat, sizeof(ValueFormat));
629cdf0e10cSrcweir memcpy(&LogFont, &rData.LogFont, sizeof(LogFont));
630cdf0e10cSrcweir Attr = rData.Attr;
631cdf0e10cSrcweir Justify = rData.Justify;
632cdf0e10cSrcweir Frame = rData.Frame;
633cdf0e10cSrcweir Raster = rData.Raster;
634cdf0e10cSrcweir nColor = rData.nColor;
635cdf0e10cSrcweir FrameColor = rData.FrameColor;
636cdf0e10cSrcweir Flags = rData.Flags;
637cdf0e10cSrcweir FormatFlags = rData.FormatFlags;
638cdf0e10cSrcweir memcpy(Reserved, rData.Reserved, sizeof(Reserved));
639cdf0e10cSrcweir }
640cdf0e10cSrcweir Sc10PatternData(SvStream& rStream);
Clone() const641cdf0e10cSrcweir virtual ScDataObject* Clone() const { return new Sc10PatternData(*this); }
642cdf0e10cSrcweir };
643cdf0e10cSrcweir
644cdf0e10cSrcweir
645cdf0e10cSrcweir // Vorlage-Collection
646cdf0e10cSrcweir class Sc10PatternCollection : public ScCollection
647cdf0e10cSrcweir {
648cdf0e10cSrcweir protected:
649cdf0e10cSrcweir sal_uLong nError;
650cdf0e10cSrcweir public:
651cdf0e10cSrcweir Sc10PatternCollection(SvStream& rStream);
GetError()652cdf0e10cSrcweir sal_uLong GetError() { return nError; }
At(sal_uInt16 nIndex)653cdf0e10cSrcweir Sc10PatternData* At(sal_uInt16 nIndex) { return (Sc10PatternData*)ScCollection::At(nIndex); }
654cdf0e10cSrcweir private:
655cdf0e10cSrcweir using ScCollection::At;
656cdf0e10cSrcweir };
657cdf0e10cSrcweir
658cdf0e10cSrcweir
659cdf0e10cSrcweir // DatenBank-Daten
660cdf0e10cSrcweir class Sc10DataBaseData : public ScDataObject
661cdf0e10cSrcweir {
662cdf0e10cSrcweir public:
663cdf0e10cSrcweir Sc10DataBaseRec DataBaseRec;
664cdf0e10cSrcweir
Sc10DataBaseData(const Sc10DataBaseData & rData)665cdf0e10cSrcweir Sc10DataBaseData(const Sc10DataBaseData& rData) :
666cdf0e10cSrcweir ScDataObject( rData )
667cdf0e10cSrcweir {
668cdf0e10cSrcweir memcpy(&DataBaseRec, &rData.DataBaseRec, sizeof(DataBaseRec));
669cdf0e10cSrcweir }
670cdf0e10cSrcweir Sc10DataBaseData(SvStream& rStream);
Clone() const671cdf0e10cSrcweir virtual ScDataObject* Clone() const { return new Sc10DataBaseData(*this); }
672cdf0e10cSrcweir };
673cdf0e10cSrcweir
674cdf0e10cSrcweir
675cdf0e10cSrcweir // DatenBank-Collection
676cdf0e10cSrcweir class Sc10DataBaseCollection : public ScCollection
677cdf0e10cSrcweir {
678cdf0e10cSrcweir protected:
679cdf0e10cSrcweir sal_uLong nError;
680cdf0e10cSrcweir sal_Char ActName[32];
681cdf0e10cSrcweir public:
682cdf0e10cSrcweir Sc10DataBaseCollection(SvStream& rStream);
GetError()683cdf0e10cSrcweir sal_uLong GetError() { return nError; }
At(sal_uInt16 nIndex)684cdf0e10cSrcweir Sc10DataBaseData* At(sal_uInt16 nIndex) { return (Sc10DataBaseData*)ScCollection::At(nIndex); }
685cdf0e10cSrcweir private:
686cdf0e10cSrcweir using ScCollection::At;
687cdf0e10cSrcweir };
688cdf0e10cSrcweir
689cdf0e10cSrcweir
690cdf0e10cSrcweir class Sc10PageData : public ScDataObject
691cdf0e10cSrcweir {
692cdf0e10cSrcweir public:
693cdf0e10cSrcweir Sc10PageFormat aPageFormat;
Sc10PageData(const Sc10PageFormat & rFormat)694cdf0e10cSrcweir Sc10PageData( const Sc10PageFormat& rFormat ) : aPageFormat(rFormat) {}
operator ==(const Sc10PageData & rData) const695cdf0e10cSrcweir int operator==( const Sc10PageData& rData ) const
696cdf0e10cSrcweir { return aPageFormat == rData.aPageFormat; }
697cdf0e10cSrcweir virtual ScDataObject* Clone() const;
698cdf0e10cSrcweir };
699cdf0e10cSrcweir
700cdf0e10cSrcweir // Seitenformat-Collection
701cdf0e10cSrcweir class Sc10PageCollection : public ScCollection
702cdf0e10cSrcweir {
703cdf0e10cSrcweir public:
Sc10PageCollection()704cdf0e10cSrcweir Sc10PageCollection() : ScCollection(1,1) {};
At(sal_uInt16 nIndex)705cdf0e10cSrcweir Sc10PageData* At(sal_uInt16 nIndex) { return (Sc10PageData*)ScCollection::At(nIndex); }
706cdf0e10cSrcweir sal_uInt16 InsertFormat( const Sc10PageFormat& rData );
707cdf0e10cSrcweir void PutToDoc( ScDocument* pDoc );
708cdf0e10cSrcweir private:
709cdf0e10cSrcweir using ScCollection::At;
710cdf0e10cSrcweir };
711cdf0e10cSrcweir
712cdf0e10cSrcweir
713cdf0e10cSrcweir class ScfStreamProgressBar;
714cdf0e10cSrcweir
715cdf0e10cSrcweir // Import-Klasse
716cdf0e10cSrcweir class Sc10Import
717cdf0e10cSrcweir {
718cdf0e10cSrcweir SvStream& rStream;
719cdf0e10cSrcweir ScDocument* pDoc;
720cdf0e10cSrcweir Sc10Color TextPalette[16];
721cdf0e10cSrcweir Sc10Color BackPalette[16];
722cdf0e10cSrcweir Sc10Color RasterPalette[16];
723cdf0e10cSrcweir Sc10Color FramePalette[16];
724cdf0e10cSrcweir Sc10SheetProtect SheetProtect;
725cdf0e10cSrcweir Sc10FontCollection* pFontCollection;
726cdf0e10cSrcweir Sc10NameCollection* pNameCollection;
727cdf0e10cSrcweir Sc10PatternCollection* pPatternCollection;
728cdf0e10cSrcweir Sc10DataBaseCollection* pDataBaseCollection;
729cdf0e10cSrcweir sal_uLong nError;
730cdf0e10cSrcweir sal_Int16 TabCount;
731cdf0e10cSrcweir SCTAB nShowTab;
732cdf0e10cSrcweir ScViewOptions aSc30ViewOpt;
733cdf0e10cSrcweir ScfStreamProgressBar* pPrgrsBar;
734cdf0e10cSrcweir
735cdf0e10cSrcweir public:
736cdf0e10cSrcweir Sc10Import( SvStream& rStr, ScDocument* pDocument );
737cdf0e10cSrcweir ~Sc10Import();
738cdf0e10cSrcweir
739cdf0e10cSrcweir sal_uLong Import();
740cdf0e10cSrcweir void LoadFileHeader();
741cdf0e10cSrcweir void LoadFileInfo();
742cdf0e10cSrcweir void LoadEditStateInfo();
743cdf0e10cSrcweir void LoadProtect();
744cdf0e10cSrcweir void LoadViewColRowBar();
745cdf0e10cSrcweir void LoadScrZoom();
746cdf0e10cSrcweir void LoadPalette();
747cdf0e10cSrcweir void LoadFontCollection();
748cdf0e10cSrcweir void LoadNameCollection();
749cdf0e10cSrcweir void ImportNameCollection();
750cdf0e10cSrcweir void LoadPatternCollection();
751cdf0e10cSrcweir void LoadDataBaseCollection();
752cdf0e10cSrcweir void LoadTables();
753cdf0e10cSrcweir void LoadCol(SCCOL Col, SCTAB Tab);
754cdf0e10cSrcweir void LoadColAttr(SCCOL Col, SCTAB Tab);
755cdf0e10cSrcweir void LoadAttr(Sc10ColAttr& rAttr);
756cdf0e10cSrcweir void ChangeFormat(sal_uInt16 nFormat, sal_uInt16 nInfo, sal_uLong& nKey);
757cdf0e10cSrcweir void LoadObjects();
758cdf0e10cSrcweir };
759cdf0e10cSrcweir
760cdf0e10cSrcweir #endif
761cdf0e10cSrcweir
762