LibreOffice Module chart2 (master) 1
AxisItemConverter.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
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/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
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 .
18 */
19#pragma once
20
21#include "ItemConverter.hxx"
22#include <rtl/ref.hxx>
23
24#include <vector>
25
26namespace com::sun::star::awt { struct Size; }
27namespace com::sun::star::beans { class XPropertySet; }
28namespace com::sun::star::chart2 { class XAxis; }
29namespace com::sun::star::chart2 { class XChartDocument; }
30namespace chart { class Axis; }
31namespace chart { struct ExplicitIncrementData; }
32namespace chart { struct ExplicitScaleData; }
33namespace chart { class ChartModel; }
34
35class SdrModel;
36
37namespace chart::wrapper {
38
39class AxisItemConverter final : public ItemConverter
40{
41public:
43 const css::uno::Reference<css::beans::XPropertySet>& rPropertySet,
44 SfxItemPool& rItemPool, SdrModel& rDrawModel,
46 ExplicitScaleData const * pScale,
47 ExplicitIncrementData const * pIncrement,
48 const css::awt::Size* pRefSize );
49
50 virtual ~AxisItemConverter() override;
51
52 virtual void FillItemSet( SfxItemSet & rOutItemSet ) const override;
53 virtual bool ApplyItemSet( const SfxItemSet & rItemSet ) override;
54
55protected:
56 virtual const WhichRangesContainer& GetWhichPairs() const override;
57 virtual bool GetItemProperty( tWhichIdType nWhichId, tPropertyNameWithMemberId & rOutProperty ) const override;
58
59 virtual void FillSpecialItem( sal_uInt16 nWhichId, SfxItemSet & rOutItemSet ) const override;
60 virtual bool ApplySpecialItem( sal_uInt16 nWhichId, const SfxItemSet & rItemSet ) override;
61
62private:
63 std::vector< std::unique_ptr<ItemConverter> > m_aConverters;
65
67
68 std::unique_ptr<ExplicitScaleData> m_pExplicitScale;
69 std::unique_ptr<ExplicitIncrementData> m_pExplicitIncrement;
70};
71
72}
73
74/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
rtl::Reference<::chart::Axis > m_xAxis
virtual const WhichRangesContainer & GetWhichPairs() const override
implement this method to provide an array of which-ranges
std::unique_ptr< ExplicitIncrementData > m_pExplicitIncrement
virtual bool ApplyItemSet(const SfxItemSet &rItemSet) override
applies all properties that are results of a conversion from all items in rItemSet to the internal XP...
AxisItemConverter(const css::uno::Reference< css::beans::XPropertySet > &rPropertySet, SfxItemPool &rItemPool, SdrModel &rDrawModel, const rtl::Reference<::chart::ChartModel > &xChartDoc, ExplicitScaleData const *pScale, ExplicitIncrementData const *pIncrement, const css::awt::Size *pRefSize)
rtl::Reference<::chart::ChartModel > m_xChartDoc
std::unique_ptr< ExplicitScaleData > m_pExplicitScale
std::vector< std::unique_ptr< ItemConverter > > m_aConverters
virtual void FillSpecialItem(sal_uInt16 nWhichId, SfxItemSet &rOutItemSet) const override
for items that can not be mapped directly to a property.
virtual bool GetItemProperty(tWhichIdType nWhichId, tPropertyNameWithMemberId &rOutProperty) const override
implement this method to return a Property object for a given which id.
virtual bool ApplySpecialItem(sal_uInt16 nWhichId, const SfxItemSet &rItemSet) override
for items that can not be mapped directly to a property.
virtual void FillItemSet(SfxItemSet &rOutItemSet) const override
applies all properties that can be mapped to items into the given item set.
This class serves for conversion between properties of an XPropertySet and SfxItems in SfxItemSets.
std::pair< tPropertyNameType, tMemberIdType > tPropertyNameWithMemberId
class SAL_NO_VTABLE XPropertySet
describes how tickmarks are positioned on the scale of an axis.
This structure contains the explicit values for a scale like Minimum and Maximum.