Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*************************************************************************
3 : : *
4 : : * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 : : *
6 : : * Copyright 2000, 2010 Oracle and/or its affiliates.
7 : : *
8 : : * OpenOffice.org - a multi-platform office productivity suite
9 : : *
10 : : * This file is part of OpenOffice.org.
11 : : *
12 : : * OpenOffice.org is free software: you can redistribute it and/or modify
13 : : * it under the terms of the GNU Lesser General Public License version 3
14 : : * only, as published by the Free Software Foundation.
15 : : *
16 : : * OpenOffice.org is distributed in the hope that it will be useful,
17 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 : : * GNU Lesser General Public License version 3 for more details
20 : : * (a copy is included in the LICENSE file that accompanied this code).
21 : : *
22 : : * You should have received a copy of the GNU Lesser General Public License
23 : : * version 3 along with OpenOffice.org. If not, see
24 : : * <http://www.openoffice.org/license.html>
25 : : * for a copy of the LGPLv3 License.
26 : : *
27 : : ************************************************************************/
28 : :
29 : : #include <tools/stream.hxx>
30 : : #include <basic/sbxvar.hxx>
31 : : #if defined UNX && !defined LINUX
32 : : #include <wchar.h>
33 : : #endif
34 : : #include <rtl/math.hxx>
35 : : #include <unotools/intlwrapper.hxx>
36 : : #include <com/sun/star/chart/ChartAxisArrangeOrderType.hpp>
37 : :
38 : : #include <stdio.h>
39 : : #include <float.h>
40 : :
41 : : #include "svx/chrtitem.hxx"
42 : :
43 : : using namespace ::rtl;
44 : : using namespace ::com::sun::star;
45 : : // -----------------------------------------------------------------------
46 : :
47 [ - + ][ - + ]: 168 : TYPEINIT1_FACTORY(SvxChartStyleItem, SfxEnumItem, new SvxChartStyleItem(CHSTYLE_2D_LINE, 0));
[ # # ]
48 [ # # ][ # # ]: 0 : TYPEINIT1(SvxChartDataDescrItem, SfxEnumItem);
49 [ - + ][ - + ]: 168 : TYPEINIT1(SvxChartTextOrderItem, SfxEnumItem);
50 [ # # ][ # # ]: 0 : TYPEINIT1(SvxChartTextOrientItem, SfxEnumItem);
51 [ - + ][ - + ]: 168 : TYPEINIT1(SvxChartIndicateItem, SfxEnumItem);
52 [ - + ][ - + ]: 168 : TYPEINIT1(SvxChartKindErrorItem, SfxEnumItem);
53 [ - + ][ - + ]: 168 : TYPEINIT1(SvxChartRegressItem, SfxEnumItem);
54 [ - + ][ - + ]: 1661 : TYPEINIT1_FACTORY(SvxDoubleItem, SfxPoolItem, new SvxDoubleItem(0.0, 0));
[ # # ]
55 : :
56 : : /*************************************************************************
57 : : |*
58 : : |* SvxChartStyleItem
59 : : |*
60 : : *************************************************************************/
61 : :
62 : 56 : SvxChartStyleItem::SvxChartStyleItem(SvxChartStyle eStyle, sal_uInt16 nId) :
63 : 56 : SfxEnumItem(nId, (sal_uInt16)eStyle)
64 : : {
65 : 56 : }
66 : :
67 : : // -----------------------------------------------------------------------
68 : :
69 : 0 : SvxChartStyleItem::SvxChartStyleItem(SvStream& rIn, sal_uInt16 nId) :
70 : 0 : SfxEnumItem(nId, rIn)
71 : : {
72 : 0 : }
73 : :
74 : : // -----------------------------------------------------------------------
75 : :
76 : 0 : SfxPoolItem* SvxChartStyleItem::Clone(SfxItemPool* /*pPool*/) const
77 : : {
78 [ # # ]: 0 : return new SvxChartStyleItem(*this);
79 : : }
80 : :
81 : : // -----------------------------------------------------------------------
82 : :
83 : 0 : SfxPoolItem* SvxChartStyleItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const
84 : : {
85 [ # # ]: 0 : return new SvxChartStyleItem(rIn, Which());
86 : : }
87 : :
88 : : /*************************************************************************
89 : : |*
90 : : |* SvxChartDataDescrItem
91 : : |*
92 : : *************************************************************************/
93 : :
94 : 0 : SvxChartDataDescrItem::SvxChartDataDescrItem(SvStream& rIn, sal_uInt16 nId) :
95 : 0 : SfxEnumItem(nId, rIn)
96 : : {
97 : 0 : }
98 : :
99 : : // -----------------------------------------------------------------------
100 : :
101 : 0 : SfxPoolItem* SvxChartDataDescrItem::Clone(SfxItemPool* /*pPool*/) const
102 : : {
103 [ # # ]: 0 : return new SvxChartDataDescrItem(*this);
104 : : }
105 : :
106 : : // -----------------------------------------------------------------------
107 : :
108 : 0 : SfxPoolItem* SvxChartDataDescrItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const
109 : : {
110 [ # # ]: 0 : return new SvxChartDataDescrItem(rIn, Which());
111 : : }
112 : :
113 : : /*************************************************************************
114 : : |*
115 : : |* SvxChartTextOrderItem
116 : : |*
117 : : *************************************************************************/
118 : :
119 : 56 : SvxChartTextOrderItem::SvxChartTextOrderItem(SvxChartTextOrder eOrder,
120 : : sal_uInt16 nId) :
121 : 56 : SfxEnumItem(nId, (sal_uInt16)eOrder)
122 : : {
123 : 56 : }
124 : :
125 : : // -----------------------------------------------------------------------
126 : :
127 : 0 : SvxChartTextOrderItem::SvxChartTextOrderItem(SvStream& rIn, sal_uInt16 nId) :
128 : 0 : SfxEnumItem(nId, rIn)
129 : : {
130 : 0 : }
131 : :
132 : : // -----------------------------------------------------------------------
133 : :
134 : 0 : SfxPoolItem* SvxChartTextOrderItem::Clone(SfxItemPool* /*pPool*/) const
135 : : {
136 [ # # ]: 0 : return new SvxChartTextOrderItem(*this);
137 : : }
138 : :
139 : : // -----------------------------------------------------------------------
140 : :
141 : 0 : SfxPoolItem* SvxChartTextOrderItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const
142 : : {
143 [ # # ]: 0 : return new SvxChartTextOrderItem(rIn, Which());
144 : : }
145 : :
146 : : // -----------------------------------------------------------------------
147 : :
148 : 0 : bool SvxChartTextOrderItem::QueryValue( ::com::sun::star::uno::Any& rVal, sal_uInt8 /*nMemberId*/ ) const
149 : : {
150 : : // the order of the two enums is not equal, so a mapping is required
151 : : ::com::sun::star::chart::ChartAxisArrangeOrderType eAO;
152 : 0 : SvxChartTextOrder eOrder( GetValue());
153 : :
154 [ # # # # : 0 : switch( eOrder )
# ]
155 : : {
156 : : case CHTXTORDER_SIDEBYSIDE:
157 : 0 : eAO = ::com::sun::star::chart::ChartAxisArrangeOrderType_SIDE_BY_SIDE; break;
158 : : case CHTXTORDER_UPDOWN:
159 : 0 : eAO = ::com::sun::star::chart::ChartAxisArrangeOrderType_STAGGER_ODD; break;
160 : : case CHTXTORDER_DOWNUP:
161 : 0 : eAO = ::com::sun::star::chart::ChartAxisArrangeOrderType_STAGGER_EVEN; break;
162 : : case CHTXTORDER_AUTO:
163 : 0 : eAO = ::com::sun::star::chart::ChartAxisArrangeOrderType_AUTO; break;
164 : : }
165 : :
166 [ # # ]: 0 : rVal <<= eAO;
167 : :
168 : 0 : return true;
169 : : }
170 : :
171 : : // -----------------------------------------------------------------------
172 : :
173 : 0 : bool SvxChartTextOrderItem::PutValue( const ::com::sun::star::uno::Any& rVal, sal_uInt8 /*nMemberId*/ )
174 : : {
175 : : // the order of the two enums is not equal, so a mapping is required
176 : : ::com::sun::star::chart::ChartAxisArrangeOrderType eAO;
177 : : SvxChartTextOrder eOrder;
178 : :
179 [ # # ][ # # ]: 0 : if(!(rVal >>= eAO))
180 : : {
181 : : // also try an int (for Basic)
182 : 0 : sal_Int32 nAO = 0;
183 [ # # ]: 0 : if(!(rVal >>= nAO))
184 : 0 : return false;
185 : 0 : eAO = static_cast< ::com::sun::star::chart::ChartAxisArrangeOrderType >( nAO );
186 : : }
187 : :
188 [ # # # # : 0 : switch( eAO )
# ]
189 : : {
190 : : case ::com::sun::star::chart::ChartAxisArrangeOrderType_SIDE_BY_SIDE:
191 : 0 : eOrder = CHTXTORDER_SIDEBYSIDE; break;
192 : : case ::com::sun::star::chart::ChartAxisArrangeOrderType_STAGGER_ODD:
193 : 0 : eOrder = CHTXTORDER_UPDOWN; break;
194 : : case ::com::sun::star::chart::ChartAxisArrangeOrderType_STAGGER_EVEN:
195 : 0 : eOrder = CHTXTORDER_DOWNUP; break;
196 : : case ::com::sun::star::chart::ChartAxisArrangeOrderType_AUTO:
197 : 0 : eOrder = CHTXTORDER_AUTO; break;
198 : : default:
199 : 0 : return false;
200 : : }
201 : :
202 : 0 : SetValue( (sal_uInt16)eOrder );
203 : :
204 : 0 : return true;
205 : : }
206 : :
207 : : /*************************************************************************
208 : : |*
209 : : |* SvxChartTextOrientItem
210 : : |*
211 : : *************************************************************************/
212 : :
213 : 0 : SvxChartTextOrientItem::SvxChartTextOrientItem(SvStream& rIn, sal_uInt16 nId) :
214 : 0 : SfxEnumItem(nId, rIn)
215 : : {
216 : 0 : }
217 : :
218 : : // -----------------------------------------------------------------------
219 : :
220 : 0 : SfxPoolItem* SvxChartTextOrientItem::Clone(SfxItemPool* /*pPool*/) const
221 : : {
222 [ # # ]: 0 : return new SvxChartTextOrientItem(*this);
223 : : }
224 : :
225 : : // -----------------------------------------------------------------------
226 : :
227 : 0 : SfxPoolItem* SvxChartTextOrientItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const
228 : : {
229 [ # # ]: 0 : return new SvxChartTextOrientItem(rIn, Which());
230 : : }
231 : :
232 : : /*************************************************************************
233 : : |*
234 : : |* SvxDoubleItem
235 : : |*
236 : : *************************************************************************/
237 : :
238 : 504 : SvxDoubleItem::SvxDoubleItem(double fValue, sal_uInt16 nId) :
239 : : SfxPoolItem(nId),
240 : 504 : fVal(fValue)
241 : : {
242 : 504 : }
243 : :
244 : : // -----------------------------------------------------------------------
245 : :
246 : 0 : SvxDoubleItem::SvxDoubleItem(const SvxDoubleItem& rItem) :
247 : : SfxPoolItem(rItem),
248 : 0 : fVal(rItem.fVal)
249 : : {
250 : 0 : }
251 : :
252 : : // -----------------------------------------------------------------------
253 : :
254 : 0 : XubString SvxDoubleItem::GetValueText() const
255 : : {
256 : 0 : rtl::OString aOStr( rtl::math::doubleToString( fVal, rtl_math_StringFormat_E, 4, '.', false ) );
257 [ # # ]: 0 : return String( aOStr.getStr(), (sal_uInt16)aOStr.getLength() );
258 : : }
259 : :
260 : : // -----------------------------------------------------------------------
261 : :
262 : 0 : SfxItemPresentation SvxDoubleItem::GetPresentation
263 : : ( SfxItemPresentation /*ePresentation*/, SfxMapUnit /*eCoreMetric*/,
264 : : SfxMapUnit /*ePresentationMetric*/, XubString& rText,
265 : : const IntlWrapper * pIntlWrapper) const
266 : : {
267 : : DBG_ASSERT( pIntlWrapper, "SvxDoubleItem::GetPresentation: no IntlWrapper" );
268 [ # # ]: 0 : if ( pIntlWrapper )
269 : : {
270 : : rText = ::rtl::math::doubleToUString( fVal, rtl_math_StringFormat_E, 4,
271 [ # # ]: 0 : pIntlWrapper->getLocaleData()->getNumDecimalSep()[0], true );
272 : : }
273 : : else
274 [ # # ]: 0 : rText = GetValueText();
275 : 0 : return SFX_ITEM_PRESENTATION_NAMELESS;
276 : : }
277 : :
278 : : // -----------------------------------------------------------------------
279 : :
280 : 0 : int SvxDoubleItem::operator == (const SfxPoolItem& rItem) const
281 : : {
282 : 0 : return (((SvxDoubleItem&)rItem).fVal == fVal);
283 : : }
284 : :
285 : : // -----------------------------------------------------------------------
286 : :
287 : 0 : SfxPoolItem* SvxDoubleItem::Clone(SfxItemPool* /*pPool*/) const
288 : : {
289 [ # # ]: 0 : return new SvxDoubleItem(*this);
290 : : }
291 : :
292 : : // -----------------------------------------------------------------------
293 : :
294 : 0 : SfxPoolItem* SvxDoubleItem::Create(SvStream& rIn, sal_uInt16 /*nVersion*/) const
295 : : {
296 : : double _fVal;
297 [ # # ]: 0 : rIn >> _fVal;
298 [ # # ][ # # ]: 0 : return new SvxDoubleItem(_fVal, Which());
299 : : }
300 : :
301 : : // -----------------------------------------------------------------------
302 : :
303 : 0 : SvStream& SvxDoubleItem::Store(SvStream& rOut, sal_uInt16 /*nItemVersion*/) const
304 : : {
305 : 0 : rOut << fVal;
306 : 0 : return rOut;
307 : : }
308 : :
309 : : // -----------------------------------------------------------------------
310 : :
311 : 0 : double SvxDoubleItem::GetMin() const
312 : : {
313 : 0 : return DBL_MIN;
314 : : }
315 : :
316 : : // -----------------------------------------------------------------------
317 : :
318 : 0 : double SvxDoubleItem::GetMax() const
319 : : {
320 : 0 : return DBL_MAX;
321 : : }
322 : :
323 : : // -----------------------------------------------------------------------
324 : :
325 : 0 : SfxFieldUnit SvxDoubleItem::GetUnit() const
326 : : {
327 : 0 : return SFX_FUNIT_NONE;
328 : : }
329 : :
330 : :
331 : :
332 : :
333 : : // -----------------------------------------------------------------------
334 : 0 : bool SvxDoubleItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/ ) const
335 : : {
336 : 0 : rVal <<= fVal;
337 : 0 : return true;
338 : : }
339 : :
340 : : // -----------------------------------------------------------------------
341 : 0 : bool SvxDoubleItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/ )
342 : : {
343 : 0 : return rVal >>= fVal;
344 : : }
345 : :
346 : :
347 : :
348 : : /*************************************************************************
349 : : |*
350 : : |* SvxChartKindErrorItem
351 : : |*
352 : : *************************************************************************/
353 : :
354 : 56 : SvxChartKindErrorItem::SvxChartKindErrorItem(SvxChartKindError eOrient,
355 : : sal_uInt16 nId) :
356 : 56 : SfxEnumItem(nId, (sal_uInt16)eOrient)
357 : : {
358 : 56 : }
359 : :
360 : : // -----------------------------------------------------------------------
361 : :
362 : 0 : SvxChartKindErrorItem::SvxChartKindErrorItem(SvStream& rIn, sal_uInt16 nId) :
363 : 0 : SfxEnumItem(nId, rIn)
364 : : {
365 : 0 : }
366 : :
367 : : // -----------------------------------------------------------------------
368 : :
369 : 0 : SfxPoolItem* SvxChartKindErrorItem::Clone(SfxItemPool* /*pPool*/) const
370 : : {
371 [ # # ]: 0 : return new SvxChartKindErrorItem(*this);
372 : : }
373 : :
374 : : // -----------------------------------------------------------------------
375 : :
376 : 0 : SfxPoolItem* SvxChartKindErrorItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const
377 : : {
378 [ # # ]: 0 : return new SvxChartKindErrorItem(rIn, Which());
379 : : }
380 : :
381 : : // -----------------------------------------------------------------------
382 : :
383 : 0 : sal_uInt16 SvxChartKindErrorItem::GetVersion (sal_uInt16 nFileFormatVersion) const
384 : : {
385 : : return (nFileFormatVersion == SOFFICE_FILEFORMAT_31)
386 : : ? USHRT_MAX
387 [ # # ]: 0 : : 0;
388 : : }
389 : :
390 : : /*************************************************************************
391 : : |*
392 : : |* SvxChartIndicateItem
393 : : |*
394 : : *************************************************************************/
395 : :
396 : 56 : SvxChartIndicateItem::SvxChartIndicateItem(SvxChartIndicate eOrient,
397 : : sal_uInt16 nId) :
398 : 56 : SfxEnumItem(nId, (sal_uInt16)eOrient)
399 : : {
400 : 56 : }
401 : :
402 : : // -----------------------------------------------------------------------
403 : :
404 : 0 : SvxChartIndicateItem::SvxChartIndicateItem(SvStream& rIn, sal_uInt16 nId) :
405 : 0 : SfxEnumItem(nId, rIn)
406 : : {
407 : 0 : }
408 : :
409 : : // -----------------------------------------------------------------------
410 : :
411 : 0 : SfxPoolItem* SvxChartIndicateItem::Clone(SfxItemPool* /*pPool*/) const
412 : : {
413 [ # # ]: 0 : return new SvxChartIndicateItem(*this);
414 : : }
415 : :
416 : : // -----------------------------------------------------------------------
417 : :
418 : 0 : SfxPoolItem* SvxChartIndicateItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const
419 : : {
420 [ # # ]: 0 : return new SvxChartIndicateItem(rIn, Which());
421 : : }
422 : :
423 : : // -----------------------------------------------------------------------
424 : :
425 : 0 : sal_uInt16 SvxChartIndicateItem::GetVersion (sal_uInt16 nFileFormatVersion) const
426 : : {
427 : : return (nFileFormatVersion == SOFFICE_FILEFORMAT_31)
428 : : ? USHRT_MAX
429 [ # # ]: 0 : : 0;
430 : : }
431 : :
432 : : /*************************************************************************
433 : : |*
434 : : |* SvxChartRegressItem
435 : : |*
436 : : *************************************************************************/
437 : :
438 : 56 : SvxChartRegressItem::SvxChartRegressItem(SvxChartRegress eOrient,
439 : : sal_uInt16 nId) :
440 : 56 : SfxEnumItem(nId, (sal_uInt16)eOrient)
441 : : {
442 : 56 : }
443 : :
444 : : // -----------------------------------------------------------------------
445 : :
446 : 0 : SvxChartRegressItem::SvxChartRegressItem(SvStream& rIn, sal_uInt16 nId) :
447 : 0 : SfxEnumItem(nId, rIn)
448 : : {
449 : 0 : }
450 : :
451 : : // -----------------------------------------------------------------------
452 : :
453 : 0 : SfxPoolItem* SvxChartRegressItem::Clone(SfxItemPool* /*pPool*/) const
454 : : {
455 [ # # ]: 0 : return new SvxChartRegressItem(*this);
456 : : }
457 : :
458 : : // -----------------------------------------------------------------------
459 : :
460 : 0 : SfxPoolItem* SvxChartRegressItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const
461 : : {
462 [ # # ]: 0 : return new SvxChartRegressItem(rIn, Which());
463 : : }
464 : :
465 : : // -----------------------------------------------------------------------
466 : :
467 : 0 : sal_uInt16 SvxChartRegressItem::GetVersion (sal_uInt16 nFileFormatVersion) const
468 : : {
469 : : return (nFileFormatVersion == SOFFICE_FILEFORMAT_31)
470 : : ? USHRT_MAX
471 [ # # ]: 0 : : 0;
472 : : }
473 : :
474 : :
475 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|