1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: xlchart.hxx,v $
10 * $Revision: 1.14.62.3 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #ifndef SC_XLCHART_HXX
32 #define SC_XLCHART_HXX
34 // disable/enable support for varied point colors property
35 #define EXC_CHART2_VARYCOLORSBY_PROP 0
36 // disable/enable restriction to hair lines in 3D bar charts (#i83151#)
37 #define EXC_CHART2_3DBAR_HAIRLINES_ONLY 1
40 #include "fapihelper.hxx"
42 namespace com
{ namespace sun
{ namespace star
{
43 namespace container
{ class XNameContainer
; }
44 namespace lang
{ class XMultiServiceFactory
; }
45 namespace chart2
{ class XChartDocument
; }
48 // Property names =============================================================
51 #define SERVICE_DRAWING_BITMAPTABLE CREATE_OUSTRING( "com.sun.star.drawing.BitmapTable" )
52 #define SERVICE_DRAWING_DASHTABLE CREATE_OUSTRING( "com.sun.star.drawing.DashTable" )
53 #define SERVICE_DRAWING_GRADIENTTABLE CREATE_OUSTRING( "com.sun.star.drawing.GradientTable" )
54 #define SERVICE_DRAWING_HATCHTABLE CREATE_OUSTRING( "com.sun.star.drawing.HatchTable" )
56 #define SERVICE_CHART2_AXIS CREATE_OUSTRING( "com.sun.star.chart2.Axis" )
57 #define SERVICE_CHART2_CARTESIANCOORDSYS2D CREATE_OUSTRING( "com.sun.star.chart2.CartesianCoordinateSystem2d" )
58 #define SERVICE_CHART2_CARTESIANCOORDSYS3D CREATE_OUSTRING( "com.sun.star.chart2.CartesianCoordinateSystem3d" )
59 #define SERVICE_CHART2_DATAPROVIDER CREATE_OUSTRING( "com.sun.star.chart2.data.DataProvider" )
60 #define SERVICE_CHART2_DATASERIES CREATE_OUSTRING( "com.sun.star.chart2.DataSeries" )
61 #define SERVICE_CHART2_DIAGRAM CREATE_OUSTRING( "com.sun.star.chart2.Diagram" )
62 #define SERVICE_CHART2_ERRORBAR CREATE_OUSTRING( "com.sun.star.chart2.ErrorBar" )
63 #define SERVICE_CHART2_EXPREGCURVE CREATE_OUSTRING( "com.sun.star.chart2.ExponentialRegressionCurve" )
64 #define SERVICE_CHART2_FORMATTEDSTRING CREATE_OUSTRING( "com.sun.star.chart2.FormattedString" )
65 #define SERVICE_CHART2_LABELEDDATASEQ CREATE_OUSTRING( "com.sun.star.chart2.data.LabeledDataSequence" )
66 #define SERVICE_CHART2_LEGEND CREATE_OUSTRING( "com.sun.star.chart2.Legend" )
67 #define SERVICE_CHART2_LINEARREGCURVE CREATE_OUSTRING( "com.sun.star.chart2.LinearRegressionCurve" )
68 #define SERVICE_CHART2_LINEARSCALING CREATE_OUSTRING( "com.sun.star.chart2.LinearScaling" )
69 #define SERVICE_CHART2_LOGREGCURVE CREATE_OUSTRING( "com.sun.star.chart2.LogarithmicRegressionCurve" )
70 #define SERVICE_CHART2_LOGSCALING CREATE_OUSTRING( "com.sun.star.chart2.LogarithmicScaling" )
71 #define SERVICE_CHART2_POLARCOORDSYS2D CREATE_OUSTRING( "com.sun.star.chart2.PolarCoordinateSystem2d" )
72 #define SERVICE_CHART2_POLARCOORDSYS3D CREATE_OUSTRING( "com.sun.star.chart2.PolarCoordinateSystem3d" )
73 #define SERVICE_CHART2_POTREGCURVE CREATE_OUSTRING( "com.sun.star.chart2.PotentialRegressionCurve" )
74 #define SERVICE_CHART2_TITLE CREATE_OUSTRING( "com.sun.star.chart2.Title" )
77 #define EXC_CHPROP_ARRANGEORDER CREATE_OUSTRING( "ArrangeOrder" )
78 #define EXC_CHPROP_ATTAXISINDEX CREATE_OUSTRING( "AttachedAxisIndex" )
79 #define EXC_CHPROP_ATTRIBDATAPOINTS CREATE_OUSTRING( "AttributedDataPoints" )
80 #define EXC_CHPROP_BLACKDAY CREATE_OUSTRING( "BlackDay" )
81 #define EXC_CHPROP_COLOR CREATE_OUSTRING( "Color" )
82 #define EXC_CHPROP_CONNECTBARS CREATE_OUSTRING( "ConnectBars" )
83 #define EXC_CHPROP_CROSSOVERPOSITION CREATE_OUSTRING( "CrossoverPosition" )
84 #define EXC_CHPROP_CROSSOVERVALUE CREATE_OUSTRING( "CrossoverValue" )
85 #define EXC_CHPROP_CURVESTYLE CREATE_OUSTRING( "CurveStyle" )
86 #define EXC_CHPROP_D3DCAMERAGEOMETRY CREATE_OUSTRING( "D3DCameraGeometry" )
87 #define EXC_CHPROP_D3DSCENEAMBIENTCOLOR CREATE_OUSTRING( "D3DSceneAmbientColor" )
88 #define EXC_CHPROP_D3DSCENELIGHTON1 CREATE_OUSTRING( "D3DSceneLightOn1" )
89 #define EXC_CHPROP_D3DSCENELIGHTCOLOR2 CREATE_OUSTRING( "D3DSceneLightColor2" )
90 #define EXC_CHPROP_D3DSCENELIGHTDIR2 CREATE_OUSTRING( "D3DSceneLightDirection2" )
91 #define EXC_CHPROP_D3DSCENELIGHTON2 CREATE_OUSTRING( "D3DSceneLightOn2" )
92 #define EXC_CHPROP_D3DSCENEPERSPECTIVE CREATE_OUSTRING( "D3DScenePerspective" )
93 #define EXC_CHPROP_D3DSCENESHADEMODE CREATE_OUSTRING( "D3DSceneShadeMode" )
94 #define EXC_CHPROP_D3DTRANSFORMMATRIX CREATE_OUSTRING( "D3DTransformMatrix" )
95 #define EXC_CHPROP_DISPLAYLABELS CREATE_OUSTRING( "DisplayLabels" )
96 #define EXC_CHPROP_ERRORBARSTYLE CREATE_OUSTRING( "ErrorBarStyle" )
97 #define EXC_CHPROP_ERRORBARX CREATE_OUSTRING( "ErrorBarX" )
98 #define EXC_CHPROP_ERRORBARY CREATE_OUSTRING( "ErrorBarY" )
99 #define EXC_CHPROP_FILLBITMAPMODE CREATE_OUSTRING( "FillBitmapMode" )
100 #define EXC_CHPROP_FILLSTYLE CREATE_OUSTRING( "FillStyle" )
101 #define EXC_CHPROP_GAPWIDTHSEQ CREATE_OUSTRING( "GapwidthSequence" )
102 #define EXC_CHPROP_GEOMETRY3D CREATE_OUSTRING( "Geometry3D" )
103 #define EXC_CHPROP_INCLUDEHIDDENCELLS CREATE_OUSTRING( "IncludeHiddenCells" )
104 #define EXC_CHPROP_JAPANESE CREATE_OUSTRING( "Japanese" )
105 #define EXC_CHPROP_LABEL CREATE_OUSTRING( "Label" )
106 #define EXC_CHPROP_LABELPLACEMENT CREATE_OUSTRING( "LabelPlacement" )
107 #define EXC_CHPROP_LABELPOSITION CREATE_OUSTRING( "LabelPosition" )
108 #define EXC_CHPROP_LABELSEPARATOR CREATE_OUSTRING( "LabelSeparator" )
109 #define EXC_CHPROP_MAJORTICKS CREATE_OUSTRING( "MajorTickmarks" )
110 #define EXC_CHPROP_MARKPOSITION CREATE_OUSTRING( "MarkPosition" )
111 #define EXC_CHPROP_MINORTICKS CREATE_OUSTRING( "MinorTickmarks" )
112 #define EXC_CHPROP_MISSINGVALUETREATMENT CREATE_OUSTRING( "MissingValueTreatment" )
113 #define EXC_CHPROP_NEGATIVEERROR CREATE_OUSTRING( "NegativeError" )
114 #define EXC_CHPROP_NUMBERFORMAT CREATE_OUSTRING( "NumberFormat" )
115 #define EXC_CHPROP_OFFSET CREATE_OUSTRING( "Offset" )
116 #define EXC_CHPROP_OVERLAPSEQ CREATE_OUSTRING( "OverlapSequence" )
117 #define EXC_CHPROP_PERCENTAGENUMFMT CREATE_OUSTRING( "PercentageNumberFormat" )
118 #define EXC_CHPROP_PERCENT CREATE_OUSTRING( "Percent" )
119 #define EXC_CHPROP_PERCENTDIAGONAL CREATE_OUSTRING( "PercentDiagonal" )
120 #define EXC_CHPROP_PERSPECTIVE CREATE_OUSTRING( "Perspective" )
121 #define EXC_CHPROP_POSITIVEERROR CREATE_OUSTRING( "PositiveError" )
122 #define EXC_CHPROP_RIGHTANGLEDAXES CREATE_OUSTRING( "RightAngledAxes" )
123 #define EXC_CHPROP_ROLE CREATE_OUSTRING( "Role" )
124 #define EXC_CHPROP_ROTATIONHORIZONTAL CREATE_OUSTRING( "RotationHorizontal" )
125 #define EXC_CHPROP_ROTATIONVERTICAL CREATE_OUSTRING( "RotationVertical" )
126 #define EXC_CHPROP_SHOW CREATE_OUSTRING( "Show" )
127 #define EXC_CHPROP_SHOWCORRELATION CREATE_OUSTRING( "ShowCorrelationCoefficient" )
128 #define EXC_CHPROP_SHOWEQUATION CREATE_OUSTRING( "ShowEquation" )
129 #define EXC_CHPROP_SHOWFIRST CREATE_OUSTRING( "ShowFirst" )
130 #define EXC_CHPROP_SHOWHIGHLOW CREATE_OUSTRING( "ShowHighLow" )
131 #define EXC_CHPROP_SHOWNEGATIVEERROR CREATE_OUSTRING( "ShowNegativeError" )
132 #define EXC_CHPROP_SHOWPOSITIVEERROR CREATE_OUSTRING( "ShowPositiveError" )
133 #define EXC_CHPROP_STACKED CREATE_OUSTRING( "Stacked" )
134 #define EXC_CHPROP_STACKCHARACTERS CREATE_OUSTRING( "StackCharacters" )
135 #define EXC_CHPROP_STACKINGDIR CREATE_OUSTRING( "StackingDirection" )
136 #define EXC_CHPROP_STARTINGANGLE CREATE_OUSTRING( "StartingAngle" )
137 #define EXC_CHPROP_SWAPXANDYAXIS CREATE_OUSTRING( "SwapXAndYAxis" )
138 #define EXC_CHPROP_SYMBOL CREATE_OUSTRING( "Symbol" )
139 #define EXC_CHPROP_TEXTBREAK CREATE_OUSTRING( "TextBreak" )
140 #define EXC_CHPROP_TEXTOVERLAP CREATE_OUSTRING( "TextOverlap" )
141 #define EXC_CHPROP_TEXTROTATION CREATE_OUSTRING( "TextRotation" )
142 #define EXC_CHPROP_USERINGS CREATE_OUSTRING( "UseRings" )
143 #define EXC_CHPROP_VARYCOLORSBY CREATE_OUSTRING( "VaryColorsByPoint" )
144 #define EXC_CHPROP_WEIGHT CREATE_OUSTRING( "Weight" )
145 #define EXC_CHPROP_WHITEDAY CREATE_OUSTRING( "WhiteDay" )
148 #define EXC_CHPROP_ROLE_CATEG CREATE_OUSTRING( "categories" )
149 #define EXC_CHPROP_ROLE_ERRORBARS_NEGX CREATE_OUSTRING( "error-bars-x-negative" )
150 #define EXC_CHPROP_ROLE_ERRORBARS_NEGY CREATE_OUSTRING( "error-bars-y-negative" )
151 #define EXC_CHPROP_ROLE_ERRORBARS_POSX CREATE_OUSTRING( "error-bars-x-positive" )
152 #define EXC_CHPROP_ROLE_ERRORBARS_POSY CREATE_OUSTRING( "error-bars-y-positive" )
153 #define EXC_CHPROP_ROLE_LABEL CREATE_OUSTRING( "label" )
154 #define EXC_CHPROP_ROLE_SIZES CREATE_OUSTRING( "sizes" )
155 #define EXC_CHPROP_ROLE_XVALUES CREATE_OUSTRING( "values-x" )
156 #define EXC_CHPROP_ROLE_YVALUES CREATE_OUSTRING( "values-y" )
157 #define EXC_CHPROP_ROLE_OPENVALUES CREATE_OUSTRING( "values-first" )
158 #define EXC_CHPROP_ROLE_CLOSEVALUES CREATE_OUSTRING( "values-last" )
159 #define EXC_CHPROP_ROLE_LOWVALUES CREATE_OUSTRING( "values-min" )
160 #define EXC_CHPROP_ROLE_HIGHVALUES CREATE_OUSTRING( "values-max" )
161 #define EXC_CHPROP_ROLE_SIZEVALUES CREATE_OUSTRING( "values-size" )
163 // Constants and Enumerations =================================================
165 const sal_Size EXC_CHART_PROGRESS_SIZE
= 10;
166 const sal_uInt16 EXC_CHART_AUTOROTATION
= 0xFFFF; /// Automatic rotation, e.g. axis labels (internal use only).
168 const sal_Int32 EXC_CHART_AXIS_NONE
= -1; /// For internal use only.
169 const sal_Int32 EXC_CHART_AXIS_X
= 0; /// API X axis index.
170 const sal_Int32 EXC_CHART_AXIS_Y
= 1; /// API Y axis index.
171 const sal_Int32 EXC_CHART_AXIS_Z
= 2; /// API Z axis index.
172 const sal_Int32 EXC_CHART_AXESSET_NONE
= -1; /// For internal use only.
173 const sal_Int32 EXC_CHART_AXESSET_PRIMARY
= 0; /// API primary axes set index.
174 const sal_Int32 EXC_CHART_AXESSET_SECONDARY
= 1; /// API secondary axes set index.
176 // (0x0850) CHFRINFO ----------------------------------------------------------
178 const sal_uInt16 EXC_ID_CHFRINFO
= 0x0850;
180 const sal_uInt8 EXC_CHFRINFO_EXCEL2000
= 9;
181 const sal_uInt8 EXC_CHFRINFO_EXCELXP2003
= 10;
182 const sal_uInt8 EXC_CHFRINFO_EXCEL2007
= 11;
184 // (0x0852, 0x0853) CHFRBLOCKBEGIN, CHFRBLOCKEND ------------------------------
186 const sal_uInt16 EXC_ID_CHFRBLOCKBEGIN
= 0x0852;
187 const sal_uInt16 EXC_ID_CHFRBLOCKEND
= 0x0853;
189 const sal_uInt16 EXC_CHFRBLOCK_TYPE_AXESSET
= 0;
190 const sal_uInt16 EXC_CHFRBLOCK_TYPE_TEXT
= 2;
191 const sal_uInt16 EXC_CHFRBLOCK_TYPE_AXIS
= 4;
192 const sal_uInt16 EXC_CHFRBLOCK_TYPE_TYPEGROUP
= 5;
193 const sal_uInt16 EXC_CHFRBLOCK_TYPE_DATATABLE
= 6;
194 const sal_uInt16 EXC_CHFRBLOCK_TYPE_FRAME
= 7;
195 const sal_uInt16 EXC_CHFRBLOCK_TYPE_LEGEND
= 9;
196 const sal_uInt16 EXC_CHFRBLOCK_TYPE_LEGENDEX
= 10;
197 const sal_uInt16 EXC_CHFRBLOCK_TYPE_SERIES
= 12;
198 const sal_uInt16 EXC_CHFRBLOCK_TYPE_CHART
= 13;
199 const sal_uInt16 EXC_CHFRBLOCK_TYPE_DATAFORMAT
= 14;
200 const sal_uInt16 EXC_CHFRBLOCK_TYPE_DROPBAR
= 15;
201 const sal_uInt16 EXC_CHFRBLOCK_TYPE_UNKNOWN
= 0xFFFF; /// For internal use only.
203 const sal_uInt16 EXC_CHFRBLOCK_TEXT_TITLE
= 0;
204 const sal_uInt16 EXC_CHFRBLOCK_TEXT_DEFTEXT
= 2;
205 const sal_uInt16 EXC_CHFRBLOCK_TEXT_AXISTITLE
= 4;
206 const sal_uInt16 EXC_CHFRBLOCK_TEXT_DATALABEL
= 5;
208 const sal_uInt16 EXC_CHFRBLOCK_FRAME_STANDARD
= 0;
209 const sal_uInt16 EXC_CHFRBLOCK_FRAME_PLOTFRAME
= 1;
210 const sal_uInt16 EXC_CHFRBLOCK_FRAME_BACKGROUND
= 2;
212 // (0x086B) CHFRLABELPROPS ----------------------------------------------------
214 const sal_uInt16 EXC_ID_CHFRLABELPROPS
= 0x086B;
216 const sal_uInt16 EXC_CHFRLABELPROPS_SHOWSERIES
= 0x0001;
217 const sal_uInt16 EXC_CHFRLABELPROPS_SHOWCATEG
= 0x0002;
218 const sal_uInt16 EXC_CHFRLABELPROPS_SHOWVALUE
= 0x0004;
219 const sal_uInt16 EXC_CHFRLABELPROPS_SHOWPERCENT
= 0x0008;
220 const sal_uInt16 EXC_CHFRLABELPROPS_SHOWBUBBLE
= 0x0010;
222 // (0x1001) CHUNITS -----------------------------------------------------------
224 const sal_uInt16 EXC_ID_CHUNITS
= 0x1001;
226 const sal_uInt16 EXC_CHUNITS_TWIPS
= 0;
227 const sal_uInt16 EXC_CHUNITS_PIXELS
= 1;
229 // (0x1002) CHCHART -----------------------------------------------------------
231 const sal_uInt16 EXC_ID_CHCHART
= 0x1002;
233 // (0x1003) CHSERIES ----------------------------------------------------------
235 const sal_uInt16 EXC_ID_CHSERIES
= 0x1003;
237 const sal_uInt16 EXC_CHSERIES_DATE
= 0;
238 const sal_uInt16 EXC_CHSERIES_NUMERIC
= 1;
239 const sal_uInt16 EXC_CHSERIES_SEQUENCE
= 2;
240 const sal_uInt16 EXC_CHSERIES_TEXT
= 3;
242 const sal_uInt16 EXC_CHSERIES_MAXSERIES
= 255; /// Maximum valid series index.
243 const sal_uInt16 EXC_CHSERIES_INVALID
= 0xFFFF; /// Invalid series index (for internal use).
245 // (0x1006) CHDATAFORMAT ------------------------------------------------------
247 const sal_uInt16 EXC_ID_CHDATAFORMAT
= 0x1006;
249 const sal_uInt16 EXC_CHDATAFORMAT_MAXPOINTCOUNT
= 32000; /// Maximum number of data points.
250 const sal_uInt16 EXC_CHDATAFORMAT_DEFAULT
= 0xFFFD; /// As format index: global default for an axes set.
251 const sal_uInt16 EXC_CHDATAFORMAT_UNKNOWN
= 0xFFFE; /// As point index: unknown format, don't use.
252 const sal_uInt16 EXC_CHDATAFORMAT_ALLPOINTS
= 0xFFFF; /// As point index: default for a series.
254 const sal_uInt16 EXC_CHDATAFORMAT_OLDCOLORS
= 0x0001;
256 // (0x1007) CHLINEFORMAT ------------------------------------------------------
258 const sal_uInt16 EXC_ID_CHLINEFORMAT
= 0x1007;
260 const sal_uInt16 EXC_CHLINEFORMAT_SOLID
= 0;
261 const sal_uInt16 EXC_CHLINEFORMAT_DASH
= 1;
262 const sal_uInt16 EXC_CHLINEFORMAT_DOT
= 2;
263 const sal_uInt16 EXC_CHLINEFORMAT_DASHDOT
= 3;
264 const sal_uInt16 EXC_CHLINEFORMAT_DASHDOTDOT
= 4;
265 const sal_uInt16 EXC_CHLINEFORMAT_NONE
= 5;
266 const sal_uInt16 EXC_CHLINEFORMAT_DARKTRANS
= 6;
267 const sal_uInt16 EXC_CHLINEFORMAT_MEDTRANS
= 7;
268 const sal_uInt16 EXC_CHLINEFORMAT_LIGHTTRANS
= 8;
270 const sal_Int16 EXC_CHLINEFORMAT_HAIR
= -1;
271 const sal_Int16 EXC_CHLINEFORMAT_SINGLE
= 0;
272 const sal_Int16 EXC_CHLINEFORMAT_DOUBLE
= 1;
273 const sal_Int16 EXC_CHLINEFORMAT_TRIPLE
= 2;
275 const sal_uInt16 EXC_CHLINEFORMAT_AUTO
= 0x0001;
276 const sal_uInt16 EXC_CHLINEFORMAT_SHOWAXIS
= 0x0004;
278 // (0x1009) CHMARKERFORMAT ----------------------------------------------------
280 const sal_uInt16 EXC_ID_CHMARKERFORMAT
= 0x1009;
282 const sal_uInt16 EXC_CHMARKERFORMAT_NOSYMBOL
= 0;
283 const sal_uInt16 EXC_CHMARKERFORMAT_SQUARE
= 1;
284 const sal_uInt16 EXC_CHMARKERFORMAT_DIAMOND
= 2;
285 const sal_uInt16 EXC_CHMARKERFORMAT_TRIANGLE
= 3;
286 const sal_uInt16 EXC_CHMARKERFORMAT_CROSS
= 4;
287 const sal_uInt16 EXC_CHMARKERFORMAT_STAR
= 5;
288 const sal_uInt16 EXC_CHMARKERFORMAT_DOWJ
= 6;
289 const sal_uInt16 EXC_CHMARKERFORMAT_STDDEV
= 7;
290 const sal_uInt16 EXC_CHMARKERFORMAT_CIRCLE
= 8;
291 const sal_uInt16 EXC_CHMARKERFORMAT_PLUS
= 9;
293 const sal_uInt32 EXC_CHMARKERFORMAT_HAIRSIZE
= 60; /// Automatic symbol size for hair lines.
294 const sal_uInt32 EXC_CHMARKERFORMAT_SINGLESIZE
= 100; /// Automatic symbol size for single lines.
295 const sal_uInt32 EXC_CHMARKERFORMAT_DOUBLESIZE
= 140; /// Automatic symbol size for double lines.
296 const sal_uInt32 EXC_CHMARKERFORMAT_TRIPLESIZE
= 180; /// Automatic symbol size for triple lines.
298 const sal_uInt16 EXC_CHMARKERFORMAT_AUTO
= 0x0001;
299 const sal_uInt16 EXC_CHMARKERFORMAT_NOFILL
= 0x0010;
300 const sal_uInt16 EXC_CHMARKERFORMAT_NOLINE
= 0x0020;
302 // (0x100A) CHAREAFORMAT ------------------------------------------------------
304 const sal_uInt16 EXC_ID_CHAREAFORMAT
= 0x100A;
306 const sal_uInt16 EXC_CHAREAFORMAT_AUTO
= 0x0001;
307 const sal_uInt16 EXC_CHAREAFORMAT_INVERTNEG
= 0x0002;
309 // (0x100B) CHPIEFORMAT -------------------------------------------------------
311 const sal_uInt16 EXC_ID_CHPIEFORMAT
= 0x100B;
313 // (0x100C) CHATTACHEDLABEL ---------------------------------------------------
315 const sal_uInt16 EXC_ID_CHATTACHEDLABEL
= 0x100C;
317 const sal_uInt16 EXC_CHATTLABEL_SHOWVALUE
= 0x0001;
318 const sal_uInt16 EXC_CHATTLABEL_SHOWPERCENT
= 0x0002;
319 const sal_uInt16 EXC_CHATTLABEL_SHOWCATEGPERC
= 0x0004;
320 const sal_uInt16 EXC_CHATTLABEL_SMOOTHED
= 0x0008; /// Smoothed line.
321 const sal_uInt16 EXC_CHATTLABEL_SHOWCATEG
= 0x0010;
322 const sal_uInt16 EXC_CHATTLABEL_SHOWBUBBLE
= 0x0020;
324 // (0x100D) CHSTRING ----------------------------------------------------------
326 const sal_uInt16 EXC_ID_CHSTRING
= 0x100D;
328 // (0x1014) CHTYPEGROUP -------------------------------------------------------
330 const sal_uInt16 EXC_ID_CHTYPEGROUP
= 0x1014;
332 const sal_uInt16 EXC_CHTYPEGROUP_VARIEDCOLORS
= 0x0001; /// Varied colors for points.
334 // (0x1015) CHLEGEND ----------------------------------------------------------
336 const sal_uInt16 EXC_ID_CHLEGEND
= 0x1015;
338 const sal_uInt8 EXC_CHLEGEND_BOTTOM
= 0;
339 const sal_uInt8 EXC_CHLEGEND_CORNER
= 1;
340 const sal_uInt8 EXC_CHLEGEND_TOP
= 2;
341 const sal_uInt8 EXC_CHLEGEND_RIGHT
= 3;
342 const sal_uInt8 EXC_CHLEGEND_LEFT
= 4;
343 const sal_uInt8 EXC_CHLEGEND_NOTDOCKED
= 7;
345 const sal_uInt8 EXC_CHLEGEND_CLOSE
= 0;
346 const sal_uInt8 EXC_CHLEGEND_MEDIUM
= 1;
347 const sal_uInt8 EXC_CHLEGEND_OPEN
= 2;
349 const sal_uInt16 EXC_CHLEGEND_DOCKED
= 0x0001;
350 const sal_uInt16 EXC_CHLEGEND_AUTOSERIES
= 0x0002;
351 const sal_uInt16 EXC_CHLEGEND_AUTOPOSX
= 0x0004;
352 const sal_uInt16 EXC_CHLEGEND_AUTOPOSY
= 0x0008;
353 const sal_uInt16 EXC_CHLEGEND_STACKED
= 0x0010;
354 const sal_uInt16 EXC_CHLEGEND_DATATABLE
= 0x0020;
356 // (0x1017) CHBAR, CHCOLUMN ---------------------------------------------------
358 const sal_uInt16 EXC_ID_CHBAR
= 0x1017;
360 const sal_uInt16 EXC_CHBAR_HORIZONTAL
= 0x0001;
361 const sal_uInt16 EXC_CHBAR_STACKED
= 0x0002;
362 const sal_uInt16 EXC_CHBAR_PERCENT
= 0x0004;
363 const sal_uInt16 EXC_CHBAR_SHADOW
= 0x0008;
365 // (0x1018, 0x101A) CHLINE, CHAREA --------------------------------------------
367 const sal_uInt16 EXC_ID_CHLINE
= 0x1018;
368 const sal_uInt16 EXC_ID_CHAREA
= 0x101A;
370 const sal_uInt16 EXC_CHLINE_STACKED
= 0x0001;
371 const sal_uInt16 EXC_CHLINE_PERCENT
= 0x0002;
372 const sal_uInt16 EXC_CHLINE_SHADOW
= 0x0004;
374 // (0x1019) CHPIE -------------------------------------------------------------
376 const sal_uInt16 EXC_ID_CHPIE
= 0x1019;
378 const sal_uInt16 EXC_CHPIE_SHADOW
= 0x0001;
379 const sal_uInt16 EXC_CHPIE_LINES
= 0x0002;
381 // (0x101B) CHSCATTER ---------------------------------------------------------
383 const sal_uInt16 EXC_ID_CHSCATTER
= 0x101B;
385 const sal_uInt16 EXC_CHSCATTER_AREA
= 1; /// Bubble area refers to value.
386 const sal_uInt16 EXC_CHSCATTER_WIDTH
= 2; /// Bubble width refers to value.
388 const sal_uInt16 EXC_CHSCATTER_BUBBLES
= 0x0001;
389 const sal_uInt16 EXC_CHSCATTER_SHOWNEG
= 0x0002;
390 const sal_uInt16 EXC_CHSCATTER_SHADOW
= 0x0004;
392 // (0x001C) CHCHARTLINE -------------------------------------------------------
394 const sal_uInt16 EXC_ID_CHCHARTLINE
= 0x101C;
396 const sal_uInt16 EXC_CHCHARTLINE_DROP
= 0; /// Drop lines.
397 const sal_uInt16 EXC_CHCHARTLINE_HILO
= 1; /// Hi-lo lines.
398 const sal_uInt16 EXC_CHCHARTLINE_CONNECT
= 2; /// Connector lines in stacked bar charts.
400 // (0x101D) CHAXIS ------------------------------------------------------------
402 const sal_uInt16 EXC_ID_CHAXIS
= 0x101D;
404 const sal_uInt16 EXC_CHAXIS_X
= 0;
405 const sal_uInt16 EXC_CHAXIS_Y
= 1;
406 const sal_uInt16 EXC_CHAXIS_Z
= 2;
407 const sal_uInt16 EXC_CHAXIS_NONE
= 0xFFFF; /// For internal use only.
409 // (0x101E) CHTICK ------------------------------------------------------------
411 const sal_uInt16 EXC_ID_CHTICK
= 0x101E;
413 const sal_uInt8 EXC_CHTICK_INSIDE
= 0x01;
414 const sal_uInt8 EXC_CHTICK_OUTSIDE
= 0x02;
416 const sal_uInt8 EXC_CHTICK_NOLABEL
= 0;
417 const sal_uInt8 EXC_CHTICK_LOW
= 1; /// Below diagram/right of diagram.
418 const sal_uInt8 EXC_CHTICK_HIGH
= 2; /// Above diagram/left of diagram.
419 const sal_uInt8 EXC_CHTICK_NEXT
= 3; /// Next to axis.
421 const sal_uInt8 EXC_CHTICK_TRANSPARENT
= 1;
422 const sal_uInt8 EXC_CHTICK_OPAQUE
= 2;
424 const sal_uInt16 EXC_CHTICK_AUTOCOLOR
= 0x0001;
425 const sal_uInt16 EXC_CHTICK_AUTOFILL
= 0x0002;
426 const sal_uInt16 EXC_CHTICK_AUTOROT
= 0x0020;
428 // (0x101F) CHVALUERANGE ------------------------------------------------------
430 const sal_uInt16 EXC_ID_CHVALUERANGE
= 0x101F;
432 const sal_uInt16 EXC_CHVALUERANGE_AUTOMIN
= 0x0001;
433 const sal_uInt16 EXC_CHVALUERANGE_AUTOMAX
= 0x0002;
434 const sal_uInt16 EXC_CHVALUERANGE_AUTOMAJOR
= 0x0004;
435 const sal_uInt16 EXC_CHVALUERANGE_AUTOMINOR
= 0x0008;
436 const sal_uInt16 EXC_CHVALUERANGE_AUTOCROSS
= 0x0010;
437 const sal_uInt16 EXC_CHVALUERANGE_LOGSCALE
= 0x0020;
438 const sal_uInt16 EXC_CHVALUERANGE_REVERSE
= 0x0040; /// Axis direction reversed.
439 const sal_uInt16 EXC_CHVALUERANGE_MAXCROSS
= 0x0080; /// Other axis crosses at own maximum.
440 const sal_uInt16 EXC_CHVALUERANGE_BIT8
= 0x0100; /// This bit is always set in BIFF5+.
442 // (0x1020) CHLABELRANGE -----------------------------------------------------
444 const sal_uInt16 EXC_ID_CHLABELRANGE
= 0x1020;
446 const sal_uInt16 EXC_CHLABELRANGE_BETWEEN
= 0x0001; /// Axis between categories.
447 const sal_uInt16 EXC_CHLABELRANGE_MAXCROSS
= 0x0002; /// Other axis crosses at own maximum.
448 const sal_uInt16 EXC_CHLABELRANGE_REVERSE
= 0x0004; /// Axis direction reversed.
450 // (0x1021) CHAXISLINE --------------------------------------------------------
452 const sal_uInt16 EXC_ID_CHAXISLINE
= 0x1021;
454 const sal_uInt16 EXC_CHAXISLINE_AXISLINE
= 0; /// Axis line itself.
455 const sal_uInt16 EXC_CHAXISLINE_MAJORGRID
= 1; /// Major grid line.
456 const sal_uInt16 EXC_CHAXISLINE_MINORGRID
= 2; /// Minor grid line.
457 const sal_uInt16 EXC_CHAXISLINE_WALLS
= 3; /// Walls (X, Z axis), floor (Y axis).
459 // (0x1024) CHDEFAULTTEXT -----------------------------------------------------
461 const sal_uInt16 EXC_ID_CHDEFAULTTEXT
= 0x1024;
463 const sal_uInt16 EXC_CHDEFTEXT_TEXTLABEL
= 0; /// Default for text data labels (not used?).
464 const sal_uInt16 EXC_CHDEFTEXT_NUMLABEL
= 1; /// Default for numeric data labels (not used?).
465 const sal_uInt16 EXC_CHDEFTEXT_GLOBAL
= 2; /// Default text for all chart objects.
466 const sal_uInt16 EXC_CHDEFTEXT_AXESSET
= 3; /// Default text for axes and data points (BIFF8 only).
467 const sal_uInt16 EXC_CHDEFTEXT_NONE
= 0xFFFF; /// No default text available.
469 // (0x1025) CHTEXT ------------------------------------------------------------
471 const sal_uInt16 EXC_ID_CHTEXT
= 0x1025;
473 const sal_uInt8 EXC_CHTEXT_ALIGN_TOPLEFT
= 1; /// Horizontal: left, vertical: top.
474 const sal_uInt8 EXC_CHTEXT_ALIGN_CENTER
= 2;
475 const sal_uInt8 EXC_CHTEXT_ALIGN_BOTTOMRIGHT
= 3; /// Horizontal: right, vertical: bottom.
476 const sal_uInt8 EXC_CHTEXT_ALIGN_JUSTIFY
= 4;
477 const sal_uInt8 EXC_CHTEXT_ALIGN_DISTRIBUTE
= 5;
479 const sal_uInt16 EXC_CHTEXT_TRANSPARENT
= 1;
480 const sal_uInt16 EXC_CHTEXT_OPAQUE
= 2;
482 const sal_uInt16 EXC_CHTEXT_AUTOCOLOR
= 0x0001; /// Automatic text color.
483 const sal_uInt16 EXC_CHTEXT_SHOWSYMBOL
= 0x0002; /// Legend symbol for data point caption.
484 const sal_uInt16 EXC_CHTEXT_SHOWVALUE
= 0x0004; /// Data point caption is the value.
485 const sal_uInt16 EXC_CHTEXT_VERTICAL
= 0x0008;
486 const sal_uInt16 EXC_CHTEXT_AUTOTEXT
= 0x0010; /// Label text generated from chart data.
487 const sal_uInt16 EXC_CHTEXT_AUTOGEN
= 0x0020; /// Text object is inserted automatically.
488 const sal_uInt16 EXC_CHTEXT_DELETED
= 0x0040; /// Text object is removed.
489 const sal_uInt16 EXC_CHTEXT_AUTOFILL
= 0x0080; /// Automatic text background mode (transparent/opaque).
490 const sal_uInt16 EXC_CHTEXT_SHOWCATEGPERC
= 0x0800; /// Data point caption is category and percent.
491 const sal_uInt16 EXC_CHTEXT_SHOWPERCENT
= 0x1000; /// Data point caption as percent.
492 const sal_uInt16 EXC_CHTEXT_SHOWBUBBLE
= 0x2000; /// Show bubble size.
493 const sal_uInt16 EXC_CHTEXT_SHOWCATEG
= 0x4000; /// Data point caption is category name.
495 const sal_uInt16 EXC_CHTEXT_POS_DEFAULT
= 0;
496 const sal_uInt16 EXC_CHTEXT_POS_OUTSIDE
= 1;
497 const sal_uInt16 EXC_CHTEXT_POS_INSIDE
= 2;
498 const sal_uInt16 EXC_CHTEXT_POS_CENTER
= 3;
499 const sal_uInt16 EXC_CHTEXT_POS_AXIS
= 4;
500 const sal_uInt16 EXC_CHTEXT_POS_ABOVE
= 5;
501 const sal_uInt16 EXC_CHTEXT_POS_BELOW
= 6;
502 const sal_uInt16 EXC_CHTEXT_POS_LEFT
= 7;
503 const sal_uInt16 EXC_CHTEXT_POS_RIGHT
= 8;
504 const sal_uInt16 EXC_CHTEXT_POS_AUTO
= 9;
505 const sal_uInt16 EXC_CHTEXT_POS_MOVED
= 10;
507 // (0x1026) CHFONT ------------------------------------------------------------
509 const sal_uInt16 EXC_ID_CHFONT
= 0x1026;
511 // (0x1027) CHOBJECTLINK ------------------------------------------------------
513 const sal_uInt16 EXC_ID_CHOBJECTLINK
= 0x1027;
516 const sal_uInt16 EXC_CHOBJLINK_NONE
= 0; /// No link target.
517 const sal_uInt16 EXC_CHOBJLINK_TITLE
= 1; /// Chart title.
518 const sal_uInt16 EXC_CHOBJLINK_YAXIS
= 2; /// Value axis (Y axis).
519 const sal_uInt16 EXC_CHOBJLINK_XAXIS
= 3; /// Category axis (X axis).
520 const sal_uInt16 EXC_CHOBJLINK_DATA
= 4; /// Data series/point.
521 const sal_uInt16 EXC_CHOBJLINK_ZAXIS
= 7; /// Series axis (Z axis).
522 const sal_uInt16 EXC_CHOBJLINK_AXISUNIT
= 12; /// Unit name for axis labels.
524 // (0x1032) CHFRAME -----------------------------------------------------------
526 const sal_uInt16 EXC_ID_CHFRAME
= 0x1032;
528 const sal_uInt16 EXC_CHFRAME_STANDARD
= 0;
529 const sal_uInt16 EXC_CHFRAME_SHADOW
= 4;
531 const sal_uInt16 EXC_CHFRAME_AUTOSIZE
= 0x0001;
532 const sal_uInt16 EXC_CHFRAME_AUTOPOS
= 0x0002;
534 // (0x1033, 0x1034) CHBEGIN, CHEND --------------------------------------------
536 const sal_uInt16 EXC_ID_CHBEGIN
= 0x1033;
537 const sal_uInt16 EXC_ID_CHEND
= 0x1034;
539 // (0x1035) CHPLOTFRAME -------------------------------------------------------
541 const sal_uInt16 EXC_ID_CHPLOTFRAME
= 0x1035;
543 // (0x103A) CHCHART3D ---------------------------------------------------------
545 const sal_uInt16 EXC_ID_CHCHART3D
= 0x103A;
547 const sal_uInt16 EXC_CHCHART3D_REAL3D
= 0x0001; /// true = real 3d perspective.
548 const sal_uInt16 EXC_CHCHART3D_CLUSTER
= 0x0002; /// false = Z axis, true = clustered/stacked.
549 const sal_uInt16 EXC_CHCHART3D_AUTOHEIGHT
= 0x0004; /// true = automatic height to width ratio.
550 const sal_uInt16 EXC_CHCHART3D_HASWALLS
= 0x0010; /// true = 3d chart has walls/floor.
551 const sal_uInt16 EXC_CHCHART3D_2DWALLS
= 0x0020; /// true = 2d wall/gridlines, no floor.
553 // (0x103C) CHPICFORMAT -------------------------------------------------------
555 const sal_uInt16 EXC_ID_CHPICFORMAT
= 0x103C;
557 const sal_uInt16 EXC_CHPICFORMAT_NONE
= 0; /// For internal use only.
558 const sal_uInt16 EXC_CHPICFORMAT_STRETCH
= 1; /// Bitmap stretched to area.
559 const sal_uInt16 EXC_CHPICFORMAT_STACK
= 2; /// Bitmap stacked.
560 const sal_uInt16 EXC_CHPICFORMAT_SCALE
= 3; /// Bitmap scaled to axis scale.
562 const sal_uInt16 EXC_CHPICFORMAT_WMF
= 2;
563 const sal_uInt16 EXC_CHPICFORMAT_BMP
= 9;
564 const sal_uInt16 EXC_CHPICFORMAT_DEFAULT
= 19;
566 const sal_uInt16 EXC_CHPICFORMAT_WINDOWS
= 0x0001;
567 const sal_uInt16 EXC_CHPICFORMAT_MACOS
= 0x0002;
568 const sal_uInt16 EXC_CHPICFORMAT_FORMATONLY
= 0x0100;
569 const sal_uInt16 EXC_CHPICFORMAT_DEFAULTFLAGS
= 0x0E00; /// Default flags for export.
571 // (0x103D) CHDROPBAR ---------------------------------------------------------
573 const sal_uInt16 EXC_ID_CHDROPBAR
= 0x103D;
575 const sal_uInt16 EXC_CHDROPBAR_UP
= 0;
576 const sal_uInt16 EXC_CHDROPBAR_DOWN
= 1;
577 const sal_uInt16 EXC_CHDROPBAR_NONE
= 0xFFFF;
579 // (0x103E, 0x1040) CHRADARLINE, CHRADARAREA ----------------------------------
581 const sal_uInt16 EXC_ID_CHRADARLINE
= 0x103E;
582 const sal_uInt16 EXC_ID_CHRADARAREA
= 0x1040;
584 const sal_uInt16 EXC_CHRADAR_AXISLABELS
= 0x0001;
585 const sal_uInt16 EXC_CHRADAR_SHADOW
= 0x0002;
587 // (0x103F) CHSURFACE ---------------------------------------------------------
589 const sal_uInt16 EXC_ID_CHSURFACE
= 0x103F;
591 const sal_uInt16 EXC_CHSURFACE_FILLED
= 0x0001;
592 const sal_uInt16 EXC_CHSURFACE_SHADING
= 0x0002;
594 // (0x1041) CHAXESSET ---------------------------------------------------------
596 const sal_uInt16 EXC_ID_CHAXESSET
= 0x1041;
598 const sal_uInt16 EXC_CHAXESSET_PRIMARY
= 0;
599 const sal_uInt16 EXC_CHAXESSET_SECONDARY
= 1;
600 const sal_uInt16 EXC_CHAXESSET_NONE
= 0xFFFF; /// For internal use.
602 // (0x1044) CHPROPERTIES ------------------------------------------------------
604 const sal_uInt16 EXC_ID_CHPROPERTIES
= 0x1044;
606 const sal_uInt16 EXC_CHPROPS_MANSERIES
= 0x0001; /// Manual series allocation.
607 const sal_uInt16 EXC_CHPROPS_SHOWVISIBLEONLY
= 0x0002; /// Show visible cells only.
608 const sal_uInt16 EXC_CHPROPS_NORESIZE
= 0x0004; /// Do not resize chart with window.
609 const sal_uInt16 EXC_CHPROPS_MANPLOTAREA
= 0x0008; /// Plot area with CHFRAMEPOS records.
611 const sal_uInt8 EXC_CHPROPS_EMPTY_SKIP
= 0; /// Skip empty values.
612 const sal_uInt8 EXC_CHPROPS_EMPTY_ZERO
= 1; /// Plot empty values as zero.
613 const sal_uInt8 EXC_CHPROPS_EMPTY_INTERPOLATE
= 2; /// Interpolate empty values.
615 // (0x1045) CHSERGROUP --------------------------------------------------------
617 const sal_uInt16 EXC_ID_CHSERGROUP
= 0x1045;
619 const sal_uInt16 EXC_CHSERGROUP_NONE
= 0xFFFF; /// For internal use: no chart type group.
621 // (0x1048, 0x0858) CHPIVOTREF ------------------------------------------------
623 const sal_uInt16 EXC_ID5_CHPIVOTREF
= 0x1048;
624 const sal_uInt16 EXC_ID8_CHPIVOTREF
= 0x0858;
626 // (0x104A) CHSERPARENT -------------------------------------------------------
628 const sal_uInt16 EXC_ID_CHSERPARENT
= 0x104A;
630 // (0x104B) CHSERTRENDLINE ----------------------------------------------------
632 const sal_uInt16 EXC_ID_CHSERTRENDLINE
= 0x104B;
634 const sal_uInt8 EXC_CHSERTREND_POLYNOMIAL
= 0; /// If order is 1, trend line is linear.
635 const sal_uInt8 EXC_CHSERTREND_EXPONENTIAL
= 1;
636 const sal_uInt8 EXC_CHSERTREND_LOGARITHMIC
= 2;
637 const sal_uInt8 EXC_CHSERTREND_POWER
= 3;
638 const sal_uInt8 EXC_CHSERTREND_MOVING_AVG
= 4;
640 // (0x104E) CHFORMAT ----------------------------------------------------------
642 const sal_uInt16 EXC_ID_CHFORMAT
= 0x104E;
644 // (0x104F) CHFRAMEPOS --------------------------------------------------------
646 const sal_uInt16 EXC_ID_CHFRAMEPOS
= 0x104F;
648 const sal_uInt16 EXC_CHFRAMEPOS_ANY
= 2;
649 const sal_uInt16 EXC_CHFRAMEPOS_LEGEND
= 5;
651 const sal_uInt16 EXC_CHFRAMEPOS_MANUALSIZE
= 1;
652 const sal_uInt16 EXC_CHFRAMEPOS_AUTOSIZE
= 2;
654 // (0x1050) CHFORMATRUNS ------------------------------------------------------
656 const sal_uInt16 EXC_ID_CHFORMATRUNS
= 0x1050;
658 // (0x1051) CHSOURCELINK ------------------------------------------------------
660 const sal_uInt16 EXC_ID_CHSOURCELINK
= 0x1051;
662 const sal_uInt8 EXC_CHSRCLINK_TITLE
= 0;
663 const sal_uInt8 EXC_CHSRCLINK_VALUES
= 1;
664 const sal_uInt8 EXC_CHSRCLINK_CATEGORY
= 2;
665 const sal_uInt8 EXC_CHSRCLINK_BUBBLES
= 3;
667 const sal_uInt8 EXC_CHSRCLINK_DEFAULT
= 0;
668 const sal_uInt8 EXC_CHSRCLINK_DIRECTLY
= 1;
669 const sal_uInt8 EXC_CHSRCLINK_WORKSHEET
= 2;
671 const sal_uInt16 EXC_CHSRCLINK_NUMFMT
= 0x0001;
673 // (0x105B) CHSERERRORBAR -----------------------------------------------------
675 const sal_uInt16 EXC_ID_CHSERERRORBAR
= 0x105B;
677 const sal_uInt8 EXC_CHSERERR_NONE
= 0; /// For internal use only.
678 const sal_uInt8 EXC_CHSERERR_XPLUS
= 1;
679 const sal_uInt8 EXC_CHSERERR_XMINUS
= 2;
680 const sal_uInt8 EXC_CHSERERR_YPLUS
= 3;
681 const sal_uInt8 EXC_CHSERERR_YMINUS
= 4;
683 const sal_uInt8 EXC_CHSERERR_PERCENT
= 1;
684 const sal_uInt8 EXC_CHSERERR_FIXED
= 2;
685 const sal_uInt8 EXC_CHSERERR_STDDEV
= 3;
686 const sal_uInt8 EXC_CHSERERR_CUSTOM
= 4;
687 const sal_uInt8 EXC_CHSERERR_STDERR
= 5;
689 const sal_uInt8 EXC_CHSERERR_END_BLANK
= 0; /// Line end: blank.
690 const sal_uInt8 EXC_CHSERERR_END_TSHAPE
= 1; /// Line end: t-shape.
692 // (0x105D) CHSERIESFORMAT ----------------------------------------------------
694 const sal_uInt16 EXC_ID_CHSERIESFORMAT
= 0x105D;
696 const sal_uInt16 EXC_CHSERIESFORMAT_SMOOTHED
= 0x0001;
697 const sal_uInt16 EXC_CHSERIESFORMAT_BUBBLE3D
= 0x0002;
698 const sal_uInt16 EXC_CHSERIESFORMAT_SHADOW
= 0x0004;
700 // (0x105F) CH3DDATAFORMAT ----------------------------------------------------
702 const sal_uInt16 EXC_ID_CH3DDATAFORMAT
= 0x105F;
704 const sal_uInt8 EXC_CH3DDATAFORMAT_RECT
= 0; /// Rectangular base.
705 const sal_uInt8 EXC_CH3DDATAFORMAT_CIRC
= 1; /// Circular base.
707 const sal_uInt8 EXC_CH3DDATAFORMAT_STRAIGHT
= 0; /// Straight to top.
708 const sal_uInt8 EXC_CH3DDATAFORMAT_SHARP
= 1; /// Sharp top.
709 const sal_uInt8 EXC_CH3DDATAFORMAT_TRUNC
= 2; /// Shart top, truncated.
711 // (0x1061) CHPIEEXT ----------------------------------------------------------
713 const sal_uInt16 EXC_ID_CHPIEEXT
= 0x1061;
715 // (0x1066) CHESCHERFORMAT ----------------------------------------------------
717 const sal_uInt16 EXC_ID_CHESCHERFORMAT
= 0x1066;
719 // Other record IDs -----------------------------------------------------------
721 const sal_uInt16 EXC_ID_CHWRAPPEDRECORD
= 0x0851;
722 const sal_uInt16 EXC_ID_CHUNITPROPERTIES
= 0x0857;
723 const sal_uInt16 EXC_ID_CHUSEDAXESSETS
= 0x1046;
724 const sal_uInt16 EXC_ID_CHLABELRANGE2
= 0x1062;
725 const sal_uInt16 EXC_ID_CHPLOTGROWTH
= 0x1064;
726 const sal_uInt16 EXC_ID_CHSERINDEX
= 0x1065;
727 const sal_uInt16 EXC_ID_CHUNKNOWN
= 0xFFFF;
729 // ============================================================================
730 // Structs and classes
731 // ============================================================================
733 // Common =====================================================================
735 struct XclChRectangle
737 sal_Int32 mnX
; /// X position of the object in 1/4000 of chart width.
738 sal_Int32 mnY
; /// Y position of the object in 1/4000 of chart height.
739 sal_Int32 mnWidth
; /// Width of the object in 1/4000 of chart width.
740 sal_Int32 mnHeight
; /// Height of the object in 1/4000 of chart height.
742 explicit XclChRectangle();
745 // ----------------------------------------------------------------------------
747 /** Specifies the position of a data series or data point. */
748 struct XclChDataPointPos
750 sal_uInt16 mnSeriesIdx
; /// Series index of series or a data point.
751 sal_uInt16 mnPointIdx
; /// Index of a data point inside a series.
753 explicit XclChDataPointPos(
754 sal_uInt16 nSeriesIdx
= EXC_CHSERIES_INVALID
,
755 sal_uInt16 nPointIdx
= EXC_CHDATAFORMAT_ALLPOINTS
);
758 bool operator<( const XclChDataPointPos
& rL
, const XclChDataPointPos
& rR
);
760 // ----------------------------------------------------------------------------
762 /** Contains the type and context of a block of future records which are
763 guarded by CHFRBLOCKBEGIN and CHFRBLOCKEND records. */
766 sal_uInt16 mnType
; /// Type of the future record block.
767 sal_uInt16 mnContext
; /// Context dependent on type.
768 sal_uInt16 mnValue1
; /// Optional primary value for current context.
769 sal_uInt16 mnValue2
; /// Optional secondary value for current context.
771 explicit XclChFrBlock( sal_uInt16 nType
);
774 // Frame formatting ===========================================================
778 XclChRectangle maRect
; /// Object dependent position data.
779 sal_uInt16 mnObjType
; /// Object type.
780 sal_uInt16 mnSizeMode
; /// Size mode (manual, automatic).
782 explicit XclChFramePos();
785 // ----------------------------------------------------------------------------
787 struct XclChLineFormat
789 Color maColor
; /// Line color.
790 sal_uInt16 mnPattern
; /// Line pattern (solid, dashed, ...).
791 sal_Int16 mnWeight
; /// Line weight (hairline, single, ...).
792 sal_uInt16 mnFlags
; /// Additional flags.
794 explicit XclChLineFormat();
797 // ----------------------------------------------------------------------------
799 struct XclChAreaFormat
801 Color maPattColor
; /// Pattern color.
802 Color maBackColor
; /// Pattern background color.
803 sal_uInt16 mnPattern
; /// Fill pattern.
804 sal_uInt16 mnFlags
; /// Additional flags.
806 explicit XclChAreaFormat();
809 // ----------------------------------------------------------------------------
812 class EscherPropertyContainer
;
814 struct XclChEscherFormat
816 typedef ScfRef
< SfxItemSet
> SfxItemSetRef
;
817 typedef ScfRef
< EscherPropertyContainer
> EscherPropSetRef
;
819 SfxItemSetRef mxItemSet
; /// Item set for Escher properties import.
820 EscherPropSetRef mxEscherSet
; /// Container for Escher properties export.
822 explicit XclChEscherFormat();
823 ~XclChEscherFormat();
826 // ----------------------------------------------------------------------------
828 struct XclChPicFormat
830 sal_uInt16 mnBmpMode
; /// Bitmap mode, e.g. stretched, stacked.
831 sal_uInt16 mnFormat
; /// Image data format (WMF, BMP).
832 sal_uInt16 mnFlags
; /// Additional flags.
833 double mfScale
; /// Picture scaling (units).
835 explicit XclChPicFormat();
838 // ----------------------------------------------------------------------------
842 sal_uInt16 mnFormat
; /// Format type of the frame.
843 sal_uInt16 mnFlags
; /// Additional flags.
845 explicit XclChFrame();
848 // Source links ===============================================================
850 struct XclChSourceLink
852 sal_uInt8 mnDestType
; /// Type of the destination (title, values, ...).
853 sal_uInt8 mnLinkType
; /// Link type (directly, linked to worksheet, ...).
854 sal_uInt16 mnFlags
; /// Additional flags.
855 sal_uInt16 mnNumFmtIdx
; /// Number format index.
857 explicit XclChSourceLink();
860 // Text =======================================================================
862 struct XclChObjectLink
864 XclChDataPointPos maPointPos
; /// Position of the data point.
865 sal_uInt16 mnTarget
; /// Target of the link.
867 explicit XclChObjectLink();
870 // ----------------------------------------------------------------------------
872 struct XclChFrLabelProps
874 String maSeparator
; /// Separator between label values.
875 sal_uInt16 mnFlags
; /// Flags indicating which values to be displayed.
877 explicit XclChFrLabelProps();
880 // ----------------------------------------------------------------------------
884 XclChRectangle maRect
; /// Position of the text object.
885 Color maTextColor
; /// Text color.
886 sal_uInt8 mnHAlign
; /// Horizontal alignment.
887 sal_uInt8 mnVAlign
; /// Vertical alignment.
888 sal_uInt16 mnBackMode
; /// Background mode: transparent, opaque.
889 sal_uInt16 mnFlags
; /// Additional flags.
890 sal_uInt16 mnPlacement
; /// Text object placement (BIFF8+).
891 sal_uInt16 mnRotation
; /// Text object rotation (BIFF8+).
893 explicit XclChText();
896 // Data series ================================================================
898 struct XclChMarkerFormat
900 Color maLineColor
; /// Border line color.
901 Color maFillColor
; /// Fill color.
902 sal_uInt32 mnMarkerSize
; /// Size of a marker
903 sal_uInt16 mnMarkerType
; /// Marker type (none, diamond, ...).
904 sal_uInt16 mnFlags
; /// Additional flags.
906 explicit XclChMarkerFormat();
909 // ----------------------------------------------------------------------------
911 struct XclCh3dDataFormat
913 sal_uInt8 mnBase
; /// Base form.
914 sal_uInt8 mnTop
; /// Top egde mode.
916 explicit XclCh3dDataFormat();
919 // ----------------------------------------------------------------------------
921 struct XclChDataFormat
923 XclChDataPointPos maPointPos
; /// Position of the data point or series.
924 sal_uInt16 mnFormatIdx
; /// Formatting index for automatic colors.
925 sal_uInt16 mnFlags
; /// Additional flags.
927 explicit XclChDataFormat();
930 // ----------------------------------------------------------------------------
932 struct XclChSerTrendLine
934 double mfIntercept
; /// Forced intercept.
935 double mfForecastFor
; /// Counter to forecast forward.
936 double mfForecastBack
; /// Counter to forecast backward.
937 sal_uInt8 mnLineType
; /// Type of the trend line.
938 sal_uInt8 mnOrder
; /// Polynomial order or moving average counter.
939 sal_uInt8 mnShowEquation
; /// 1 = Show equation.
940 sal_uInt8 mnShowRSquared
; /// 1 = Show R-squared.
942 explicit XclChSerTrendLine();
945 // ----------------------------------------------------------------------------
947 struct XclChSerErrorBar
949 double mfValue
; /// Fixed value for several source types.
950 sal_uInt16 mnValueCount
; /// Number of custom error values.
951 sal_uInt8 mnBarType
; /// Type of the error bar (X/Y).
952 sal_uInt8 mnSourceType
; /// Type of source values.
953 sal_uInt8 mnLineEnd
; /// Type of the line ends.
955 explicit XclChSerErrorBar();
958 // ----------------------------------------------------------------------------
962 sal_uInt16 mnCategType
; /// Data type for category entries.
963 sal_uInt16 mnValueType
; /// Data type for value entries.
964 sal_uInt16 mnBubbleType
; /// Data type for bubble entries.
965 sal_uInt16 mnCategCount
; /// Number of category entries.
966 sal_uInt16 mnValueCount
; /// Number of value entries.
967 sal_uInt16 mnBubbleCount
; /// Number of bubble entries.
969 explicit XclChSeries();
972 // Chart type groups ==========================================================
976 sal_Int16 mnOverlap
; /// Bar overlap width (CHBAR).
977 sal_Int16 mnGap
; /// Gap between bars (CHBAR).
978 sal_uInt16 mnRotation
; /// Rotation angle of first pie (CHPIE).
979 sal_uInt16 mnPieHole
; /// Hole size in donut chart (CHPIE).
980 sal_uInt16 mnBubbleSize
; /// Bubble size in bubble chart (CHSCATTER).
981 sal_uInt16 mnBubbleType
; /// Bubble type in bubble chart (CHSCATTER).
982 sal_uInt16 mnFlags
; /// Additional flags (all chart types).
984 explicit XclChType();
987 // ----------------------------------------------------------------------------
991 sal_uInt16 mnRotation
; /// Rotation (0...359deg).
992 sal_Int16 mnElevation
; /// Elevation (-90...+90deg).
993 sal_uInt16 mnEyeDist
; /// Eye distance to chart (0...100).
994 sal_uInt16 mnRelHeight
; /// Height relative to width.
995 sal_uInt16 mnRelDepth
; /// Depth relative to width.
996 sal_uInt16 mnDepthGap
; /// Space between series.
997 sal_uInt16 mnFlags
; /// Additional flags.
999 explicit XclChChart3d();
1002 // ----------------------------------------------------------------------------
1006 XclChRectangle maRect
; /// Position of the legend.
1007 sal_uInt8 mnDockMode
; /// Docking mode.
1008 sal_uInt8 mnSpacing
; /// Spacing between elements.
1009 sal_uInt16 mnFlags
; /// Additional flags.
1011 explicit XclChLegend();
1014 // ----------------------------------------------------------------------------
1016 struct XclChTypeGroup
1018 XclChRectangle maRect
; /// Position (not used).
1019 sal_uInt16 mnFlags
; /// Additional flags.
1020 sal_uInt16 mnGroupIdx
; /// Chart type group index.
1022 explicit XclChTypeGroup();
1025 // ----------------------------------------------------------------------------
1027 struct XclChProperties
1029 sal_uInt16 mnFlags
; /// Additional flags.
1030 sal_uInt8 mnEmptyMode
; /// Plotting mode for empty cells.
1032 explicit XclChProperties();
1035 // Axes =======================================================================
1037 struct XclChLabelRange
1039 sal_uInt16 mnCross
; /// Crossing position of other axis.
1040 sal_uInt16 mnLabelFreq
; /// Frequency of labels.
1041 sal_uInt16 mnTickFreq
; /// Frequency of ticks.
1042 sal_uInt16 mnFlags
; /// Additional flags.
1044 explicit XclChLabelRange();
1047 // ----------------------------------------------------------------------------
1049 struct XclChValueRange
1051 double mfMin
; /// Minimum value on axis.
1052 double mfMax
; /// Maximum value on axis.
1053 double mfMajorStep
; /// Distance for major grid lines.
1054 double mfMinorStep
; /// Distance for minor grid lines.
1055 double mfCross
; /// Crossing position of other axis.
1056 sal_uInt16 mnFlags
; /// Additional flags.
1058 explicit XclChValueRange();
1061 // ----------------------------------------------------------------------------
1065 XclChRectangle maRect
; /// Position (not used).
1066 Color maTextColor
; /// Tick labels color.
1067 sal_uInt8 mnMajor
; /// Type of tick marks of major grid.
1068 sal_uInt8 mnMinor
; /// Type of tick marks of minor grid.
1069 sal_uInt8 mnLabelPos
; /// Position of labels relative to axis.
1070 sal_uInt8 mnBackMode
; /// Background mode: transparent, opaque.
1071 sal_uInt16 mnFlags
; /// Additional flags.
1072 sal_uInt16 mnRotation
; /// Tick labels angle (BIFF8+).
1074 explicit XclChTick();
1077 // ----------------------------------------------------------------------------
1081 XclChRectangle maRect
; /// Position (not used).
1082 sal_uInt16 mnType
; /// Axis type.
1084 explicit XclChAxis();
1086 /** Returns the axis dimension index used by the chart API. */
1087 sal_Int32
GetApiAxisDimension() const;
1090 // ----------------------------------------------------------------------------
1094 XclChRectangle maRect
; /// Position of the axes set.
1095 sal_uInt16 mnAxesSetId
; /// Primary/secondary axes set.
1097 explicit XclChAxesSet();
1099 /** Returns the axes set index used by the chart API. */
1100 sal_Int32
GetApiAxesSetIndex() const;
1103 // Property mode ==============================================================
1105 /** Specifies the type of a formatting. This results in different property names. */
1106 enum XclChPropertyMode
1108 EXC_CHPROPMODE_COMMON
, /// Common objects, no special handling.
1109 EXC_CHPROPMODE_LINEARSERIES
, /// Specific to data series drawn as lines.
1110 EXC_CHPROPMODE_FILLEDSERIES
/// Specific to data series drawn as areas.
1113 // Static helper functions ====================================================
1115 /** Contains static helper functions for the chart filters. */
1116 class XclChartHelper
1119 /** Returns a palette index for automatic series line colors. */
1120 static sal_uInt16
GetSeriesLineAutoColorIdx( sal_uInt16 nFormatIdx
);
1121 /** Returns a palette index for automatic series fill colors. */
1122 static sal_uInt16
GetSeriesFillAutoColorIdx( sal_uInt16 nFormatIdx
);
1123 /** Returns a transparency value for automatic series fill colors. */
1124 static sal_uInt8
GetSeriesFillAutoTransp( sal_uInt16 nFormatIdx
);
1125 /** Returns an automatic symbol index for the passed format index. */
1126 static sal_uInt16
GetAutoMarkerType( sal_uInt16 nFormatIdx
);
1127 /** Returns true, if the passed marker type is filled. */
1128 static bool HasMarkerFillColor( sal_uInt16 nMarkerType
);
1129 /** Returns the role name for a manual data source for error bars. */
1130 static ::rtl::OUString
GetErrorBarValuesRole( sal_uInt8 nBarType
);
1133 // Chart formatting info provider =============================================
1135 /** Enumerates different object types for specific automatic formatting behaviour. */
1136 enum XclChObjectType
1138 EXC_CHOBJTYPE_BACKGROUND
, /// Chart background.
1139 EXC_CHOBJTYPE_PLOTFRAME
, /// Wall formatting in 2d charts.
1140 EXC_CHOBJTYPE_WALL3D
, /// Wall formatting in 3d charts.
1141 EXC_CHOBJTYPE_FLOOR3D
, /// Floor formatting in 3d charts.
1142 EXC_CHOBJTYPE_TEXT
, /// Text boxes (titles, data point labels).
1143 EXC_CHOBJTYPE_LEGEND
, /// Chart legend.
1144 EXC_CHOBJTYPE_LINEARSERIES
, /// Series formatting in a chart supporting line formatting only.
1145 EXC_CHOBJTYPE_FILLEDSERIES
, /// Series formatting in a chart supporting area formatting.
1146 EXC_CHOBJTYPE_AXISLINE
, /// Axis line format.
1147 EXC_CHOBJTYPE_GRIDLINE
, /// Axis grid line format.
1148 EXC_CHOBJTYPE_TRENDLINE
, /// Series trend line.
1149 EXC_CHOBJTYPE_ERRORBAR
, /// Series error bar.
1150 EXC_CHOBJTYPE_CONNECTLINE
, /// Data point connector line.
1151 EXC_CHOBJTYPE_HILOLINE
, /// High/low lines in stock charts.
1152 EXC_CHOBJTYPE_WHITEDROPBAR
, /// White-day drop bar in stock charts.
1153 EXC_CHOBJTYPE_BLACKDROPBAR
/// Black-day drop bar in stock charts.
1156 /** Enumerates different types to handle missing frame objects. */
1159 EXC_CHFRAMETYPE_AUTO
, /// Missing frame represents automatic formatting.
1160 EXC_CHFRAMETYPE_INVISIBLE
/// Missing frame represents invisible formatting.
1163 /** Enumerates different text box types for default text formatting. */
1166 EXC_CHTEXTTYPE_TITLE
, /// Chart title.
1167 EXC_CHTEXTTYPE_LEGEND
, /// Chart legend.
1168 EXC_CHTEXTTYPE_AXISTITLE
, /// Chart axis titles.
1169 EXC_CHTEXTTYPE_AXISLABEL
, /// Chart axis labels.
1170 EXC_CHTEXTTYPE_DATALABEL
/// Data point labels.
1173 /** Contains information about auto formatting of a specific chart object type. */
1174 struct XclChFormatInfo
1176 XclChObjectType meObjType
; /// Object type for automatic format.
1177 XclChPropertyMode mePropMode
; /// Property mode for property set helper.
1178 sal_uInt16 mnAutoLineColorIdx
; /// Automatic line color index.
1179 sal_Int16 mnAutoLineWeight
; /// Automatic line weight (hairline, single, ...).
1180 sal_uInt16 mnAutoPattColorIdx
; /// Automatic fill pattern color index.
1181 XclChFrameType meDefFrameType
; /// Default format type for missing frame objects.
1182 bool mbCreateDefFrame
; /// true = Create missing frame objects on import.
1183 bool mbDeleteDefFrame
; /// true = Delete default frame formatting on export.
1184 bool mbIsFrame
; /// true = Object is a frame, false = Object is a line.
1187 // ----------------------------------------------------------------------------
1189 /** Provides access to chart auto formatting for all available object types. */
1190 class XclChFormatInfoProvider
1193 explicit XclChFormatInfoProvider();
1195 /** Returns an info struct about auto formatting for the passed object type. */
1196 const XclChFormatInfo
& GetFormatInfo( XclChObjectType eObjType
) const;
1199 typedef ::std::map
< XclChObjectType
, const XclChFormatInfo
* > XclFmtInfoMap
;
1200 XclFmtInfoMap maInfoMap
; /// Maps object type to formatting data.
1203 // Chart type info provider ===================================================
1205 /** Enumerates all kinds of different chart types. */
1208 EXC_CHTYPEID_BAR
, /// Vertical bar chart.
1209 EXC_CHTYPEID_HORBAR
, /// Horizontal bar chart.
1210 EXC_CHTYPEID_LINE
, /// Line chart.
1211 EXC_CHTYPEID_AREA
, /// Area chart.
1212 EXC_CHTYPEID_STOCK
, /// Stock chart.
1213 EXC_CHTYPEID_RADARLINE
, /// Linear radar chart.
1214 EXC_CHTYPEID_RADARAREA
, /// Filled radar chart.
1215 EXC_CHTYPEID_PIE
, /// Pie chart.
1216 EXC_CHTYPEID_DONUT
, /// Donut chart.
1217 EXC_CHTYPEID_PIEEXT
, /// Pie-to-pie or pie-to-bar chart.
1218 EXC_CHTYPEID_SCATTER
, /// Scatter (XY) chart.
1219 EXC_CHTYPEID_BUBBLES
, /// Bubble chart.
1220 EXC_CHTYPEID_SURFACE
, /// Surface chart.
1221 EXC_CHTYPEID_UNKNOWN
/// Default for unknown chart types.
1224 /** Enumerates different categories of similar chart types. */
1227 EXC_CHTYPECATEG_BAR
, /// Bar charts (horizontal or vertical).
1228 EXC_CHTYPECATEG_LINE
, /// Line charts (line, area, stock charts).
1229 EXC_CHTYPECATEG_RADAR
, /// Radar charts (linear or filled).
1230 EXC_CHTYPECATEG_PIE
, /// Pie and donut charts.
1231 EXC_CHTYPECATEG_SCATTER
, /// Scatter and bubble charts.
1232 EXC_CHTYPECATEG_SURFACE
/// Surface charts.
1235 /** Enumerates modes for varying point colors in a series. */
1236 enum XclChVarPointMode
1238 EXC_CHVARPOINT_NONE
, /// No varied colors supported.
1239 EXC_CHVARPOINT_SINGLE
, /// Only supported, if type group contains only one series.
1240 EXC_CHVARPOINT_MULTI
/// Supported for multiple series in a chart type group.
1243 /** Contains information for a chart type. */
1244 struct XclChTypeInfo
1246 XclChTypeId meTypeId
; /// Unique chart type identifier.
1247 XclChTypeCateg meTypeCateg
; /// Chart type category this type belongs to.
1248 sal_uInt16 mnRecId
; /// Record identifier written to the file.
1249 const sal_Char
* mpcServiceName
; /// Service name of the type.
1250 XclChVarPointMode meVarPointMode
; /// Mode for varying point colors.
1251 sal_Int32 mnDefaultLabelPos
; /// Default data label position (API constant).
1252 bool mbCombinable2d
; /// true = Types can be combined in one axes set.
1253 bool mbSupports3d
; /// true = 3d type allowed, false = Only 2d type.
1254 bool mbPolarCoordSystem
; /// true = Polar, false = Cartesian.
1255 bool mbSeriesIsFrame2d
; /// true = Series with area formatting (2d charts).
1256 bool mbSeriesIsFrame3d
; /// true = Series with area formatting (3d charts).
1257 bool mbSingleSeriesVis
; /// true = Only first series visible.
1258 bool mbCategoryAxis
; /// true = X axis contains categories.
1259 bool mbSwappedAxesSet
; /// true = X and Y axes are swapped.
1260 bool mbSupportsStacking
; /// true = Series can be stacked on each other.
1261 bool mbReverseSeries
; /// true = Insert unstacked series in reverse order.
1262 bool mbTicksBetweenCateg
; /// true = X axis ticks between categories.
1265 /** Extended chart type information and access functions. */
1266 struct XclChExtTypeInfo
: public XclChTypeInfo
1268 bool mb3dChart
; /// Chart is actually a 3D chart.
1269 bool mbSpline
; /// Series lines are smoothed.
1271 explicit XclChExtTypeInfo( const XclChTypeInfo
& rTypeInfo
);
1273 void Set( const XclChTypeInfo
& rTypeInfo
, bool b3dChart
, bool bSpline
);
1275 /** Returns true, if this chart type supports area formatting for its series. */
1276 inline bool IsSeriesFrameFormat() const
1277 { return mb3dChart
? mbSeriesIsFrame3d
: mbSeriesIsFrame2d
; }
1278 /** Returns the correct object type identifier for series and data points. */
1279 inline XclChObjectType
GetSeriesObjectType() const
1280 { return IsSeriesFrameFormat() ? EXC_CHOBJTYPE_FILLEDSERIES
: EXC_CHOBJTYPE_LINEARSERIES
; }
1283 // ----------------------------------------------------------------------------
1285 /** Provides access to chart type info structs for all available chart types. */
1286 class XclChTypeInfoProvider
1289 explicit XclChTypeInfoProvider();
1291 /** Returns chart type info for a unique chart type identifier. */
1292 const XclChTypeInfo
& GetTypeInfo( XclChTypeId eType
) const;
1293 /** Returns the first fitting chart type info for an Excel chart type record identifier. */
1294 const XclChTypeInfo
& GetTypeInfoFromRecId( sal_uInt16 nRecId
) const;
1295 /** Returns the first fitting chart type info for the passed service name. */
1296 const XclChTypeInfo
& GetTypeInfoFromService( const ::rtl::OUString
& rServiceName
) const;
1299 typedef ::std::map
< XclChTypeId
, const XclChTypeInfo
* > XclChTypeInfoMap
;
1300 XclChTypeInfoMap maInfoMap
; /// Maps chart types to type info data.
1303 // Property helpers ===========================================================
1305 class XclChObjectTable
1308 typedef ::com::sun::star::uno::Reference
< ::com::sun::star::container::XNameContainer
> XNameContainerRef
;
1309 typedef ::com::sun::star::uno::Reference
< ::com::sun::star::lang::XMultiServiceFactory
> XServiceFactoryRef
;
1312 explicit XclChObjectTable( XServiceFactoryRef xFactory
,
1313 const ::rtl::OUString
& rServiceName
, const ::rtl::OUString
& rObjNameBase
);
1315 /** Returns a named formatting object from the chart document. */
1316 ::com::sun::star::uno::Any
GetObject( const ::rtl::OUString
& rObjName
);
1317 /** Insertes a named formatting object into the chart document. */
1318 ::rtl::OUString
InsertObject( const ::com::sun::star::uno::Any
& rObj
);
1321 XServiceFactoryRef mxFactory
; /// Factory to create the container.
1322 XNameContainerRef mxContainer
; /// Container for the objects.
1323 ::rtl::OUString maServiceName
; /// Service name to create the container.
1324 ::rtl::OUString maObjNameBase
; /// Base of names for inserted objects.
1325 sal_Int32 mnIndex
; /// Index to create unique identifiers.
1328 // ----------------------------------------------------------------------------
1332 /** Helper class for usage of property sets. */
1333 class XclChPropSetHelper
1336 explicit XclChPropSetHelper();
1338 /** Reads all line properties from the passed property set. */
1339 void ReadLineProperties(
1340 XclChLineFormat
& rLineFmt
,
1341 XclChObjectTable
& rDashTable
,
1342 const ScfPropertySet
& rPropSet
,
1343 XclChPropertyMode ePropMode
);
1344 /** Reads solid area properties from the passed property set.
1345 @return true = object contains complex fill properties. */
1346 bool ReadAreaProperties(
1347 XclChAreaFormat
& rAreaFmt
,
1348 const ScfPropertySet
& rPropSet
,
1349 XclChPropertyMode ePropMode
);
1350 /** Reads gradient or bitmap area properties from the passed property set. */
1351 void ReadEscherProperties(
1352 XclChEscherFormat
& rEscherFmt
,
1353 XclChPicFormat
& rPicFmt
,
1354 XclChObjectTable
& rGradientTable
,
1355 XclChObjectTable
& rHatchTable
,
1356 XclChObjectTable
& rBitmapTable
,
1357 const ScfPropertySet
& rPropSet
,
1358 XclChPropertyMode ePropMode
);
1359 /** Reads all marker properties from the passed property set. */
1360 void ReadMarkerProperties(
1361 XclChMarkerFormat
& rMarkerFmt
,
1362 const ScfPropertySet
& rPropSet
,
1363 sal_uInt16 nFormatIdx
);
1364 /** Reads rotation properties from the passed property set. */
1365 sal_uInt16
ReadRotationProperties(
1366 const ScfPropertySet
& rPropSet
,
1367 bool bSupportsStacked
);
1368 /** Reads all legend properties from the passed property set. */
1369 void ReadLegendProperties(
1370 XclChLegend
& rLegend
,
1371 const ScfPropertySet
& rPropSet
);
1373 /** Writes all line properties to the passed property set. */
1374 void WriteLineProperties(
1375 ScfPropertySet
& rPropSet
,
1376 XclChObjectTable
& rDashTable
,
1377 const XclChLineFormat
& rLineFmt
,
1378 XclChPropertyMode ePropMode
);
1379 /** Writes solid area properties to the passed property set. */
1380 void WriteAreaProperties(
1381 ScfPropertySet
& rPropSet
,
1382 const XclChAreaFormat
& rAreaFmt
,
1383 XclChPropertyMode ePropMode
);
1384 /** Writes gradient or bitmap area properties to the passed property set. */
1385 void WriteEscherProperties(
1386 ScfPropertySet
& rPropSet
,
1387 XclChObjectTable
& rGradientTable
,
1388 XclChObjectTable
& rHatchTable
,
1389 XclChObjectTable
& rBitmapTable
,
1390 const XclChEscherFormat
& rEscherFmt
,
1391 const XclChPicFormat
& rPicFmt
,
1392 XclChPropertyMode ePropMode
);
1393 /** Writes all marker properties to the passed property set. */
1394 void WriteMarkerProperties(
1395 ScfPropertySet
& rPropSet
,
1396 const XclChMarkerFormat
& rMarkerFmt
);
1397 /** Writes rotation properties to the passed property set. */
1398 void WriteRotationProperties(
1399 ScfPropertySet
& rPropSet
,
1400 sal_uInt16 nRotation
,
1401 bool bSupportsStacked
);
1402 /** Writes all legend properties to the passed property set. */
1403 void WriteLegendProperties(
1404 ScfPropertySet
& rPropSet
,
1405 const XclChLegend
& rLegend
);
1408 /** Returns a line property set helper according to the passed property mode. */
1409 ScfPropSetHelper
& GetLineHelper( XclChPropertyMode ePropMode
);
1410 /** Returns an area property set helper according to the passed property mode. */
1411 ScfPropSetHelper
& GetAreaHelper( XclChPropertyMode ePropMode
);
1412 /** Returns a gradient property set helper according to the passed property mode. */
1413 ScfPropSetHelper
& GetGradientHelper( XclChPropertyMode ePropMode
);
1414 /** Returns a hatch property set helper according to the passed property mode. */
1415 ScfPropSetHelper
& GetHatchHelper( XclChPropertyMode ePropMode
);
1418 ScfPropSetHelper maLineHlpCommon
; /// Properties for lines in common objects.
1419 ScfPropSetHelper maLineHlpLinear
; /// Properties for lines in linear series.
1420 ScfPropSetHelper maLineHlpFilled
; /// Properties for lines in filled series.
1421 ScfPropSetHelper maAreaHlpCommon
; /// Properties for areas in common objects.
1422 ScfPropSetHelper maAreaHlpFilled
; /// Properties for areas in filled series.
1423 ScfPropSetHelper maGradHlpCommon
; /// Properties for gradients in common objects.
1424 ScfPropSetHelper maGradHlpFilled
; /// Properties for gradients in filled series.
1425 ScfPropSetHelper maHatchHlpCommon
; /// Properties for hatches in common objects.
1426 ScfPropSetHelper maHatchHlpFilled
; /// Properties for hatches in filled series.
1427 ScfPropSetHelper maBitmapHlp
; /// Properties for bitmaps.
1428 ScfPropSetHelper maLegendHlp
; /// Properties for legend.
1431 // ============================================================================
1433 /** Base struct for internal root data structs for import and export. */
1437 typedef ::com::sun::star::uno::Reference
< ::com::sun::star::chart2::XChartDocument
> XChartDocRef
;
1440 explicit XclChRootData();
1441 virtual ~XclChRootData();
1443 /** Returns the API reference of the chart document. */
1444 XChartDocRef
GetChartDoc() const;
1446 /** Returns the chart type info provider, that contains data about all chart types. */
1447 inline XclChTypeInfoProvider
& GetTypeInfoProvider() const { return *mxTypeInfoProv
; }
1448 /** Returns the chart type info provider, that contains data about all chart types. */
1449 inline XclChFormatInfoProvider
& GetFormatInfoProvider() const { return *mxFmtInfoProv
; }
1451 inline XclChObjectTable
& GetLineDashTable() const { return *mxLineDashTable
; }
1452 inline XclChObjectTable
& GetGradientTable() const { return *mxGradientTable
; }
1453 inline XclChObjectTable
& GetHatchTable() const { return *mxHatchTable
; }
1454 inline XclChObjectTable
& GetBitmapTable() const { return *mxBitmapTable
; }
1456 /** Starts the API chart document conversion. Must be called once before any API access. */
1457 void InitConversion( XChartDocRef xChartDoc
);
1458 /** Finishes the API chart document conversion. Must be called once before any API access. */
1459 void FinishConversion();
1462 typedef ScfRef
< XclChTypeInfoProvider
> XclChTypeProvRef
;
1463 typedef ScfRef
< XclChFormatInfoProvider
> XclChFmtInfoProvRef
;
1464 typedef ScfRef
< XclChObjectTable
> XclChObjectTableRef
;
1466 XChartDocRef mxChartDoc
; /// The chart document.
1467 XclChTypeProvRef mxTypeInfoProv
; /// Provides info about chart types.
1468 XclChFmtInfoProvRef mxFmtInfoProv
; /// Provides info about auto formatting.
1469 XclChObjectTableRef mxLineDashTable
; /// Container for line dash styles.
1470 XclChObjectTableRef mxGradientTable
; /// Container for gradient fill styles.
1471 XclChObjectTableRef mxHatchTable
; /// Container for hatch fill styles.
1472 XclChObjectTableRef mxBitmapTable
; /// Container for bitmap fill styles.
1475 // ============================================================================