1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
|
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenOffice.org is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
#ifndef SC_AUTOFORM_HXX
#define SC_AUTOFORM_HXX
/*************************************************************************
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
JP 20.07.95:
Die akt. Struktur der Autoformatierung darf nicht mehr veraendert werden.
Diese wird durch unterschiedlichen Code vom StartWriter und vom StarCalc
eingelesen/geschrieben.
Sollte sich doch mal eine Aenderung nicht vermeiden lassen, dann auf
jedenfall in beiden Applikationen aendern.
The structure of table auto formatting should not changed. It is used
by different code of Writer and Calc. If a change is necessary, the
source code of both applications must be changed!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
**************************************************************************/
#include "scitems.hxx"
#include <svx/adjitem.hxx>
#include <svx/algitem.hxx>
#include <svx/boxitem.hxx>
#include <svx/brshitem.hxx>
#include <svx/cntritem.hxx>
#include <svx/colritem.hxx>
#include <svx/crsditem.hxx>
#include <svx/fhgtitem.hxx>
#include <svx/fontitem.hxx>
#include <svx/postitem.hxx>
#include <svx/shdditem.hxx>
#include <svx/udlnitem.hxx>
#include <svx/wghtitem.hxx>
#include <svx/rotmodit.hxx>
#include <svl/intitem.hxx>
#include <svx/bolnitem.hxx>
#include "scdllapi.h"
#include "collect.hxx"
#include "global.hxx"
#include "zforauto.hxx"
struct ScAfVersions;
/// Contains all items for one cell of a table autoformat.
class ScAutoFormatDataField
{
private:
SvxFontItem aFont;
SvxFontHeightItem aHeight;
SvxWeightItem aWeight;
SvxPostureItem aPosture;
SvxFontItem aCJKFont;
SvxFontHeightItem aCJKHeight;
SvxWeightItem aCJKWeight;
SvxPostureItem aCJKPosture;
SvxFontItem aCTLFont;
SvxFontHeightItem aCTLHeight;
SvxWeightItem aCTLWeight;
SvxPostureItem aCTLPosture;
SvxUnderlineItem aUnderline;
SvxOverlineItem aOverline;
SvxCrossedOutItem aCrossedOut;
SvxContourItem aContour;
SvxShadowedItem aShadowed;
SvxColorItem aColor;
SvxBoxItem aBox;
SvxLineItem aTLBR;
SvxLineItem aBLTR;
SvxBrushItem aBackground;
// Writer specific
SvxAdjustItem aAdjust;
// Calc specific
SvxHorJustifyItem aHorJustify;
SvxVerJustifyItem aVerJustify;
SfxBoolItem aStacked;
SvxMarginItem aMargin;
SfxBoolItem aLinebreak;
// from SO5, 504k on, rotated text
SfxInt32Item aRotateAngle;
SvxRotateModeItem aRotateMode;
// number format
ScNumFormatAbbrev aNumFormat;
public:
ScAutoFormatDataField();
ScAutoFormatDataField( const ScAutoFormatDataField& rCopy );
~ScAutoFormatDataField();
const ScNumFormatAbbrev& GetNumFormat() const { return aNumFormat; }
const SvxFontItem& GetFont() const { return aFont; }
const SvxFontHeightItem& GetHeight() const { return aHeight; }
const SvxWeightItem& GetWeight() const { return aWeight; }
const SvxPostureItem& GetPosture() const { return aPosture; }
const SvxFontItem& GetCJKFont() const { return aCJKFont; }
const SvxFontHeightItem& GetCJKHeight() const { return aCJKHeight; }
const SvxWeightItem& GetCJKWeight() const { return aCJKWeight; }
const SvxPostureItem& GetCJKPosture() const { return aCJKPosture; }
const SvxFontItem& GetCTLFont() const { return aCTLFont; }
const SvxFontHeightItem& GetCTLHeight() const { return aCTLHeight; }
const SvxWeightItem& GetCTLWeight() const { return aCTLWeight; }
const SvxPostureItem& GetCTLPosture() const { return aCTLPosture; }
const SvxUnderlineItem& GetUnderline() const { return aUnderline; }
const SvxOverlineItem& GetOverline() const { return aOverline; }
const SvxCrossedOutItem& GetCrossedOut() const { return aCrossedOut; }
const SvxContourItem& GetContour() const { return aContour; }
const SvxShadowedItem& GetShadowed() const { return aShadowed; }
const SvxColorItem& GetColor() const { return aColor; }
const SvxHorJustifyItem& GetHorJustify() const { return aHorJustify; }
const SvxVerJustifyItem& GetVerJustify() const { return aVerJustify; }
const SfxBoolItem& GetStacked() const { return aStacked; }
const SfxBoolItem& GetLinebreak() const { return aLinebreak; }
const SvxMarginItem& GetMargin() const { return aMargin; }
const SvxBoxItem& GetBox() const { return aBox; }
const SvxLineItem& GetTLBR() const { return aTLBR; }
const SvxLineItem& GetBLTR() const { return aBLTR; }
const SvxBrushItem& GetBackground() const { return aBackground; }
const SvxAdjustItem& GetAdjust() const { return aAdjust; }
const SfxInt32Item& GetRotateAngle() const { return aRotateAngle; }
const SvxRotateModeItem& GetRotateMode() const { return aRotateMode; }
void SetNumFormat( const ScNumFormatAbbrev& rNumFormat ) { aNumFormat = rNumFormat; }
void SetFont( const SvxFontItem& rFont ) { aFont = rFont; }
void SetHeight( const SvxFontHeightItem& rHeight ) { aHeight = rHeight; }
void SetWeight( const SvxWeightItem& rWeight ) { aWeight = rWeight; }
void SetPosture( const SvxPostureItem& rPosture ) { aPosture = rPosture; }
void SetCJKFont( const SvxFontItem& rCJKFont ) { aCJKFont = rCJKFont; }
void SetCJKHeight( const SvxFontHeightItem& rCJKHeight ) { aCJKHeight = rCJKHeight; }
void SetCJKWeight( const SvxWeightItem& rCJKWeight ) { aCJKWeight = rCJKWeight; }
void SetCJKPosture( const SvxPostureItem& rCJKPosture ) { aCJKPosture = rCJKPosture; }
void SetCTLFont( const SvxFontItem& rCTLFont ) { aCTLFont = rCTLFont; }
void SetCTLHeight( const SvxFontHeightItem& rCTLHeight ) { aCTLHeight = rCTLHeight; }
void SetCTLWeight( const SvxWeightItem& rCTLWeight ) { aCTLWeight = rCTLWeight; }
void SetCTLPosture( const SvxPostureItem& rCTLPosture ) { aCTLPosture = rCTLPosture; }
void SetUnderline( const SvxUnderlineItem& rUnderline ) { aUnderline = rUnderline; }
void SetOverline( const SvxOverlineItem& rOverline ) { aOverline = rOverline; }
void SetCrossedOut( const SvxCrossedOutItem& rCrossedOut ) { aCrossedOut = rCrossedOut; }
void SetContour( const SvxContourItem& rContour ) { aContour = rContour; }
void SetShadowed( const SvxShadowedItem& rShadowed ) { aShadowed = rShadowed; }
void SetColor( const SvxColorItem& rColor ) { aColor = rColor; }
void SetHorJustify( const SvxHorJustifyItem& rHorJustify ) { aHorJustify = rHorJustify; }
void SetVerJustify( const SvxVerJustifyItem& rVerJustify ) { aVerJustify = rVerJustify; }
void SetStacked( const SfxBoolItem& rStacked ) { aStacked.SetValue( rStacked.GetValue() ); }
void SetLinebreak( const SfxBoolItem& rLinebreak ) { aLinebreak.SetValue( rLinebreak.GetValue() ); }
void SetMargin( const SvxMarginItem& rMargin ) { aMargin = rMargin; }
void SetBox( const SvxBoxItem& rBox ) { aBox = rBox; }
void SetTLBR( const SvxLineItem& rTLBR ) { aTLBR = rTLBR; }
void SetBLTR( const SvxLineItem& rBLTR ) { aBLTR = rBLTR; }
void SetBackground( const SvxBrushItem& rBackground ) { aBackground = rBackground; }
void SetAdjust( const SvxAdjustItem& rAdjust );
void SetRotateAngle( const SfxInt32Item& rRotateAngle ) { aRotateAngle.SetValue( rRotateAngle.GetValue() ); }
void SetRotateMode( const SvxRotateModeItem& rRotateMode ) { aRotateMode.SetValue( rRotateMode.GetValue() ); }
BOOL Load( SvStream& rStream, const ScAfVersions& rVersions, USHORT nVer );
BOOL Save( SvStream& rStream );
#ifdef READ_OLDVERS
BOOL LoadOld( SvStream& rStream, const ScAfVersions& rVersions );
#endif
};
class SC_DLLPUBLIC ScAutoFormatData : public ScDataObject
{
private:
String aName;
USHORT nStrResId;
// common flags of Calc and Writer
BOOL bIncludeFont : 1;
BOOL bIncludeJustify : 1;
BOOL bIncludeFrame : 1;
BOOL bIncludeBackground : 1;
// Calc specific flags
BOOL bIncludeValueFormat : 1;
BOOL bIncludeWidthHeight : 1;
ScAutoFormatDataField** ppDataField;
SC_DLLPRIVATE ScAutoFormatDataField& GetField( USHORT nIndex );
SC_DLLPRIVATE const ScAutoFormatDataField& GetField( USHORT nIndex ) const;
public:
ScAutoFormatData();
ScAutoFormatData( const ScAutoFormatData& rData );
virtual ~ScAutoFormatData();
virtual ScDataObject* Clone() const { return new ScAutoFormatData( *this ); }
void SetName( const String& rName ) { aName = rName; nStrResId = USHRT_MAX; }
void GetName( String& rName ) const { rName = aName; }
BOOL GetIncludeValueFormat() const { return bIncludeValueFormat; }
BOOL GetIncludeFont() const { return bIncludeFont; }
BOOL GetIncludeJustify() const { return bIncludeJustify; }
BOOL GetIncludeFrame() const { return bIncludeFrame; }
BOOL GetIncludeBackground() const { return bIncludeBackground; }
BOOL GetIncludeWidthHeight() const { return bIncludeWidthHeight; }
void SetIncludeValueFormat( BOOL bValueFormat ) { bIncludeValueFormat = bValueFormat; }
void SetIncludeFont( BOOL bFont ) { bIncludeFont = bFont; }
void SetIncludeJustify( BOOL bJustify ) { bIncludeJustify = bJustify; }
void SetIncludeFrame( BOOL bFrame ) { bIncludeFrame = bFrame; }
void SetIncludeBackground( BOOL bBackground ) { bIncludeBackground = bBackground; }
void SetIncludeWidthHeight( BOOL bWidthHeight ) { bIncludeWidthHeight = bWidthHeight; }
const SfxPoolItem* GetItem( USHORT nIndex, USHORT nWhich ) const;
void PutItem( USHORT nIndex, const SfxPoolItem& rItem );
void CopyItem( USHORT nToIndex, USHORT nFromIndex, USHORT nWhich );
const ScNumFormatAbbrev& GetNumFormat( USHORT nIndex ) const;
BOOL IsEqualData( USHORT nIndex1, USHORT nIndex2 ) const;
void FillToItemSet( USHORT nIndex, SfxItemSet& rItemSet, ScDocument& rDoc ) const;
void GetFromItemSet( USHORT nIndex, const SfxItemSet& rItemSet, const ScNumFormatAbbrev& rNumFormat );
BOOL Load( SvStream& rStream, const ScAfVersions& rVersions );
BOOL Save( SvStream& rStream );
#ifdef READ_OLDVERS
BOOL LoadOld( SvStream& rStream, const ScAfVersions& rVersions );
#endif
};
class SC_DLLPUBLIC ScAutoFormat : public ScSortedCollection
{
private:
BOOL bSaveLater;
public:
ScAutoFormat( USHORT nLim = 4, USHORT nDel = 4, BOOL bDup = FALSE );
ScAutoFormat( const ScAutoFormat& AutoFormat );
virtual ~ScAutoFormat();
virtual ScDataObject* Clone() const { return new ScAutoFormat( *this ); }
ScAutoFormatData* operator[]( const USHORT nIndex ) const {return (ScAutoFormatData*)At( nIndex );}
virtual short Compare( ScDataObject* pKey1, ScDataObject* pKey2 ) const;
BOOL Load();
BOOL Save();
USHORT FindIndexPerName( const String& rName ) const;
void SetSaveLater( BOOL bSet );
BOOL IsSaveLater() const { return bSaveLater; }
};
#endif
|