1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #include "ChartItemPool.hxx"
22 #include "chartview/ChartSfxItemIds.hxx"
23 #include <svx/chrtitem.hxx>
24 #include <svl/intitem.hxx>
25 #include <editeng/brushitem.hxx>
26 #include <editeng/sizeitem.hxx>
27 #include <svl/stritem.hxx>
28 #include <svl/rectitem.hxx>
29 #include <svl/ilstitem.hxx>
30 #include <editeng/editids.hrc>
31 #include <svx/svxids.hrc>
34 #include <com/sun/star/chart2/LegendPosition.hpp>
39 ChartItemPool::ChartItemPool():
40 SfxItemPool( "ChartItemPool" , SCHATTR_START
, SCHATTR_END
, NULL
, NULL
)
42 /**************************************************************************
44 **************************************************************************/
45 ppPoolDefaults
= new SfxPoolItem
*[SCHATTR_END
- SCHATTR_START
+ 1];
47 ppPoolDefaults
[SCHATTR_DATADESCR_SHOW_NUMBER
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_DATADESCR_SHOW_NUMBER
);
48 ppPoolDefaults
[SCHATTR_DATADESCR_SHOW_PERCENTAGE
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_DATADESCR_SHOW_PERCENTAGE
);
49 ppPoolDefaults
[SCHATTR_DATADESCR_SHOW_CATEGORY
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_DATADESCR_SHOW_CATEGORY
);
50 ppPoolDefaults
[SCHATTR_DATADESCR_SHOW_SYMBOL
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_DATADESCR_SHOW_SYMBOL
);
51 ppPoolDefaults
[SCHATTR_DATADESCR_SEPARATOR
- SCHATTR_START
] = new SfxStringItem(SCHATTR_DATADESCR_SEPARATOR
," ");
52 ppPoolDefaults
[SCHATTR_DATADESCR_PLACEMENT
- SCHATTR_START
] = new SfxInt32Item(SCHATTR_DATADESCR_PLACEMENT
,0);
53 ppPoolDefaults
[SCHATTR_DATADESCR_AVAILABLE_PLACEMENTS
- SCHATTR_START
] = new SfxIntegerListItem(SCHATTR_DATADESCR_AVAILABLE_PLACEMENTS
, ::std::vector
< sal_Int32
>() );
54 ppPoolDefaults
[SCHATTR_DATADESCR_NO_PERCENTVALUE
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_DATADESCR_NO_PERCENTVALUE
);
55 ppPoolDefaults
[SCHATTR_PERCENT_NUMBERFORMAT_VALUE
- SCHATTR_START
] = new SfxUInt32Item(SCHATTR_PERCENT_NUMBERFORMAT_VALUE
, 0);
56 ppPoolDefaults
[SCHATTR_PERCENT_NUMBERFORMAT_SOURCE
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_PERCENT_NUMBERFORMAT_SOURCE
);
59 ppPoolDefaults
[SCHATTR_LEGEND_POS
- SCHATTR_START
] = new SfxInt32Item(SCHATTR_LEGEND_POS
, ::com::sun::star::chart2::LegendPosition_LINE_END
);
60 ppPoolDefaults
[SCHATTR_LEGEND_SHOW
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_LEGEND_SHOW
, true);
63 ppPoolDefaults
[SCHATTR_TEXT_DEGREES
- SCHATTR_START
] = new SfxInt32Item(SCHATTR_TEXT_DEGREES
, 0);
64 ppPoolDefaults
[SCHATTR_TEXT_STACKED
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_TEXT_STACKED
,false);
67 ppPoolDefaults
[SCHATTR_STAT_AVERAGE
- SCHATTR_START
] = new SfxBoolItem (SCHATTR_STAT_AVERAGE
);
68 ppPoolDefaults
[SCHATTR_STAT_KIND_ERROR
- SCHATTR_START
] = new SvxChartKindErrorItem (CHERROR_NONE
, SCHATTR_STAT_KIND_ERROR
);
69 ppPoolDefaults
[SCHATTR_STAT_PERCENT
- SCHATTR_START
] = new SvxDoubleItem (0.0, SCHATTR_STAT_PERCENT
);
70 ppPoolDefaults
[SCHATTR_STAT_BIGERROR
- SCHATTR_START
] = new SvxDoubleItem (0.0, SCHATTR_STAT_BIGERROR
);
71 ppPoolDefaults
[SCHATTR_STAT_CONSTPLUS
- SCHATTR_START
] = new SvxDoubleItem (0.0, SCHATTR_STAT_CONSTPLUS
);
72 ppPoolDefaults
[SCHATTR_STAT_CONSTMINUS
- SCHATTR_START
] = new SvxDoubleItem (0.0, SCHATTR_STAT_CONSTMINUS
);
73 ppPoolDefaults
[SCHATTR_STAT_INDICATE
- SCHATTR_START
] = new SvxChartIndicateItem (CHINDICATE_NONE
, SCHATTR_STAT_INDICATE
);
74 ppPoolDefaults
[SCHATTR_STAT_RANGE_POS
- SCHATTR_START
] = new SfxStringItem (SCHATTR_STAT_RANGE_POS
, OUString());
75 ppPoolDefaults
[SCHATTR_STAT_RANGE_NEG
- SCHATTR_START
] = new SfxStringItem (SCHATTR_STAT_RANGE_NEG
, OUString());
76 ppPoolDefaults
[SCHATTR_STAT_ERRORBAR_TYPE
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_STAT_ERRORBAR_TYPE
, true);
78 ppPoolDefaults
[SCHATTR_STYLE_DEEP
- SCHATTR_START
] = new SfxBoolItem (SCHATTR_STYLE_DEEP
, false);
79 ppPoolDefaults
[SCHATTR_STYLE_3D
- SCHATTR_START
] = new SfxBoolItem (SCHATTR_STYLE_3D
, false);
80 ppPoolDefaults
[SCHATTR_STYLE_VERTICAL
- SCHATTR_START
] = new SfxBoolItem (SCHATTR_STYLE_VERTICAL
, false);
81 ppPoolDefaults
[SCHATTR_STYLE_BASETYPE
- SCHATTR_START
] = new SfxInt32Item(SCHATTR_STYLE_BASETYPE
, 0);
82 ppPoolDefaults
[SCHATTR_STYLE_LINES
- SCHATTR_START
] = new SfxBoolItem (SCHATTR_STYLE_LINES
, false);
83 ppPoolDefaults
[SCHATTR_STYLE_PERCENT
- SCHATTR_START
] = new SfxBoolItem (SCHATTR_STYLE_PERCENT
, false);
84 ppPoolDefaults
[SCHATTR_STYLE_STACKED
- SCHATTR_START
] = new SfxBoolItem (SCHATTR_STYLE_STACKED
, false);
85 ppPoolDefaults
[SCHATTR_STYLE_SPLINES
- SCHATTR_START
] = new SfxInt32Item (SCHATTR_STYLE_SPLINES
, 0); //Bug: was Bool! test ->Fileformat (touches only 5's)
86 ppPoolDefaults
[SCHATTR_STYLE_SYMBOL
- SCHATTR_START
] = new SfxInt32Item (SCHATTR_STYLE_SYMBOL
, 0);
87 ppPoolDefaults
[SCHATTR_STYLE_SHAPE
- SCHATTR_START
] = new SfxInt32Item (SCHATTR_STYLE_SHAPE
, 0);
89 ppPoolDefaults
[SCHATTR_AXIS
- SCHATTR_START
] = new SfxInt32Item(SCHATTR_AXIS
,2); //2 = Y-Axis!!!
92 ppPoolDefaults
[SCHATTR_AXISTYPE
- SCHATTR_START
] = new SfxInt32Item(SCHATTR_AXISTYPE
, CHART_AXIS_REALNUMBER
);
93 ppPoolDefaults
[SCHATTR_AXIS_REVERSE
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_AXIS_REVERSE
,false);
94 ppPoolDefaults
[SCHATTR_AXIS_AUTO_MIN
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_AXIS_AUTO_MIN
);
95 ppPoolDefaults
[SCHATTR_AXIS_MIN
- SCHATTR_START
] = new SvxDoubleItem(0.0, SCHATTR_AXIS_MIN
);
96 ppPoolDefaults
[SCHATTR_AXIS_AUTO_MAX
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_AXIS_AUTO_MAX
);
97 ppPoolDefaults
[SCHATTR_AXIS_MAX
- SCHATTR_START
] = new SvxDoubleItem(0.0, SCHATTR_AXIS_MAX
);
98 ppPoolDefaults
[SCHATTR_AXIS_AUTO_STEP_MAIN
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_AXIS_AUTO_STEP_MAIN
);
99 ppPoolDefaults
[SCHATTR_AXIS_STEP_MAIN
- SCHATTR_START
] = new SvxDoubleItem(0.0, SCHATTR_AXIS_STEP_MAIN
);
100 ppPoolDefaults
[SCHATTR_AXIS_MAIN_TIME_UNIT
- SCHATTR_START
] = new SfxInt32Item(SCHATTR_AXIS_MAIN_TIME_UNIT
,2);
101 ppPoolDefaults
[SCHATTR_AXIS_AUTO_STEP_HELP
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_AXIS_AUTO_STEP_HELP
);
102 ppPoolDefaults
[SCHATTR_AXIS_STEP_HELP
- SCHATTR_START
] = new SfxInt32Item(SCHATTR_AXIS_STEP_HELP
,0);
103 ppPoolDefaults
[SCHATTR_AXIS_HELP_TIME_UNIT
- SCHATTR_START
] = new SfxInt32Item(SCHATTR_AXIS_HELP_TIME_UNIT
,2);
104 ppPoolDefaults
[SCHATTR_AXIS_AUTO_TIME_RESOLUTION
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_AXIS_AUTO_TIME_RESOLUTION
);
105 ppPoolDefaults
[SCHATTR_AXIS_TIME_RESOLUTION
- SCHATTR_START
] = new SfxInt32Item(SCHATTR_AXIS_TIME_RESOLUTION
,2);
106 ppPoolDefaults
[SCHATTR_AXIS_LOGARITHM
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_AXIS_LOGARITHM
);
107 ppPoolDefaults
[SCHATTR_AXIS_AUTO_DATEAXIS
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_AXIS_AUTO_DATEAXIS
);
108 ppPoolDefaults
[SCHATTR_AXIS_ALLOW_DATEAXIS
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_AXIS_ALLOW_DATEAXIS
);
109 ppPoolDefaults
[SCHATTR_AXIS_AUTO_ORIGIN
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_AXIS_AUTO_ORIGIN
);
110 ppPoolDefaults
[SCHATTR_AXIS_ORIGIN
- SCHATTR_START
] = new SvxDoubleItem(0.0, SCHATTR_AXIS_ORIGIN
);
113 ppPoolDefaults
[SCHATTR_AXIS_TICKS
- SCHATTR_START
] = new SfxInt32Item(SCHATTR_AXIS_TICKS
,CHAXIS_MARK_OUTER
);
114 ppPoolDefaults
[SCHATTR_AXIS_HELPTICKS
- SCHATTR_START
] = new SfxInt32Item(SCHATTR_AXIS_HELPTICKS
,0);
115 ppPoolDefaults
[SCHATTR_AXIS_POSITION
- SCHATTR_START
] = new SfxInt32Item(SCHATTR_AXIS_POSITION
,0);
116 ppPoolDefaults
[SCHATTR_AXIS_POSITION_VALUE
- SCHATTR_START
] = new SvxDoubleItem(0.0, SCHATTR_AXIS_POSITION_VALUE
);
117 ppPoolDefaults
[SCHATTR_AXIS_CROSSING_MAIN_AXIS_NUMBERFORMAT
- SCHATTR_START
] = new SfxUInt32Item(SCHATTR_AXIS_CROSSING_MAIN_AXIS_NUMBERFORMAT
,0);
118 ppPoolDefaults
[SCHATTR_AXIS_LABEL_POSITION
- SCHATTR_START
] = new SfxInt32Item(SCHATTR_AXIS_LABEL_POSITION
,0);
119 ppPoolDefaults
[SCHATTR_AXIS_MARK_POSITION
- SCHATTR_START
] = new SfxInt32Item(SCHATTR_AXIS_MARK_POSITION
,0);
122 ppPoolDefaults
[SCHATTR_AXIS_SHOWDESCR
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_AXIS_SHOWDESCR
,false);
123 ppPoolDefaults
[SCHATTR_AXIS_LABEL_ORDER
- SCHATTR_START
] = new SvxChartTextOrderItem(CHTXTORDER_SIDEBYSIDE
, SCHATTR_AXIS_LABEL_ORDER
);
124 ppPoolDefaults
[SCHATTR_AXIS_LABEL_OVERLAP
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_AXIS_LABEL_OVERLAP
,false);
125 ppPoolDefaults
[SCHATTR_AXIS_LABEL_BREAK
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_AXIS_LABEL_BREAK
, false );
127 ppPoolDefaults
[SCHATTR_SYMBOL_BRUSH
- SCHATTR_START
] = new SvxBrushItem(SCHATTR_SYMBOL_BRUSH
);
128 ppPoolDefaults
[SCHATTR_STOCK_VOLUME
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_STOCK_VOLUME
,false);
129 ppPoolDefaults
[SCHATTR_STOCK_UPDOWN
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_STOCK_UPDOWN
,false);
130 ppPoolDefaults
[SCHATTR_SYMBOL_SIZE
- SCHATTR_START
] = new SvxSizeItem(SCHATTR_SYMBOL_SIZE
,Size(0,0));
133 ppPoolDefaults
[SCHATTR_BAR_OVERLAP
- SCHATTR_START
] = new SfxInt32Item(SCHATTR_BAR_OVERLAP
,0);
134 ppPoolDefaults
[SCHATTR_BAR_GAPWIDTH
- SCHATTR_START
] = new SfxInt32Item(SCHATTR_BAR_GAPWIDTH
,0);
135 ppPoolDefaults
[SCHATTR_BAR_CONNECT
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_BAR_CONNECT
, false);
136 ppPoolDefaults
[SCHATTR_NUM_OF_LINES_FOR_BAR
- SCHATTR_START
] = new SfxInt32Item( SCHATTR_NUM_OF_LINES_FOR_BAR
, 0 );
137 ppPoolDefaults
[SCHATTR_SPLINE_ORDER
- SCHATTR_START
] = new SfxInt32Item( SCHATTR_SPLINE_ORDER
, 3 );
138 ppPoolDefaults
[SCHATTR_SPLINE_RESOLUTION
- SCHATTR_START
] = new SfxInt32Item( SCHATTR_SPLINE_RESOLUTION
, 20 );
139 ppPoolDefaults
[SCHATTR_DIAGRAM_STYLE
- SCHATTR_START
] = new SvxChartStyleItem( CHSTYLE_2D_COLUMN
, SCHATTR_DIAGRAM_STYLE
);
140 ppPoolDefaults
[SCHATTR_GROUP_BARS_PER_AXIS
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_GROUP_BARS_PER_AXIS
, false);
141 ppPoolDefaults
[SCHATTR_STARTING_ANGLE
- SCHATTR_START
] = new SfxInt32Item( SCHATTR_STARTING_ANGLE
, 90 );
142 ppPoolDefaults
[SCHATTR_CLOCKWISE
- SCHATTR_START
] = new SfxBoolItem( SCHATTR_CLOCKWISE
, false );
144 ppPoolDefaults
[SCHATTR_MISSING_VALUE_TREATMENT
- SCHATTR_START
] = new SfxInt32Item(SCHATTR_MISSING_VALUE_TREATMENT
, 0);
145 ppPoolDefaults
[SCHATTR_AVAILABLE_MISSING_VALUE_TREATMENTS
- SCHATTR_START
] = new SfxIntegerListItem(SCHATTR_AVAILABLE_MISSING_VALUE_TREATMENTS
, ::std::vector
< sal_Int32
>() );
146 ppPoolDefaults
[SCHATTR_INCLUDE_HIDDEN_CELLS
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_INCLUDE_HIDDEN_CELLS
, true);
148 ppPoolDefaults
[SCHATTR_AXIS_FOR_ALL_SERIES
- SCHATTR_START
] = new SfxInt32Item(SCHATTR_AXIS_FOR_ALL_SERIES
, 0);
150 ppPoolDefaults
[SCHATTR_REGRESSION_TYPE
- SCHATTR_START
] = new SvxChartRegressItem (CHREGRESS_NONE
, SCHATTR_REGRESSION_TYPE
);
151 ppPoolDefaults
[SCHATTR_REGRESSION_SHOW_EQUATION
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_REGRESSION_SHOW_EQUATION
, false);
152 ppPoolDefaults
[SCHATTR_REGRESSION_SHOW_COEFF
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_REGRESSION_SHOW_COEFF
, false);
153 ppPoolDefaults
[SCHATTR_REGRESSION_DEGREE
- SCHATTR_START
] = new SfxInt32Item(SCHATTR_REGRESSION_DEGREE
, 2);
154 ppPoolDefaults
[SCHATTR_REGRESSION_PERIOD
- SCHATTR_START
] = new SfxInt32Item(SCHATTR_REGRESSION_PERIOD
, 2);
155 ppPoolDefaults
[SCHATTR_REGRESSION_EXTRAPOLATE_FORWARD
- SCHATTR_START
] = new SvxDoubleItem(0.0, SCHATTR_REGRESSION_EXTRAPOLATE_FORWARD
);
156 ppPoolDefaults
[SCHATTR_REGRESSION_EXTRAPOLATE_BACKWARD
- SCHATTR_START
] = new SvxDoubleItem(0.0, SCHATTR_REGRESSION_EXTRAPOLATE_BACKWARD
);
157 ppPoolDefaults
[SCHATTR_REGRESSION_SET_INTERCEPT
- SCHATTR_START
] = new SfxBoolItem(SCHATTR_REGRESSION_SET_INTERCEPT
, false);
158 ppPoolDefaults
[SCHATTR_REGRESSION_INTERCEPT_VALUE
- SCHATTR_START
] = new SvxDoubleItem(0.0, SCHATTR_REGRESSION_INTERCEPT_VALUE
);
159 ppPoolDefaults
[SCHATTR_REGRESSION_CURVE_NAME
- SCHATTR_START
] = new SfxStringItem(SCHATTR_REGRESSION_CURVE_NAME
, OUString());
161 /**************************************************************************
163 **************************************************************************/
164 pItemInfos
= new SfxItemInfo
[SCHATTR_END
- SCHATTR_START
+ 1];
166 const sal_uInt16 nMax
= SCHATTR_END
- SCHATTR_START
+ 1;
167 for( sal_uInt16 i
= 0; i
< nMax
; i
++ )
169 pItemInfos
[i
]._nSID
= 0;
170 pItemInfos
[i
]._nFlags
= SfxItemPoolFlags::POOLABLE
;
173 // slot ids differing from which ids
174 pItemInfos
[SCHATTR_SYMBOL_BRUSH
- SCHATTR_START
]._nSID
= SID_ATTR_BRUSH
;
175 pItemInfos
[SCHATTR_STYLE_SYMBOL
- SCHATTR_START
]._nSID
= SID_ATTR_SYMBOLTYPE
;
176 pItemInfos
[SCHATTR_SYMBOL_SIZE
- SCHATTR_START
]._nSID
= SID_ATTR_SYMBOLSIZE
;
178 SetDefaults(ppPoolDefaults
);
179 SetItemInfos(pItemInfos
);
182 ChartItemPool::ChartItemPool(const ChartItemPool
& rPool
):
183 SfxItemPool(rPool
), ppPoolDefaults(0), pItemInfos(0)
187 ChartItemPool::~ChartItemPool()
193 const sal_uInt16 nMax
= SCHATTR_END
- SCHATTR_START
+ 1;
194 for( sal_uInt16 i
=0; i
<nMax
; ++i
)
196 SetRefCount(*ppPoolDefaults
[i
], 0);
197 delete ppPoolDefaults
[i
];
200 delete[] ppPoolDefaults
;
203 SfxItemPool
* ChartItemPool::Clone() const
205 return new ChartItemPool(*this);
208 SfxMapUnit
ChartItemPool::GetMetric(sal_uInt16
/* nWhich */) const
210 return SFX_MAPUNIT_100TH_MM
;
213 SfxItemPool
* ChartItemPool::CreateChartItemPool()
215 return new ChartItemPool();
220 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */