update dev300-m58
[ooovba.git] / sc / source / filter / inc / xlchart.hxx
blob7e3873b1f1cfe7eb74e6ba8f8d09028093fd655b
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
39 #include <map>
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; }
46 } } }
48 // Property names =============================================================
50 // service 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" )
76 // property names
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_PERCENTDIAGONAL CREATE_OUSTRING( "PercentDiagonal" )
119 #define EXC_CHPROP_PERSPECTIVE CREATE_OUSTRING( "Perspective" )
120 #define EXC_CHPROP_POSITIVEERROR CREATE_OUSTRING( "PositiveError" )
121 #define EXC_CHPROP_RIGHTANGLEDAXES CREATE_OUSTRING( "RightAngledAxes" )
122 #define EXC_CHPROP_ROLE CREATE_OUSTRING( "Role" )
123 #define EXC_CHPROP_ROTATIONHORIZONTAL CREATE_OUSTRING( "RotationHorizontal" )
124 #define EXC_CHPROP_ROTATIONVERTICAL CREATE_OUSTRING( "RotationVertical" )
125 #define EXC_CHPROP_SHOW CREATE_OUSTRING( "Show" )
126 #define EXC_CHPROP_SHOWCORRELATION CREATE_OUSTRING( "ShowCorrelationCoefficient" )
127 #define EXC_CHPROP_SHOWEQUATION CREATE_OUSTRING( "ShowEquation" )
128 #define EXC_CHPROP_SHOWFIRST CREATE_OUSTRING( "ShowFirst" )
129 #define EXC_CHPROP_SHOWHIGHLOW CREATE_OUSTRING( "ShowHighLow" )
130 #define EXC_CHPROP_SHOWNEGATIVEERROR CREATE_OUSTRING( "ShowNegativeError" )
131 #define EXC_CHPROP_SHOWPOSITIVEERROR CREATE_OUSTRING( "ShowPositiveError" )
132 #define EXC_CHPROP_STACKCHARACTERS CREATE_OUSTRING( "StackCharacters" )
133 #define EXC_CHPROP_STACKINGDIR CREATE_OUSTRING( "StackingDirection" )
134 #define EXC_CHPROP_STARTINGANGLE CREATE_OUSTRING( "StartingAngle" )
135 #define EXC_CHPROP_SWAPXANDYAXIS CREATE_OUSTRING( "SwapXAndYAxis" )
136 #define EXC_CHPROP_SYMBOL CREATE_OUSTRING( "Symbol" )
137 #define EXC_CHPROP_TEXTBREAK CREATE_OUSTRING( "TextBreak" )
138 #define EXC_CHPROP_TEXTOVERLAP CREATE_OUSTRING( "TextOverlap" )
139 #define EXC_CHPROP_TEXTROTATION CREATE_OUSTRING( "TextRotation" )
140 #define EXC_CHPROP_USERINGS CREATE_OUSTRING( "UseRings" )
141 #define EXC_CHPROP_VARYCOLORSBY CREATE_OUSTRING( "VaryColorsByPoint" )
142 #define EXC_CHPROP_WEIGHT CREATE_OUSTRING( "Weight" )
143 #define EXC_CHPROP_WHITEDAY CREATE_OUSTRING( "WhiteDay" )
145 // data series roles
146 #define EXC_CHPROP_ROLE_CATEG CREATE_OUSTRING( "categories" )
147 #define EXC_CHPROP_ROLE_ERRORBARS_NEGX CREATE_OUSTRING( "error-bars-x-negative" )
148 #define EXC_CHPROP_ROLE_ERRORBARS_NEGY CREATE_OUSTRING( "error-bars-y-negative" )
149 #define EXC_CHPROP_ROLE_ERRORBARS_POSX CREATE_OUSTRING( "error-bars-x-positive" )
150 #define EXC_CHPROP_ROLE_ERRORBARS_POSY CREATE_OUSTRING( "error-bars-y-positive" )
151 #define EXC_CHPROP_ROLE_LABEL CREATE_OUSTRING( "label" )
152 #define EXC_CHPROP_ROLE_SIZES CREATE_OUSTRING( "sizes" )
153 #define EXC_CHPROP_ROLE_XVALUES CREATE_OUSTRING( "values-x" )
154 #define EXC_CHPROP_ROLE_YVALUES CREATE_OUSTRING( "values-y" )
155 #define EXC_CHPROP_ROLE_OPENVALUES CREATE_OUSTRING( "values-first" )
156 #define EXC_CHPROP_ROLE_CLOSEVALUES CREATE_OUSTRING( "values-last" )
157 #define EXC_CHPROP_ROLE_LOWVALUES CREATE_OUSTRING( "values-min" )
158 #define EXC_CHPROP_ROLE_HIGHVALUES CREATE_OUSTRING( "values-max" )
159 #define EXC_CHPROP_ROLE_SIZEVALUES CREATE_OUSTRING( "values-size" )
161 // Constants and Enumerations =================================================
163 const sal_Size EXC_CHART_PROGRESS_SIZE = 10;
164 const sal_uInt16 EXC_CHART_AUTOROTATION = 0xFFFF; /// Automatic rotation, e.g. axis labels (internal use only).
166 const sal_Int32 EXC_CHART_AXIS_NONE = -1; /// For internal use only.
167 const sal_Int32 EXC_CHART_AXIS_X = 0; /// API X axis index.
168 const sal_Int32 EXC_CHART_AXIS_Y = 1; /// API Y axis index.
169 const sal_Int32 EXC_CHART_AXIS_Z = 2; /// API Z axis index.
170 const sal_Int32 EXC_CHART_AXESSET_NONE = -1; /// For internal use only.
171 const sal_Int32 EXC_CHART_AXESSET_PRIMARY = 0; /// API primary axes set index.
172 const sal_Int32 EXC_CHART_AXESSET_SECONDARY = 1; /// API secondary axes set index.
174 // (0x0850) CHFRINFO ----------------------------------------------------------
176 const sal_uInt16 EXC_ID_CHFRINFO = 0x0850;
178 const sal_uInt8 EXC_CHFRINFO_EXCEL2000 = 9;
179 const sal_uInt8 EXC_CHFRINFO_EXCELXP2003 = 10;
180 const sal_uInt8 EXC_CHFRINFO_EXCEL2007 = 11;
182 // (0x0852, 0x0853) CHFRBLOCKBEGIN, CHFRBLOCKEND ------------------------------
184 const sal_uInt16 EXC_ID_CHFRBLOCKBEGIN = 0x0852;
185 const sal_uInt16 EXC_ID_CHFRBLOCKEND = 0x0853;
187 const sal_uInt16 EXC_CHFRBLOCK_TYPE_AXESSET = 0;
188 const sal_uInt16 EXC_CHFRBLOCK_TYPE_TEXT = 2;
189 const sal_uInt16 EXC_CHFRBLOCK_TYPE_AXIS = 4;
190 const sal_uInt16 EXC_CHFRBLOCK_TYPE_TYPEGROUP = 5;
191 const sal_uInt16 EXC_CHFRBLOCK_TYPE_DATATABLE = 6;
192 const sal_uInt16 EXC_CHFRBLOCK_TYPE_FRAME = 7;
193 const sal_uInt16 EXC_CHFRBLOCK_TYPE_LEGEND = 9;
194 const sal_uInt16 EXC_CHFRBLOCK_TYPE_LEGENDEX = 10;
195 const sal_uInt16 EXC_CHFRBLOCK_TYPE_SERIES = 12;
196 const sal_uInt16 EXC_CHFRBLOCK_TYPE_CHART = 13;
197 const sal_uInt16 EXC_CHFRBLOCK_TYPE_DATAFORMAT = 14;
198 const sal_uInt16 EXC_CHFRBLOCK_TYPE_DROPBAR = 15;
199 const sal_uInt16 EXC_CHFRBLOCK_TYPE_UNKNOWN = 0xFFFF; /// For internal use only.
201 const sal_uInt16 EXC_CHFRBLOCK_TEXT_TITLE = 0;
202 const sal_uInt16 EXC_CHFRBLOCK_TEXT_DEFTEXT = 2;
203 const sal_uInt16 EXC_CHFRBLOCK_TEXT_AXISTITLE = 4;
204 const sal_uInt16 EXC_CHFRBLOCK_TEXT_DATALABEL = 5;
206 const sal_uInt16 EXC_CHFRBLOCK_FRAME_STANDARD = 0;
207 const sal_uInt16 EXC_CHFRBLOCK_FRAME_PLOTFRAME = 1;
208 const sal_uInt16 EXC_CHFRBLOCK_FRAME_BACKGROUND = 2;
210 // (0x086B) CHFRLABELPROPS ----------------------------------------------------
212 const sal_uInt16 EXC_ID_CHFRLABELPROPS = 0x086B;
214 const sal_uInt16 EXC_CHFRLABELPROPS_SHOWSERIES = 0x0001;
215 const sal_uInt16 EXC_CHFRLABELPROPS_SHOWCATEG = 0x0002;
216 const sal_uInt16 EXC_CHFRLABELPROPS_SHOWVALUE = 0x0004;
217 const sal_uInt16 EXC_CHFRLABELPROPS_SHOWPERCENT = 0x0008;
218 const sal_uInt16 EXC_CHFRLABELPROPS_SHOWBUBBLE = 0x0010;
220 // (0x1001) CHUNITS -----------------------------------------------------------
222 const sal_uInt16 EXC_ID_CHUNITS = 0x1001;
224 const sal_uInt16 EXC_CHUNITS_TWIPS = 0;
225 const sal_uInt16 EXC_CHUNITS_PIXELS = 1;
227 // (0x1002) CHCHART -----------------------------------------------------------
229 const sal_uInt16 EXC_ID_CHCHART = 0x1002;
231 // (0x1003) CHSERIES ----------------------------------------------------------
233 const sal_uInt16 EXC_ID_CHSERIES = 0x1003;
235 const sal_uInt16 EXC_CHSERIES_DATE = 0;
236 const sal_uInt16 EXC_CHSERIES_NUMERIC = 1;
237 const sal_uInt16 EXC_CHSERIES_SEQUENCE = 2;
238 const sal_uInt16 EXC_CHSERIES_TEXT = 3;
240 const sal_uInt16 EXC_CHSERIES_MAXSERIES = 255; /// Maximum valid series index.
241 const sal_uInt16 EXC_CHSERIES_INVALID = 0xFFFF; /// Invalid series index (for internal use).
243 // (0x1006) CHDATAFORMAT ------------------------------------------------------
245 const sal_uInt16 EXC_ID_CHDATAFORMAT = 0x1006;
247 const sal_uInt16 EXC_CHDATAFORMAT_MAXPOINTCOUNT = 32000; /// Maximum number of data points.
248 const sal_uInt16 EXC_CHDATAFORMAT_DEFAULT = 0xFFFD; /// As format index: global default for an axes set.
249 const sal_uInt16 EXC_CHDATAFORMAT_UNKNOWN = 0xFFFE; /// As point index: unknown format, don't use.
250 const sal_uInt16 EXC_CHDATAFORMAT_ALLPOINTS = 0xFFFF; /// As point index: default for a series.
252 const sal_uInt16 EXC_CHDATAFORMAT_OLDCOLORS = 0x0001;
254 // (0x1007) CHLINEFORMAT ------------------------------------------------------
256 const sal_uInt16 EXC_ID_CHLINEFORMAT = 0x1007;
258 const sal_uInt16 EXC_CHLINEFORMAT_SOLID = 0;
259 const sal_uInt16 EXC_CHLINEFORMAT_DASH = 1;
260 const sal_uInt16 EXC_CHLINEFORMAT_DOT = 2;
261 const sal_uInt16 EXC_CHLINEFORMAT_DASHDOT = 3;
262 const sal_uInt16 EXC_CHLINEFORMAT_DASHDOTDOT = 4;
263 const sal_uInt16 EXC_CHLINEFORMAT_NONE = 5;
264 const sal_uInt16 EXC_CHLINEFORMAT_DARKTRANS = 6;
265 const sal_uInt16 EXC_CHLINEFORMAT_MEDTRANS = 7;
266 const sal_uInt16 EXC_CHLINEFORMAT_LIGHTTRANS = 8;
268 const sal_Int16 EXC_CHLINEFORMAT_HAIR = -1;
269 const sal_Int16 EXC_CHLINEFORMAT_SINGLE = 0;
270 const sal_Int16 EXC_CHLINEFORMAT_DOUBLE = 1;
271 const sal_Int16 EXC_CHLINEFORMAT_TRIPLE = 2;
273 const sal_uInt16 EXC_CHLINEFORMAT_AUTO = 0x0001;
274 const sal_uInt16 EXC_CHLINEFORMAT_SHOWAXIS = 0x0004;
276 // (0x1009) CHMARKERFORMAT ----------------------------------------------------
278 const sal_uInt16 EXC_ID_CHMARKERFORMAT = 0x1009;
280 const sal_uInt16 EXC_CHMARKERFORMAT_NOSYMBOL = 0;
281 const sal_uInt16 EXC_CHMARKERFORMAT_SQUARE = 1;
282 const sal_uInt16 EXC_CHMARKERFORMAT_DIAMOND = 2;
283 const sal_uInt16 EXC_CHMARKERFORMAT_TRIANGLE = 3;
284 const sal_uInt16 EXC_CHMARKERFORMAT_CROSS = 4;
285 const sal_uInt16 EXC_CHMARKERFORMAT_STAR = 5;
286 const sal_uInt16 EXC_CHMARKERFORMAT_DOWJ = 6;
287 const sal_uInt16 EXC_CHMARKERFORMAT_STDDEV = 7;
288 const sal_uInt16 EXC_CHMARKERFORMAT_CIRCLE = 8;
289 const sal_uInt16 EXC_CHMARKERFORMAT_PLUS = 9;
291 const sal_uInt32 EXC_CHMARKERFORMAT_HAIRSIZE = 60; /// Automatic symbol size for hair lines.
292 const sal_uInt32 EXC_CHMARKERFORMAT_SINGLESIZE = 100; /// Automatic symbol size for single lines.
293 const sal_uInt32 EXC_CHMARKERFORMAT_DOUBLESIZE = 140; /// Automatic symbol size for double lines.
294 const sal_uInt32 EXC_CHMARKERFORMAT_TRIPLESIZE = 180; /// Automatic symbol size for triple lines.
296 const sal_uInt16 EXC_CHMARKERFORMAT_AUTO = 0x0001;
297 const sal_uInt16 EXC_CHMARKERFORMAT_NOFILL = 0x0010;
298 const sal_uInt16 EXC_CHMARKERFORMAT_NOLINE = 0x0020;
300 // (0x100A) CHAREAFORMAT ------------------------------------------------------
302 const sal_uInt16 EXC_ID_CHAREAFORMAT = 0x100A;
304 const sal_uInt16 EXC_CHAREAFORMAT_AUTO = 0x0001;
305 const sal_uInt16 EXC_CHAREAFORMAT_INVERTNEG = 0x0002;
307 // (0x100B) CHPIEFORMAT -------------------------------------------------------
309 const sal_uInt16 EXC_ID_CHPIEFORMAT = 0x100B;
311 // (0x100C) CHATTACHEDLABEL ---------------------------------------------------
313 const sal_uInt16 EXC_ID_CHATTACHEDLABEL = 0x100C;
315 const sal_uInt16 EXC_CHATTLABEL_SHOWVALUE = 0x0001;
316 const sal_uInt16 EXC_CHATTLABEL_SHOWPERCENT = 0x0002;
317 const sal_uInt16 EXC_CHATTLABEL_SHOWCATEGPERC = 0x0004;
318 const sal_uInt16 EXC_CHATTLABEL_SMOOTHED = 0x0008; /// Smoothed line.
319 const sal_uInt16 EXC_CHATTLABEL_SHOWCATEG = 0x0010;
320 const sal_uInt16 EXC_CHATTLABEL_SHOWBUBBLE = 0x0020;
322 // (0x100D) CHSTRING ----------------------------------------------------------
324 const sal_uInt16 EXC_ID_CHSTRING = 0x100D;
326 // (0x1014) CHTYPEGROUP -------------------------------------------------------
328 const sal_uInt16 EXC_ID_CHTYPEGROUP = 0x1014;
330 const sal_uInt16 EXC_CHTYPEGROUP_VARIEDCOLORS = 0x0001; /// Varied colors for points.
332 // (0x1015) CHLEGEND ----------------------------------------------------------
334 const sal_uInt16 EXC_ID_CHLEGEND = 0x1015;
336 const sal_uInt8 EXC_CHLEGEND_BOTTOM = 0;
337 const sal_uInt8 EXC_CHLEGEND_CORNER = 1;
338 const sal_uInt8 EXC_CHLEGEND_TOP = 2;
339 const sal_uInt8 EXC_CHLEGEND_RIGHT = 3;
340 const sal_uInt8 EXC_CHLEGEND_LEFT = 4;
341 const sal_uInt8 EXC_CHLEGEND_NOTDOCKED = 7;
343 const sal_uInt8 EXC_CHLEGEND_CLOSE = 0;
344 const sal_uInt8 EXC_CHLEGEND_MEDIUM = 1;
345 const sal_uInt8 EXC_CHLEGEND_OPEN = 2;
347 const sal_uInt16 EXC_CHLEGEND_DOCKED = 0x0001;
348 const sal_uInt16 EXC_CHLEGEND_AUTOSERIES = 0x0002;
349 const sal_uInt16 EXC_CHLEGEND_AUTOPOSX = 0x0004;
350 const sal_uInt16 EXC_CHLEGEND_AUTOPOSY = 0x0008;
351 const sal_uInt16 EXC_CHLEGEND_STACKED = 0x0010;
352 const sal_uInt16 EXC_CHLEGEND_DATATABLE = 0x0020;
354 // (0x1017) CHBAR, CHCOLUMN ---------------------------------------------------
356 const sal_uInt16 EXC_ID_CHBAR = 0x1017;
358 const sal_uInt16 EXC_CHBAR_HORIZONTAL = 0x0001;
359 const sal_uInt16 EXC_CHBAR_STACKED = 0x0002;
360 const sal_uInt16 EXC_CHBAR_PERCENT = 0x0004;
361 const sal_uInt16 EXC_CHBAR_SHADOW = 0x0008;
363 // (0x1018, 0x101A) CHLINE, CHAREA --------------------------------------------
365 const sal_uInt16 EXC_ID_CHLINE = 0x1018;
366 const sal_uInt16 EXC_ID_CHAREA = 0x101A;
368 const sal_uInt16 EXC_CHLINE_STACKED = 0x0001;
369 const sal_uInt16 EXC_CHLINE_PERCENT = 0x0002;
370 const sal_uInt16 EXC_CHLINE_SHADOW = 0x0004;
372 // (0x1019) CHPIE -------------------------------------------------------------
374 const sal_uInt16 EXC_ID_CHPIE = 0x1019;
376 const sal_uInt16 EXC_CHPIE_SHADOW = 0x0001;
377 const sal_uInt16 EXC_CHPIE_LINES = 0x0002;
379 // (0x101B) CHSCATTER ---------------------------------------------------------
381 const sal_uInt16 EXC_ID_CHSCATTER = 0x101B;
383 const sal_uInt16 EXC_CHSCATTER_AREA = 1; /// Bubble area refers to value.
384 const sal_uInt16 EXC_CHSCATTER_WIDTH = 2; /// Bubble width refers to value.
386 const sal_uInt16 EXC_CHSCATTER_BUBBLES = 0x0001;
387 const sal_uInt16 EXC_CHSCATTER_SHOWNEG = 0x0002;
388 const sal_uInt16 EXC_CHSCATTER_SHADOW = 0x0004;
390 // (0x001C) CHCHARTLINE -------------------------------------------------------
392 const sal_uInt16 EXC_ID_CHCHARTLINE = 0x101C;
394 const sal_uInt16 EXC_CHCHARTLINE_DROP = 0; /// Drop lines.
395 const sal_uInt16 EXC_CHCHARTLINE_HILO = 1; /// Hi-lo lines.
396 const sal_uInt16 EXC_CHCHARTLINE_CONNECT = 2; /// Connector lines in stacked bar charts.
398 // (0x101D) CHAXIS ------------------------------------------------------------
400 const sal_uInt16 EXC_ID_CHAXIS = 0x101D;
402 const sal_uInt16 EXC_CHAXIS_X = 0;
403 const sal_uInt16 EXC_CHAXIS_Y = 1;
404 const sal_uInt16 EXC_CHAXIS_Z = 2;
405 const sal_uInt16 EXC_CHAXIS_NONE = 0xFFFF; /// For internal use only.
407 // (0x101E) CHTICK ------------------------------------------------------------
409 const sal_uInt16 EXC_ID_CHTICK = 0x101E;
411 const sal_uInt8 EXC_CHTICK_INSIDE = 0x01;
412 const sal_uInt8 EXC_CHTICK_OUTSIDE = 0x02;
414 const sal_uInt8 EXC_CHTICK_NOLABEL = 0;
415 const sal_uInt8 EXC_CHTICK_LOW = 1; /// Below diagram/right of diagram.
416 const sal_uInt8 EXC_CHTICK_HIGH = 2; /// Above diagram/left of diagram.
417 const sal_uInt8 EXC_CHTICK_NEXT = 3; /// Next to axis.
419 const sal_uInt8 EXC_CHTICK_TRANSPARENT = 1;
420 const sal_uInt8 EXC_CHTICK_OPAQUE = 2;
422 const sal_uInt16 EXC_CHTICK_AUTOCOLOR = 0x0001;
423 const sal_uInt16 EXC_CHTICK_AUTOFILL = 0x0002;
424 const sal_uInt16 EXC_CHTICK_AUTOROT = 0x0020;
426 // (0x101F) CHVALUERANGE ------------------------------------------------------
428 const sal_uInt16 EXC_ID_CHVALUERANGE = 0x101F;
430 const sal_uInt16 EXC_CHVALUERANGE_AUTOMIN = 0x0001;
431 const sal_uInt16 EXC_CHVALUERANGE_AUTOMAX = 0x0002;
432 const sal_uInt16 EXC_CHVALUERANGE_AUTOMAJOR = 0x0004;
433 const sal_uInt16 EXC_CHVALUERANGE_AUTOMINOR = 0x0008;
434 const sal_uInt16 EXC_CHVALUERANGE_AUTOCROSS = 0x0010;
435 const sal_uInt16 EXC_CHVALUERANGE_LOGSCALE = 0x0020;
436 const sal_uInt16 EXC_CHVALUERANGE_REVERSE = 0x0040; /// Axis direction reversed.
437 const sal_uInt16 EXC_CHVALUERANGE_MAXCROSS = 0x0080; /// Other axis crosses at own maximum.
438 const sal_uInt16 EXC_CHVALUERANGE_BIT8 = 0x0100; /// This bit is always set in BIFF5+.
440 // (0x1020) CHLABELRANGE -----------------------------------------------------
442 const sal_uInt16 EXC_ID_CHLABELRANGE = 0x1020;
444 const sal_uInt16 EXC_CHLABELRANGE_BETWEEN = 0x0001; /// Axis between categories.
445 const sal_uInt16 EXC_CHLABELRANGE_MAXCROSS = 0x0002; /// Other axis crosses at own maximum.
446 const sal_uInt16 EXC_CHLABELRANGE_REVERSE = 0x0004; /// Axis direction reversed.
448 // (0x1021) CHAXISLINE --------------------------------------------------------
450 const sal_uInt16 EXC_ID_CHAXISLINE = 0x1021;
452 const sal_uInt16 EXC_CHAXISLINE_AXISLINE = 0; /// Axis line itself.
453 const sal_uInt16 EXC_CHAXISLINE_MAJORGRID = 1; /// Major grid line.
454 const sal_uInt16 EXC_CHAXISLINE_MINORGRID = 2; /// Minor grid line.
455 const sal_uInt16 EXC_CHAXISLINE_WALLS = 3; /// Walls (X, Z axis), floor (Y axis).
457 // (0x1024) CHDEFAULTTEXT -----------------------------------------------------
459 const sal_uInt16 EXC_ID_CHDEFAULTTEXT = 0x1024;
461 const sal_uInt16 EXC_CHDEFTEXT_TEXTLABEL = 0; /// Default for text data labels (not used?).
462 const sal_uInt16 EXC_CHDEFTEXT_NUMLABEL = 1; /// Default for numeric data labels (not used?).
463 const sal_uInt16 EXC_CHDEFTEXT_GLOBAL = 2; /// Default text for all chart objects.
464 const sal_uInt16 EXC_CHDEFTEXT_AXESSET = 3; /// Default text for axes and data points (BIFF8 only).
465 const sal_uInt16 EXC_CHDEFTEXT_NONE = 0xFFFF; /// No default text available.
467 // (0x1025) CHTEXT ------------------------------------------------------------
469 const sal_uInt16 EXC_ID_CHTEXT = 0x1025;
471 const sal_uInt8 EXC_CHTEXT_ALIGN_TOPLEFT = 1; /// Horizontal: left, vertical: top.
472 const sal_uInt8 EXC_CHTEXT_ALIGN_CENTER = 2;
473 const sal_uInt8 EXC_CHTEXT_ALIGN_BOTTOMRIGHT = 3; /// Horizontal: right, vertical: bottom.
474 const sal_uInt8 EXC_CHTEXT_ALIGN_JUSTIFY = 4;
475 const sal_uInt8 EXC_CHTEXT_ALIGN_DISTRIBUTE = 5;
477 const sal_uInt16 EXC_CHTEXT_TRANSPARENT = 1;
478 const sal_uInt16 EXC_CHTEXT_OPAQUE = 2;
480 const sal_uInt16 EXC_CHTEXT_AUTOCOLOR = 0x0001; /// Automatic text color.
481 const sal_uInt16 EXC_CHTEXT_SHOWSYMBOL = 0x0002; /// Legend symbol for data point caption.
482 const sal_uInt16 EXC_CHTEXT_SHOWVALUE = 0x0004; /// Data point caption is the value.
483 const sal_uInt16 EXC_CHTEXT_VERTICAL = 0x0008;
484 const sal_uInt16 EXC_CHTEXT_AUTOTEXT = 0x0010; /// Label text generated from chart data.
485 const sal_uInt16 EXC_CHTEXT_AUTOGEN = 0x0020; /// Text object is inserted automatically.
486 const sal_uInt16 EXC_CHTEXT_DELETED = 0x0040; /// Text object is removed.
487 const sal_uInt16 EXC_CHTEXT_AUTOFILL = 0x0080; /// Automatic text background mode (transparent/opaque).
488 const sal_uInt16 EXC_CHTEXT_SHOWCATEGPERC = 0x0800; /// Data point caption is category and percent.
489 const sal_uInt16 EXC_CHTEXT_SHOWPERCENT = 0x1000; /// Data point caption as percent.
490 const sal_uInt16 EXC_CHTEXT_SHOWBUBBLE = 0x2000; /// Show bubble size.
491 const sal_uInt16 EXC_CHTEXT_SHOWCATEG = 0x4000; /// Data point caption is category name.
493 const sal_uInt16 EXC_CHTEXT_POS_DEFAULT = 0;
494 const sal_uInt16 EXC_CHTEXT_POS_OUTSIDE = 1;
495 const sal_uInt16 EXC_CHTEXT_POS_INSIDE = 2;
496 const sal_uInt16 EXC_CHTEXT_POS_CENTER = 3;
497 const sal_uInt16 EXC_CHTEXT_POS_AXIS = 4;
498 const sal_uInt16 EXC_CHTEXT_POS_ABOVE = 5;
499 const sal_uInt16 EXC_CHTEXT_POS_BELOW = 6;
500 const sal_uInt16 EXC_CHTEXT_POS_LEFT = 7;
501 const sal_uInt16 EXC_CHTEXT_POS_RIGHT = 8;
502 const sal_uInt16 EXC_CHTEXT_POS_AUTO = 9;
503 const sal_uInt16 EXC_CHTEXT_POS_MOVED = 10;
505 // (0x1026) CHFONT ------------------------------------------------------------
507 const sal_uInt16 EXC_ID_CHFONT = 0x1026;
509 // (0x1027) CHOBJECTLINK ------------------------------------------------------
511 const sal_uInt16 EXC_ID_CHOBJECTLINK = 0x1027;
513 // link targets
514 const sal_uInt16 EXC_CHOBJLINK_NONE = 0; /// No link target.
515 const sal_uInt16 EXC_CHOBJLINK_TITLE = 1; /// Chart title.
516 const sal_uInt16 EXC_CHOBJLINK_YAXIS = 2; /// Value axis (Y axis).
517 const sal_uInt16 EXC_CHOBJLINK_XAXIS = 3; /// Category axis (X axis).
518 const sal_uInt16 EXC_CHOBJLINK_DATA = 4; /// Data series/point.
519 const sal_uInt16 EXC_CHOBJLINK_ZAXIS = 7; /// Series axis (Z axis).
520 const sal_uInt16 EXC_CHOBJLINK_AXISUNIT = 12; /// Unit name for axis labels.
522 // (0x1032) CHFRAME -----------------------------------------------------------
524 const sal_uInt16 EXC_ID_CHFRAME = 0x1032;
526 const sal_uInt16 EXC_CHFRAME_STANDARD = 0;
527 const sal_uInt16 EXC_CHFRAME_SHADOW = 4;
529 const sal_uInt16 EXC_CHFRAME_AUTOSIZE = 0x0001;
530 const sal_uInt16 EXC_CHFRAME_AUTOPOS = 0x0002;
532 // (0x1033, 0x1034) CHBEGIN, CHEND --------------------------------------------
534 const sal_uInt16 EXC_ID_CHBEGIN = 0x1033;
535 const sal_uInt16 EXC_ID_CHEND = 0x1034;
537 // (0x1035) CHPLOTFRAME -------------------------------------------------------
539 const sal_uInt16 EXC_ID_CHPLOTFRAME = 0x1035;
541 // (0x103A) CHCHART3D ---------------------------------------------------------
543 const sal_uInt16 EXC_ID_CHCHART3D = 0x103A;
545 const sal_uInt16 EXC_CHCHART3D_REAL3D = 0x0001; /// true = real 3d perspective.
546 const sal_uInt16 EXC_CHCHART3D_CLUSTER = 0x0002; /// false = Z axis, true = clustered/stacked.
547 const sal_uInt16 EXC_CHCHART3D_AUTOHEIGHT = 0x0004; /// true = automatic height to width ratio.
548 const sal_uInt16 EXC_CHCHART3D_HASWALLS = 0x0010; /// true = 3d chart has walls/floor.
549 const sal_uInt16 EXC_CHCHART3D_2DWALLS = 0x0020; /// true = 2d wall/gridlines, no floor.
551 // (0x103C) CHPICFORMAT -------------------------------------------------------
553 const sal_uInt16 EXC_ID_CHPICFORMAT = 0x103C;
555 const sal_uInt16 EXC_CHPICFORMAT_NONE = 0; /// For internal use only.
556 const sal_uInt16 EXC_CHPICFORMAT_STRETCH = 1; /// Bitmap stretched to area.
557 const sal_uInt16 EXC_CHPICFORMAT_STACK = 2; /// Bitmap stacked.
558 const sal_uInt16 EXC_CHPICFORMAT_SCALE = 3; /// Bitmap scaled to axis scale.
560 const sal_uInt16 EXC_CHPICFORMAT_WMF = 2;
561 const sal_uInt16 EXC_CHPICFORMAT_BMP = 9;
562 const sal_uInt16 EXC_CHPICFORMAT_DEFAULT = 19;
564 const sal_uInt16 EXC_CHPICFORMAT_WINDOWS = 0x0001;
565 const sal_uInt16 EXC_CHPICFORMAT_MACOS = 0x0002;
566 const sal_uInt16 EXC_CHPICFORMAT_FORMATONLY = 0x0100;
567 const sal_uInt16 EXC_CHPICFORMAT_DEFAULTFLAGS = 0x0E00; /// Default flags for export.
569 // (0x103D) CHDROPBAR ---------------------------------------------------------
571 const sal_uInt16 EXC_ID_CHDROPBAR = 0x103D;
573 const sal_uInt16 EXC_CHDROPBAR_UP = 0;
574 const sal_uInt16 EXC_CHDROPBAR_DOWN = 1;
575 const sal_uInt16 EXC_CHDROPBAR_NONE = 0xFFFF;
577 // (0x103E, 0x1040) CHRADARLINE, CHRADARAREA ----------------------------------
579 const sal_uInt16 EXC_ID_CHRADARLINE = 0x103E;
580 const sal_uInt16 EXC_ID_CHRADARAREA = 0x1040;
582 const sal_uInt16 EXC_CHRADAR_AXISLABELS = 0x0001;
583 const sal_uInt16 EXC_CHRADAR_SHADOW = 0x0002;
585 // (0x103F) CHSURFACE ---------------------------------------------------------
587 const sal_uInt16 EXC_ID_CHSURFACE = 0x103F;
589 const sal_uInt16 EXC_CHSURFACE_FILLED = 0x0001;
590 const sal_uInt16 EXC_CHSURFACE_SHADING = 0x0002;
592 // (0x1041) CHAXESSET ---------------------------------------------------------
594 const sal_uInt16 EXC_ID_CHAXESSET = 0x1041;
596 const sal_uInt16 EXC_CHAXESSET_PRIMARY = 0;
597 const sal_uInt16 EXC_CHAXESSET_SECONDARY = 1;
598 const sal_uInt16 EXC_CHAXESSET_NONE = 0xFFFF; /// For internal use.
600 // (0x1044) CHPROPERTIES ------------------------------------------------------
602 const sal_uInt16 EXC_ID_CHPROPERTIES = 0x1044;
604 const sal_uInt16 EXC_CHPROPS_MANSERIES = 0x0001; /// Manual series allocation.
605 const sal_uInt16 EXC_CHPROPS_SHOWVISIBLEONLY = 0x0002; /// Show visible cells only.
606 const sal_uInt16 EXC_CHPROPS_NORESIZE = 0x0004; /// Do not resize chart with window.
607 const sal_uInt16 EXC_CHPROPS_MANPLOTAREA = 0x0008; /// Plot area with CHFRAMEPOS records.
609 const sal_uInt8 EXC_CHPROPS_EMPTY_SKIP = 0; /// Skip empty values.
610 const sal_uInt8 EXC_CHPROPS_EMPTY_ZERO = 1; /// Plot empty values as zero.
611 const sal_uInt8 EXC_CHPROPS_EMPTY_INTERPOLATE = 2; /// Interpolate empty values.
613 // (0x1045) CHSERGROUP --------------------------------------------------------
615 const sal_uInt16 EXC_ID_CHSERGROUP = 0x1045;
617 const sal_uInt16 EXC_CHSERGROUP_NONE = 0xFFFF; /// For internal use: no chart type group.
619 // (0x1048, 0x0858) CHPIVOTREF ------------------------------------------------
621 const sal_uInt16 EXC_ID5_CHPIVOTREF = 0x1048;
622 const sal_uInt16 EXC_ID8_CHPIVOTREF = 0x0858;
624 // (0x104A) CHSERPARENT -------------------------------------------------------
626 const sal_uInt16 EXC_ID_CHSERPARENT = 0x104A;
628 // (0x104B) CHSERTRENDLINE ----------------------------------------------------
630 const sal_uInt16 EXC_ID_CHSERTRENDLINE = 0x104B;
632 const sal_uInt8 EXC_CHSERTREND_POLYNOMIAL = 0; /// If order is 1, trend line is linear.
633 const sal_uInt8 EXC_CHSERTREND_EXPONENTIAL = 1;
634 const sal_uInt8 EXC_CHSERTREND_LOGARITHMIC = 2;
635 const sal_uInt8 EXC_CHSERTREND_POWER = 3;
636 const sal_uInt8 EXC_CHSERTREND_MOVING_AVG = 4;
638 // (0x104E) CHFORMAT ----------------------------------------------------------
640 const sal_uInt16 EXC_ID_CHFORMAT = 0x104E;
642 // (0x104F) CHFRAMEPOS --------------------------------------------------------
644 const sal_uInt16 EXC_ID_CHFRAMEPOS = 0x104F;
646 const sal_uInt16 EXC_CHFRAMEPOS_ANY = 2;
647 const sal_uInt16 EXC_CHFRAMEPOS_LEGEND = 5;
649 const sal_uInt16 EXC_CHFRAMEPOS_MANUALSIZE = 1;
650 const sal_uInt16 EXC_CHFRAMEPOS_AUTOSIZE = 2;
652 // (0x1050) CHFORMATRUNS ------------------------------------------------------
654 const sal_uInt16 EXC_ID_CHFORMATRUNS = 0x1050;
656 // (0x1051) CHSOURCELINK ------------------------------------------------------
658 const sal_uInt16 EXC_ID_CHSOURCELINK = 0x1051;
660 const sal_uInt8 EXC_CHSRCLINK_TITLE = 0;
661 const sal_uInt8 EXC_CHSRCLINK_VALUES = 1;
662 const sal_uInt8 EXC_CHSRCLINK_CATEGORY = 2;
663 const sal_uInt8 EXC_CHSRCLINK_BUBBLES = 3;
665 const sal_uInt8 EXC_CHSRCLINK_DEFAULT = 0;
666 const sal_uInt8 EXC_CHSRCLINK_DIRECTLY = 1;
667 const sal_uInt8 EXC_CHSRCLINK_WORKSHEET = 2;
669 const sal_uInt16 EXC_CHSRCLINK_NUMFMT = 0x0001;
671 // (0x105B) CHSERERRORBAR -----------------------------------------------------
673 const sal_uInt16 EXC_ID_CHSERERRORBAR = 0x105B;
675 const sal_uInt8 EXC_CHSERERR_NONE = 0; /// For internal use only.
676 const sal_uInt8 EXC_CHSERERR_XPLUS = 1;
677 const sal_uInt8 EXC_CHSERERR_XMINUS = 2;
678 const sal_uInt8 EXC_CHSERERR_YPLUS = 3;
679 const sal_uInt8 EXC_CHSERERR_YMINUS = 4;
681 const sal_uInt8 EXC_CHSERERR_PERCENT = 1;
682 const sal_uInt8 EXC_CHSERERR_FIXED = 2;
683 const sal_uInt8 EXC_CHSERERR_STDDEV = 3;
684 const sal_uInt8 EXC_CHSERERR_CUSTOM = 4;
685 const sal_uInt8 EXC_CHSERERR_STDERR = 5;
687 const sal_uInt8 EXC_CHSERERR_END_BLANK = 0; /// Line end: blank.
688 const sal_uInt8 EXC_CHSERERR_END_TSHAPE = 1; /// Line end: t-shape.
690 // (0x105D) CHSERIESFORMAT ----------------------------------------------------
692 const sal_uInt16 EXC_ID_CHSERIESFORMAT = 0x105D;
694 const sal_uInt16 EXC_CHSERIESFORMAT_SMOOTHED = 0x0001;
695 const sal_uInt16 EXC_CHSERIESFORMAT_BUBBLE3D = 0x0002;
696 const sal_uInt16 EXC_CHSERIESFORMAT_SHADOW = 0x0004;
698 // (0x105F) CH3DDATAFORMAT ----------------------------------------------------
700 const sal_uInt16 EXC_ID_CH3DDATAFORMAT = 0x105F;
702 const sal_uInt8 EXC_CH3DDATAFORMAT_RECT = 0; /// Rectangular base.
703 const sal_uInt8 EXC_CH3DDATAFORMAT_CIRC = 1; /// Circular base.
705 const sal_uInt8 EXC_CH3DDATAFORMAT_STRAIGHT = 0; /// Straight to top.
706 const sal_uInt8 EXC_CH3DDATAFORMAT_SHARP = 1; /// Sharp top.
707 const sal_uInt8 EXC_CH3DDATAFORMAT_TRUNC = 2; /// Shart top, truncated.
709 // (0x1061) CHPIEEXT ----------------------------------------------------------
711 const sal_uInt16 EXC_ID_CHPIEEXT = 0x1061;
713 // (0x1066) CHESCHERFORMAT ----------------------------------------------------
715 const sal_uInt16 EXC_ID_CHESCHERFORMAT = 0x1066;
717 // Other record IDs -----------------------------------------------------------
719 const sal_uInt16 EXC_ID_CHWRAPPEDRECORD = 0x0851;
720 const sal_uInt16 EXC_ID_CHUNITPROPERTIES = 0x0857;
721 const sal_uInt16 EXC_ID_CHUSEDAXESSETS = 0x1046;
722 const sal_uInt16 EXC_ID_CHLABELRANGE2 = 0x1062;
723 const sal_uInt16 EXC_ID_CHPLOTGROWTH = 0x1064;
724 const sal_uInt16 EXC_ID_CHSERINDEX = 0x1065;
725 const sal_uInt16 EXC_ID_CHUNKNOWN = 0xFFFF;
727 // ============================================================================
728 // Structs and classes
729 // ============================================================================
731 // Common =====================================================================
733 struct XclChRectangle
735 sal_Int32 mnX; /// X position of the object in 1/4000 of chart width.
736 sal_Int32 mnY; /// Y position of the object in 1/4000 of chart height.
737 sal_Int32 mnWidth; /// Width of the object in 1/4000 of chart width.
738 sal_Int32 mnHeight; /// Height of the object in 1/4000 of chart height.
740 explicit XclChRectangle();
743 // ----------------------------------------------------------------------------
745 /** Specifies the position of a data series or data point. */
746 struct XclChDataPointPos
748 sal_uInt16 mnSeriesIdx; /// Series index of series or a data point.
749 sal_uInt16 mnPointIdx; /// Index of a data point inside a series.
751 explicit XclChDataPointPos(
752 sal_uInt16 nSeriesIdx = EXC_CHSERIES_INVALID,
753 sal_uInt16 nPointIdx = EXC_CHDATAFORMAT_ALLPOINTS );
756 bool operator<( const XclChDataPointPos& rL, const XclChDataPointPos& rR );
758 // ----------------------------------------------------------------------------
760 /** Contains the type and context of a block of future records which are
761 guarded by CHFRBLOCKBEGIN and CHFRBLOCKEND records. */
762 struct XclChFrBlock
764 sal_uInt16 mnType; /// Type of the future record block.
765 sal_uInt16 mnContext; /// Context dependent on type.
766 sal_uInt16 mnValue1; /// Optional primary value for current context.
767 sal_uInt16 mnValue2; /// Optional secondary value for current context.
769 explicit XclChFrBlock( sal_uInt16 nType );
772 // Frame formatting ===========================================================
774 struct XclChFramePos
776 XclChRectangle maRect; /// Object dependent position data.
777 sal_uInt16 mnObjType; /// Object type.
778 sal_uInt16 mnSizeMode; /// Size mode (manual, automatic).
780 explicit XclChFramePos();
783 // ----------------------------------------------------------------------------
785 struct XclChLineFormat
787 Color maColor; /// Line color.
788 sal_uInt16 mnPattern; /// Line pattern (solid, dashed, ...).
789 sal_Int16 mnWeight; /// Line weight (hairline, single, ...).
790 sal_uInt16 mnFlags; /// Additional flags.
792 explicit XclChLineFormat();
795 // ----------------------------------------------------------------------------
797 struct XclChAreaFormat
799 Color maPattColor; /// Pattern color.
800 Color maBackColor; /// Pattern background color.
801 sal_uInt16 mnPattern; /// Fill pattern.
802 sal_uInt16 mnFlags; /// Additional flags.
804 explicit XclChAreaFormat();
807 // ----------------------------------------------------------------------------
809 class SfxItemSet;
810 class EscherPropertyContainer;
812 struct XclChEscherFormat
814 typedef ScfRef< SfxItemSet > SfxItemSetRef;
815 typedef ScfRef< EscherPropertyContainer > EscherPropSetRef;
817 SfxItemSetRef mxItemSet; /// Item set for Escher properties import.
818 EscherPropSetRef mxEscherSet; /// Container for Escher properties export.
820 explicit XclChEscherFormat();
821 ~XclChEscherFormat();
824 // ----------------------------------------------------------------------------
826 struct XclChPicFormat
828 sal_uInt16 mnBmpMode; /// Bitmap mode, e.g. stretched, stacked.
829 sal_uInt16 mnFormat; /// Image data format (WMF, BMP).
830 sal_uInt16 mnFlags; /// Additional flags.
831 double mfScale; /// Picture scaling (units).
833 explicit XclChPicFormat();
836 // ----------------------------------------------------------------------------
838 struct XclChFrame
840 sal_uInt16 mnFormat; /// Format type of the frame.
841 sal_uInt16 mnFlags; /// Additional flags.
843 explicit XclChFrame();
846 // Source links ===============================================================
848 struct XclChSourceLink
850 sal_uInt8 mnDestType; /// Type of the destination (title, values, ...).
851 sal_uInt8 mnLinkType; /// Link type (directly, linked to worksheet, ...).
852 sal_uInt16 mnFlags; /// Additional flags.
853 sal_uInt16 mnNumFmtIdx; /// Number format index.
855 explicit XclChSourceLink();
858 // Text =======================================================================
860 struct XclChObjectLink
862 XclChDataPointPos maPointPos; /// Position of the data point.
863 sal_uInt16 mnTarget; /// Target of the link.
865 explicit XclChObjectLink();
868 // ----------------------------------------------------------------------------
870 struct XclChFrLabelProps
872 String maSeparator; /// Separator between label values.
873 sal_uInt16 mnFlags; /// Flags indicating which values to be displayed.
875 explicit XclChFrLabelProps();
878 // ----------------------------------------------------------------------------
880 struct XclChText
882 XclChRectangle maRect; /// Position of the text object.
883 Color maTextColor; /// Text color.
884 sal_uInt8 mnHAlign; /// Horizontal alignment.
885 sal_uInt8 mnVAlign; /// Vertical alignment.
886 sal_uInt16 mnBackMode; /// Background mode: transparent, opaque.
887 sal_uInt16 mnFlags; /// Additional flags.
888 sal_uInt16 mnPlacement; /// Text object placement (BIFF8+).
889 sal_uInt16 mnRotation; /// Text object rotation (BIFF8+).
891 explicit XclChText();
894 // Data series ================================================================
896 struct XclChMarkerFormat
898 Color maLineColor; /// Border line color.
899 Color maFillColor; /// Fill color.
900 sal_uInt32 mnMarkerSize; /// Size of a marker
901 sal_uInt16 mnMarkerType; /// Marker type (none, diamond, ...).
902 sal_uInt16 mnFlags; /// Additional flags.
904 explicit XclChMarkerFormat();
907 // ----------------------------------------------------------------------------
909 struct XclCh3dDataFormat
911 sal_uInt8 mnBase; /// Base form.
912 sal_uInt8 mnTop; /// Top egde mode.
914 explicit XclCh3dDataFormat();
917 // ----------------------------------------------------------------------------
919 struct XclChDataFormat
921 XclChDataPointPos maPointPos; /// Position of the data point or series.
922 sal_uInt16 mnFormatIdx; /// Formatting index for automatic colors.
923 sal_uInt16 mnFlags; /// Additional flags.
925 explicit XclChDataFormat();
928 // ----------------------------------------------------------------------------
930 struct XclChSerTrendLine
932 double mfIntercept; /// Forced intercept.
933 double mfForecastFor; /// Counter to forecast forward.
934 double mfForecastBack; /// Counter to forecast backward.
935 sal_uInt8 mnLineType; /// Type of the trend line.
936 sal_uInt8 mnOrder; /// Polynomial order or moving average counter.
937 sal_uInt8 mnShowEquation; /// 1 = Show equation.
938 sal_uInt8 mnShowRSquared; /// 1 = Show R-squared.
940 explicit XclChSerTrendLine();
943 // ----------------------------------------------------------------------------
945 struct XclChSerErrorBar
947 double mfValue; /// Fixed value for several source types.
948 sal_uInt16 mnValueCount; /// Number of custom error values.
949 sal_uInt8 mnBarType; /// Type of the error bar (X/Y).
950 sal_uInt8 mnSourceType; /// Type of source values.
951 sal_uInt8 mnLineEnd; /// Type of the line ends.
953 explicit XclChSerErrorBar();
956 // ----------------------------------------------------------------------------
958 struct XclChSeries
960 sal_uInt16 mnCategType; /// Data type for category entries.
961 sal_uInt16 mnValueType; /// Data type for value entries.
962 sal_uInt16 mnBubbleType; /// Data type for bubble entries.
963 sal_uInt16 mnCategCount; /// Number of category entries.
964 sal_uInt16 mnValueCount; /// Number of value entries.
965 sal_uInt16 mnBubbleCount; /// Number of bubble entries.
967 explicit XclChSeries();
970 // Chart type groups ==========================================================
972 struct XclChType
974 sal_Int16 mnOverlap; /// Bar overlap width (CHBAR).
975 sal_Int16 mnGap; /// Gap between bars (CHBAR).
976 sal_uInt16 mnRotation; /// Rotation angle of first pie (CHPIE).
977 sal_uInt16 mnPieHole; /// Hole size in donut chart (CHPIE).
978 sal_uInt16 mnBubbleSize; /// Bubble size in bubble chart (CHSCATTER).
979 sal_uInt16 mnBubbleType; /// Bubble type in bubble chart (CHSCATTER).
980 sal_uInt16 mnFlags; /// Additional flags (all chart types).
982 explicit XclChType();
985 // ----------------------------------------------------------------------------
987 struct XclChChart3d
989 sal_uInt16 mnRotation; /// Rotation (0...359deg).
990 sal_Int16 mnElevation; /// Elevation (-90...+90deg).
991 sal_uInt16 mnEyeDist; /// Eye distance to chart (0...100).
992 sal_uInt16 mnRelHeight; /// Height relative to width.
993 sal_uInt16 mnRelDepth; /// Depth relative to width.
994 sal_uInt16 mnDepthGap; /// Space between series.
995 sal_uInt16 mnFlags; /// Additional flags.
997 explicit XclChChart3d();
1000 // ----------------------------------------------------------------------------
1002 struct XclChLegend
1004 XclChRectangle maRect; /// Position of the legend.
1005 sal_uInt8 mnDockMode; /// Docking mode.
1006 sal_uInt8 mnSpacing; /// Spacing between elements.
1007 sal_uInt16 mnFlags; /// Additional flags.
1009 explicit XclChLegend();
1012 // ----------------------------------------------------------------------------
1014 struct XclChTypeGroup
1016 XclChRectangle maRect; /// Position (not used).
1017 sal_uInt16 mnFlags; /// Additional flags.
1018 sal_uInt16 mnGroupIdx; /// Chart type group index.
1020 explicit XclChTypeGroup();
1023 // ----------------------------------------------------------------------------
1025 struct XclChProperties
1027 sal_uInt16 mnFlags; /// Additional flags.
1028 sal_uInt8 mnEmptyMode; /// Plotting mode for empty cells.
1030 explicit XclChProperties();
1033 // Axes =======================================================================
1035 struct XclChLabelRange
1037 sal_uInt16 mnCross; /// Crossing position of other axis.
1038 sal_uInt16 mnLabelFreq; /// Frequency of labels.
1039 sal_uInt16 mnTickFreq; /// Frequency of ticks.
1040 sal_uInt16 mnFlags; /// Additional flags.
1042 explicit XclChLabelRange();
1045 // ----------------------------------------------------------------------------
1047 struct XclChValueRange
1049 double mfMin; /// Minimum value on axis.
1050 double mfMax; /// Maximum value on axis.
1051 double mfMajorStep; /// Distance for major grid lines.
1052 double mfMinorStep; /// Distance for minor grid lines.
1053 double mfCross; /// Crossing position of other axis.
1054 sal_uInt16 mnFlags; /// Additional flags.
1056 explicit XclChValueRange();
1059 // ----------------------------------------------------------------------------
1061 struct XclChTick
1063 XclChRectangle maRect; /// Position (not used).
1064 Color maTextColor; /// Tick labels color.
1065 sal_uInt8 mnMajor; /// Type of tick marks of major grid.
1066 sal_uInt8 mnMinor; /// Type of tick marks of minor grid.
1067 sal_uInt8 mnLabelPos; /// Position of labels relative to axis.
1068 sal_uInt8 mnBackMode; /// Background mode: transparent, opaque.
1069 sal_uInt16 mnFlags; /// Additional flags.
1070 sal_uInt16 mnRotation; /// Tick labels angle (BIFF8+).
1072 explicit XclChTick();
1075 // ----------------------------------------------------------------------------
1077 struct XclChAxis
1079 XclChRectangle maRect; /// Position (not used).
1080 sal_uInt16 mnType; /// Axis type.
1082 explicit XclChAxis();
1084 /** Returns the axis dimension index used by the chart API. */
1085 sal_Int32 GetApiAxisDimension() const;
1088 // ----------------------------------------------------------------------------
1090 struct XclChAxesSet
1092 XclChRectangle maRect; /// Position of the axes set.
1093 sal_uInt16 mnAxesSetId; /// Primary/secondary axes set.
1095 explicit XclChAxesSet();
1097 /** Returns the axes set index used by the chart API. */
1098 sal_Int32 GetApiAxesSetIndex() const;
1101 // Property mode ==============================================================
1103 /** Specifies the type of a formatting. This results in different property names. */
1104 enum XclChPropertyMode
1106 EXC_CHPROPMODE_COMMON, /// Common objects, no special handling.
1107 EXC_CHPROPMODE_LINEARSERIES, /// Specific to data series drawn as lines.
1108 EXC_CHPROPMODE_FILLEDSERIES /// Specific to data series drawn as areas.
1111 // Static helper functions ====================================================
1113 /** Contains static helper functions for the chart filters. */
1114 class XclChartHelper
1116 public:
1117 /** Returns a palette index for automatic series line colors. */
1118 static sal_uInt16 GetSeriesLineAutoColorIdx( sal_uInt16 nFormatIdx );
1119 /** Returns a palette index for automatic series fill colors. */
1120 static sal_uInt16 GetSeriesFillAutoColorIdx( sal_uInt16 nFormatIdx );
1121 /** Returns a transparency value for automatic series fill colors. */
1122 static sal_uInt8 GetSeriesFillAutoTransp( sal_uInt16 nFormatIdx );
1123 /** Returns an automatic symbol index for the passed format index. */
1124 static sal_uInt16 GetAutoMarkerType( sal_uInt16 nFormatIdx );
1125 /** Returns true, if the passed marker type is filled. */
1126 static bool HasMarkerFillColor( sal_uInt16 nMarkerType );
1127 /** Returns the role name for a manual data source for error bars. */
1128 static ::rtl::OUString GetErrorBarValuesRole( sal_uInt8 nBarType );
1131 // Chart formatting info provider =============================================
1133 /** Enumerates different object types for specific automatic formatting behaviour. */
1134 enum XclChObjectType
1136 EXC_CHOBJTYPE_BACKGROUND, /// Chart background.
1137 EXC_CHOBJTYPE_PLOTFRAME, /// Wall formatting in 2d charts.
1138 EXC_CHOBJTYPE_WALL3D, /// Wall formatting in 3d charts.
1139 EXC_CHOBJTYPE_FLOOR3D, /// Floor formatting in 3d charts.
1140 EXC_CHOBJTYPE_TEXT, /// Text boxes (titles, data point labels).
1141 EXC_CHOBJTYPE_LEGEND, /// Chart legend.
1142 EXC_CHOBJTYPE_LINEARSERIES, /// Series formatting in a chart supporting line formatting only.
1143 EXC_CHOBJTYPE_FILLEDSERIES, /// Series formatting in a chart supporting area formatting.
1144 EXC_CHOBJTYPE_AXISLINE, /// Axis line format.
1145 EXC_CHOBJTYPE_GRIDLINE, /// Axis grid line format.
1146 EXC_CHOBJTYPE_TRENDLINE, /// Series trend line.
1147 EXC_CHOBJTYPE_ERRORBAR, /// Series error bar.
1148 EXC_CHOBJTYPE_CONNECTLINE, /// Data point connector line.
1149 EXC_CHOBJTYPE_HILOLINE, /// High/low lines in stock charts.
1150 EXC_CHOBJTYPE_WHITEDROPBAR, /// White-day drop bar in stock charts.
1151 EXC_CHOBJTYPE_BLACKDROPBAR /// Black-day drop bar in stock charts.
1154 /** Enumerates different types to handle missing frame objects. */
1155 enum XclChFrameType
1157 EXC_CHFRAMETYPE_AUTO, /// Missing frame represents automatic formatting.
1158 EXC_CHFRAMETYPE_INVISIBLE /// Missing frame represents invisible formatting.
1161 /** Enumerates different text box types for default text formatting. */
1162 enum XclChTextType
1164 EXC_CHTEXTTYPE_TITLE, /// Chart title.
1165 EXC_CHTEXTTYPE_LEGEND, /// Chart legend.
1166 EXC_CHTEXTTYPE_AXISTITLE, /// Chart axis titles.
1167 EXC_CHTEXTTYPE_AXISLABEL, /// Chart axis labels.
1168 EXC_CHTEXTTYPE_DATALABEL /// Data point labels.
1171 /** Contains information about auto formatting of a specific chart object type. */
1172 struct XclChFormatInfo
1174 XclChObjectType meObjType; /// Object type for automatic format.
1175 XclChPropertyMode mePropMode; /// Property mode for property set helper.
1176 sal_uInt16 mnAutoLineColorIdx; /// Automatic line color index.
1177 sal_Int16 mnAutoLineWeight; /// Automatic line weight (hairline, single, ...).
1178 sal_uInt16 mnAutoPattColorIdx; /// Automatic fill pattern color index.
1179 XclChFrameType meDefFrameType; /// Default format type for missing frame objects.
1180 bool mbCreateDefFrame; /// true = Create missing frame objects on import.
1181 bool mbDeleteDefFrame; /// true = Delete default frame formatting on export.
1182 bool mbIsFrame; /// true = Object is a frame, false = Object is a line.
1185 // ----------------------------------------------------------------------------
1187 /** Provides access to chart auto formatting for all available object types. */
1188 class XclChFormatInfoProvider
1190 public:
1191 explicit XclChFormatInfoProvider();
1193 /** Returns an info struct about auto formatting for the passed object type. */
1194 const XclChFormatInfo& GetFormatInfo( XclChObjectType eObjType ) const;
1196 private:
1197 typedef ::std::map< XclChObjectType, const XclChFormatInfo* > XclFmtInfoMap;
1198 XclFmtInfoMap maInfoMap; /// Maps object type to formatting data.
1201 // Chart type info provider ===================================================
1203 /** Enumerates all kinds of different chart types. */
1204 enum XclChTypeId
1206 EXC_CHTYPEID_BAR, /// Vertical bar chart.
1207 EXC_CHTYPEID_HORBAR, /// Horizontal bar chart.
1208 EXC_CHTYPEID_LINE, /// Line chart.
1209 EXC_CHTYPEID_AREA, /// Area chart.
1210 EXC_CHTYPEID_STOCK, /// Stock chart.
1211 EXC_CHTYPEID_RADARLINE, /// Linear radar chart.
1212 EXC_CHTYPEID_RADARAREA, /// Filled radar chart.
1213 EXC_CHTYPEID_PIE, /// Pie chart.
1214 EXC_CHTYPEID_DONUT, /// Donut chart.
1215 EXC_CHTYPEID_PIEEXT, /// Pie-to-pie or pie-to-bar chart.
1216 EXC_CHTYPEID_SCATTER, /// Scatter (XY) chart.
1217 EXC_CHTYPEID_BUBBLES, /// Bubble chart.
1218 EXC_CHTYPEID_SURFACE, /// Surface chart.
1219 EXC_CHTYPEID_UNKNOWN /// Default for unknown chart types.
1222 /** Enumerates different categories of similar chart types. */
1223 enum XclChTypeCateg
1225 EXC_CHTYPECATEG_BAR, /// Bar charts (horizontal or vertical).
1226 EXC_CHTYPECATEG_LINE, /// Line charts (line, area, stock charts).
1227 EXC_CHTYPECATEG_RADAR, /// Radar charts (linear or filled).
1228 EXC_CHTYPECATEG_PIE, /// Pie and donut charts.
1229 EXC_CHTYPECATEG_SCATTER, /// Scatter and bubble charts.
1230 EXC_CHTYPECATEG_SURFACE /// Surface charts.
1233 /** Enumerates modes for varying point colors in a series. */
1234 enum XclChVarPointMode
1236 EXC_CHVARPOINT_NONE, /// No varied colors supported.
1237 EXC_CHVARPOINT_SINGLE, /// Only supported, if type group contains only one series.
1238 EXC_CHVARPOINT_MULTI /// Supported for multiple series in a chart type group.
1241 /** Contains information for a chart type. */
1242 struct XclChTypeInfo
1244 XclChTypeId meTypeId; /// Unique chart type identifier.
1245 XclChTypeCateg meTypeCateg; /// Chart type category this type belongs to.
1246 sal_uInt16 mnRecId; /// Record identifier written to the file.
1247 const sal_Char* mpcServiceName; /// Service name of the type.
1248 XclChVarPointMode meVarPointMode; /// Mode for varying point colors.
1249 sal_Int32 mnDefaultLabelPos; /// Default data label position (API constant).
1250 bool mbCombinable2d; /// true = Types can be combined in one axes set.
1251 bool mbSupports3d; /// true = 3d type allowed, false = Only 2d type.
1252 bool mbPolarCoordSystem; /// true = Polar, false = Cartesian.
1253 bool mbSeriesIsFrame2d; /// true = Series with area formatting (2d charts).
1254 bool mbSeriesIsFrame3d; /// true = Series with area formatting (3d charts).
1255 bool mbSingleSeriesVis; /// true = Only first series visible.
1256 bool mbCategoryAxis; /// true = X axis contains categories.
1257 bool mbSwappedAxesSet; /// true = X and Y axes are swapped.
1258 bool mbSupportsStacking; /// true = Series can be stacked on each other.
1259 bool mbReverseSeries; /// true = Insert unstacked series in reverse order.
1260 bool mbTicksBetweenCateg; /// true = X axis ticks between categories.
1263 /** Extended chart type information and access functions. */
1264 struct XclChExtTypeInfo : public XclChTypeInfo
1266 bool mb3dChart; /// Chart is actually a 3D chart.
1267 bool mbSpline; /// Series lines are smoothed.
1269 explicit XclChExtTypeInfo( const XclChTypeInfo& rTypeInfo );
1271 void Set( const XclChTypeInfo& rTypeInfo, bool b3dChart, bool bSpline );
1273 /** Returns true, if this chart type supports area formatting for its series. */
1274 inline bool IsSeriesFrameFormat() const
1275 { return mb3dChart ? mbSeriesIsFrame3d : mbSeriesIsFrame2d; }
1276 /** Returns the correct object type identifier for series and data points. */
1277 inline XclChObjectType GetSeriesObjectType() const
1278 { return IsSeriesFrameFormat() ? EXC_CHOBJTYPE_FILLEDSERIES : EXC_CHOBJTYPE_LINEARSERIES; }
1281 // ----------------------------------------------------------------------------
1283 /** Provides access to chart type info structs for all available chart types. */
1284 class XclChTypeInfoProvider
1286 public:
1287 explicit XclChTypeInfoProvider();
1289 /** Returns chart type info for a unique chart type identifier. */
1290 const XclChTypeInfo& GetTypeInfo( XclChTypeId eType ) const;
1291 /** Returns the first fitting chart type info for an Excel chart type record identifier. */
1292 const XclChTypeInfo& GetTypeInfoFromRecId( sal_uInt16 nRecId ) const;
1293 /** Returns the first fitting chart type info for the passed service name. */
1294 const XclChTypeInfo& GetTypeInfoFromService( const ::rtl::OUString& rServiceName ) const;
1296 private:
1297 typedef ::std::map< XclChTypeId, const XclChTypeInfo* > XclChTypeInfoMap;
1298 XclChTypeInfoMap maInfoMap; /// Maps chart types to type info data.
1301 // Property helpers ===========================================================
1303 class XclChObjectTable
1305 public:
1306 typedef ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > XNameContainerRef;
1307 typedef ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > XServiceFactoryRef;
1309 public:
1310 explicit XclChObjectTable( XServiceFactoryRef xFactory,
1311 const ::rtl::OUString& rServiceName, const ::rtl::OUString& rObjNameBase );
1313 /** Returns a named formatting object from the chart document. */
1314 ::com::sun::star::uno::Any GetObject( const ::rtl::OUString& rObjName );
1315 /** Insertes a named formatting object into the chart document. */
1316 ::rtl::OUString InsertObject( const ::com::sun::star::uno::Any& rObj );
1318 private:
1319 XServiceFactoryRef mxFactory; /// Factory to create the container.
1320 XNameContainerRef mxContainer; /// Container for the objects.
1321 ::rtl::OUString maServiceName; /// Service name to create the container.
1322 ::rtl::OUString maObjNameBase; /// Base of names for inserted objects.
1323 sal_Int32 mnIndex; /// Index to create unique identifiers.
1326 // ----------------------------------------------------------------------------
1328 struct XclFontData;
1330 /** Helper class for usage of property sets. */
1331 class XclChPropSetHelper
1333 public:
1334 explicit XclChPropSetHelper();
1336 /** Reads all line properties from the passed property set. */
1337 void ReadLineProperties(
1338 XclChLineFormat& rLineFmt,
1339 XclChObjectTable& rDashTable,
1340 const ScfPropertySet& rPropSet,
1341 XclChPropertyMode ePropMode );
1342 /** Reads solid area properties from the passed property set.
1343 @return true = object contains complex fill properties. */
1344 bool ReadAreaProperties(
1345 XclChAreaFormat& rAreaFmt,
1346 const ScfPropertySet& rPropSet,
1347 XclChPropertyMode ePropMode );
1348 /** Reads gradient or bitmap area properties from the passed property set. */
1349 void ReadEscherProperties(
1350 XclChEscherFormat& rEscherFmt,
1351 XclChPicFormat& rPicFmt,
1352 XclChObjectTable& rGradientTable,
1353 XclChObjectTable& rHatchTable,
1354 XclChObjectTable& rBitmapTable,
1355 const ScfPropertySet& rPropSet,
1356 XclChPropertyMode ePropMode );
1357 /** Reads all marker properties from the passed property set. */
1358 void ReadMarkerProperties(
1359 XclChMarkerFormat& rMarkerFmt,
1360 const ScfPropertySet& rPropSet,
1361 sal_uInt16 nFormatIdx );
1362 /** Reads rotation properties from the passed property set. */
1363 sal_uInt16 ReadRotationProperties(
1364 const ScfPropertySet& rPropSet,
1365 bool bSupportsStacked );
1366 /** Reads all legend properties from the passed property set. */
1367 void ReadLegendProperties(
1368 XclChLegend& rLegend,
1369 const ScfPropertySet& rPropSet );
1371 /** Writes all line properties to the passed property set. */
1372 void WriteLineProperties(
1373 ScfPropertySet& rPropSet,
1374 XclChObjectTable& rDashTable,
1375 const XclChLineFormat& rLineFmt,
1376 XclChPropertyMode ePropMode );
1377 /** Writes solid area properties to the passed property set. */
1378 void WriteAreaProperties(
1379 ScfPropertySet& rPropSet,
1380 const XclChAreaFormat& rAreaFmt,
1381 XclChPropertyMode ePropMode );
1382 /** Writes gradient or bitmap area properties to the passed property set. */
1383 void WriteEscherProperties(
1384 ScfPropertySet& rPropSet,
1385 XclChObjectTable& rGradientTable,
1386 XclChObjectTable& rHatchTable,
1387 XclChObjectTable& rBitmapTable,
1388 const XclChEscherFormat& rEscherFmt,
1389 const XclChPicFormat& rPicFmt,
1390 XclChPropertyMode ePropMode );
1391 /** Writes all marker properties to the passed property set. */
1392 void WriteMarkerProperties(
1393 ScfPropertySet& rPropSet,
1394 const XclChMarkerFormat& rMarkerFmt );
1395 /** Writes rotation properties to the passed property set. */
1396 void WriteRotationProperties(
1397 ScfPropertySet& rPropSet,
1398 sal_uInt16 nRotation,
1399 bool bSupportsStacked );
1400 /** Writes all legend properties to the passed property set. */
1401 void WriteLegendProperties(
1402 ScfPropertySet& rPropSet,
1403 const XclChLegend& rLegend );
1405 private:
1406 /** Returns a line property set helper according to the passed property mode. */
1407 ScfPropSetHelper& GetLineHelper( XclChPropertyMode ePropMode );
1408 /** Returns an area property set helper according to the passed property mode. */
1409 ScfPropSetHelper& GetAreaHelper( XclChPropertyMode ePropMode );
1410 /** Returns a gradient property set helper according to the passed property mode. */
1411 ScfPropSetHelper& GetGradientHelper( XclChPropertyMode ePropMode );
1412 /** Returns a hatch property set helper according to the passed property mode. */
1413 ScfPropSetHelper& GetHatchHelper( XclChPropertyMode ePropMode );
1415 private:
1416 ScfPropSetHelper maLineHlpCommon; /// Properties for lines in common objects.
1417 ScfPropSetHelper maLineHlpLinear; /// Properties for lines in linear series.
1418 ScfPropSetHelper maLineHlpFilled; /// Properties for lines in filled series.
1419 ScfPropSetHelper maAreaHlpCommon; /// Properties for areas in common objects.
1420 ScfPropSetHelper maAreaHlpFilled; /// Properties for areas in filled series.
1421 ScfPropSetHelper maGradHlpCommon; /// Properties for gradients in common objects.
1422 ScfPropSetHelper maGradHlpFilled; /// Properties for gradients in filled series.
1423 ScfPropSetHelper maHatchHlpCommon; /// Properties for hatches in common objects.
1424 ScfPropSetHelper maHatchHlpFilled; /// Properties for hatches in filled series.
1425 ScfPropSetHelper maBitmapHlp; /// Properties for bitmaps.
1426 ScfPropSetHelper maLegendHlp; /// Properties for legend.
1429 // ============================================================================
1431 /** Base struct for internal root data structs for import and export. */
1432 class XclChRootData
1434 public:
1435 typedef ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XChartDocument > XChartDocRef;
1437 public:
1438 explicit XclChRootData();
1439 virtual ~XclChRootData();
1441 /** Returns the API reference of the chart document. */
1442 XChartDocRef GetChartDoc() const;
1444 /** Returns the chart type info provider, that contains data about all chart types. */
1445 inline XclChTypeInfoProvider& GetTypeInfoProvider() const { return *mxTypeInfoProv; }
1446 /** Returns the chart type info provider, that contains data about all chart types. */
1447 inline XclChFormatInfoProvider& GetFormatInfoProvider() const { return *mxFmtInfoProv; }
1449 inline XclChObjectTable& GetLineDashTable() const { return *mxLineDashTable; }
1450 inline XclChObjectTable& GetGradientTable() const { return *mxGradientTable; }
1451 inline XclChObjectTable& GetHatchTable() const { return *mxHatchTable; }
1452 inline XclChObjectTable& GetBitmapTable() const { return *mxBitmapTable; }
1454 /** Starts the API chart document conversion. Must be called once before any API access. */
1455 void InitConversion( XChartDocRef xChartDoc );
1456 /** Finishes the API chart document conversion. Must be called once before any API access. */
1457 void FinishConversion();
1459 private:
1460 typedef ScfRef< XclChTypeInfoProvider > XclChTypeProvRef;
1461 typedef ScfRef< XclChFormatInfoProvider > XclChFmtInfoProvRef;
1462 typedef ScfRef< XclChObjectTable > XclChObjectTableRef;
1464 XChartDocRef mxChartDoc; /// The chart document.
1465 XclChTypeProvRef mxTypeInfoProv; /// Provides info about chart types.
1466 XclChFmtInfoProvRef mxFmtInfoProv; /// Provides info about auto formatting.
1467 XclChObjectTableRef mxLineDashTable; /// Container for line dash styles.
1468 XclChObjectTableRef mxGradientTable; /// Container for gradient fill styles.
1469 XclChObjectTableRef mxHatchTable; /// Container for hatch fill styles.
1470 XclChObjectTableRef mxBitmapTable; /// Container for bitmap fill styles.
1473 // ============================================================================
1475 #endif