xref: /trunk/main/chart2/source/controller/chartapiwrapper/WrappedCharacterHeightProperty.cxx (revision 91144cd0085a7583d2099b982122deb2184ab956)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_chartcontroller.hxx"
26 
27 #include "WrappedCharacterHeightProperty.hxx"
28 #include "macros.hxx"
29 #include "RelativeSizeHelper.hxx"
30 #include "ReferenceSizePropertyProvider.hxx"
31 
32 // header for define DBG_ASSERT
33 #include <tools/debug.hxx>
34 
35 using namespace ::com::sun::star;
36 using ::com::sun::star::uno::Reference;
37 using ::com::sun::star::uno::Any;
38 using ::rtl::OUString;
39 
40 //.............................................................................
41 //.............................................................................
42 
43 //.............................................................................
44 //.............................................................................
45 
46 namespace chart
47 {
48 namespace wrapper
49 {
WrappedCharacterHeightProperty_Base(const OUString & rOuterEqualsInnerName,ReferenceSizePropertyProvider * pRefSizePropProvider)50 WrappedCharacterHeightProperty_Base::WrappedCharacterHeightProperty_Base(
51                             const OUString& rOuterEqualsInnerName
52                             , ReferenceSizePropertyProvider* pRefSizePropProvider )
53                             : WrappedProperty( rOuterEqualsInnerName, rOuterEqualsInnerName )
54                            , m_pRefSizePropProvider( pRefSizePropProvider )
55 {
56 }
~WrappedCharacterHeightProperty_Base()57 WrappedCharacterHeightProperty_Base::~WrappedCharacterHeightProperty_Base()
58 {
59 }
60 
addWrappedProperties(std::vector<WrappedProperty * > & rList,ReferenceSizePropertyProvider * pRefSizePropProvider)61 void WrappedCharacterHeightProperty::addWrappedProperties( std::vector< WrappedProperty* >& rList
62             , ReferenceSizePropertyProvider* pRefSizePropProvider  )
63 {
64     rList.push_back( new WrappedCharacterHeightProperty( pRefSizePropProvider ) );
65     rList.push_back( new WrappedAsianCharacterHeightProperty( pRefSizePropProvider ) );
66     rList.push_back( new WrappedComplexCharacterHeightProperty( pRefSizePropProvider ) );
67 }
68 
setPropertyValue(const Any & rOuterValue,const Reference<beans::XPropertySet> & xInnerPropertySet) const69 void WrappedCharacterHeightProperty_Base::setPropertyValue( const Any& rOuterValue, const Reference< beans::XPropertySet >& xInnerPropertySet ) const
70 {
71     if(xInnerPropertySet.is())
72     {
73         if( m_pRefSizePropProvider )
74             m_pRefSizePropProvider->updateReferenceSize();
75         xInnerPropertySet->setPropertyValue( m_aInnerName, rOuterValue );
76     }
77 }
78 
getPropertyValue(const Reference<beans::XPropertySet> & xInnerPropertySet) const79 Any WrappedCharacterHeightProperty_Base::getPropertyValue( const Reference< beans::XPropertySet >& xInnerPropertySet ) const
80 {
81     Any aRet;
82     if( xInnerPropertySet.is() )
83     {
84         aRet = xInnerPropertySet->getPropertyValue( m_aInnerName );
85         float fHeight = 0;
86         if( aRet >>= fHeight )
87         {
88             if( m_pRefSizePropProvider )
89             {
90                 awt::Size aReferenceSize;
91                 if( m_pRefSizePropProvider->getReferenceSize() >>= aReferenceSize )
92                 {
93                     awt::Size aCurrentSize = m_pRefSizePropProvider->getCurrentSizeForReference();
94                     aRet <<= static_cast< float >(
95                             RelativeSizeHelper::calculate( fHeight, aReferenceSize, aCurrentSize ));
96                 }
97             }
98         }
99     }
100     return aRet;
101 }
102 
getPropertyDefault(const Reference<beans::XPropertyState> & xInnerPropertyState) const103 Any WrappedCharacterHeightProperty_Base::getPropertyDefault( const Reference< beans::XPropertyState >& xInnerPropertyState ) const
104 {
105     Any aRet;
106     if( xInnerPropertyState.is() )
107     {
108         aRet = xInnerPropertyState->getPropertyDefault( m_aInnerName );
109     }
110     return aRet;
111 }
112 
getPropertyState(const Reference<beans::XPropertyState> &) const113 beans::PropertyState WrappedCharacterHeightProperty_Base::getPropertyState( const Reference< beans::XPropertyState >& /*xInnerPropertyState*/ ) const
114 {
115     return beans::PropertyState_DIRECT_VALUE;
116 }
117 
convertInnerToOuterValue(const Any & rInnerValue) const118 Any WrappedCharacterHeightProperty_Base::convertInnerToOuterValue( const Any& rInnerValue ) const
119 {
120     OSL_ASSERT("should not be used: WrappedCharacterHeightProperty_Base::convertInnerToOuterValue - check if you miss data");
121     return rInnerValue;
122 }
convertOuterToInnerValue(const Any & rOuterValue) const123 Any WrappedCharacterHeightProperty_Base::convertOuterToInnerValue( const Any& rOuterValue ) const
124 {
125     OSL_ASSERT("should not be used: WrappedCharacterHeightProperty_Base::convertOuterToInnerValue - check if you miss data");
126     return rOuterValue;
127 }
128 
129 //-----------------------------------------------------------------------------
130 //-----------------------------------------------------------------------------
131 //-----------------------------------------------------------------------------
132 
WrappedCharacterHeightProperty(ReferenceSizePropertyProvider * pRefSizePropProvider)133 WrappedCharacterHeightProperty::WrappedCharacterHeightProperty( ReferenceSizePropertyProvider* pRefSizePropProvider )
134         : WrappedCharacterHeightProperty_Base( C2U( "CharHeight" ), pRefSizePropProvider )
135 {
136 }
~WrappedCharacterHeightProperty()137 WrappedCharacterHeightProperty::~WrappedCharacterHeightProperty()
138 {
139 }
140 
141 //-----------------------------------------------------------------------------
142 
WrappedAsianCharacterHeightProperty(ReferenceSizePropertyProvider * pRefSizePropProvider)143 WrappedAsianCharacterHeightProperty::WrappedAsianCharacterHeightProperty( ReferenceSizePropertyProvider* pRefSizePropProvider )
144         : WrappedCharacterHeightProperty_Base( C2U( "CharHeightAsian" ), pRefSizePropProvider )
145 {
146 }
~WrappedAsianCharacterHeightProperty()147 WrappedAsianCharacterHeightProperty::~WrappedAsianCharacterHeightProperty()
148 {
149 }
150 
151 //-----------------------------------------------------------------------------
152 
WrappedComplexCharacterHeightProperty(ReferenceSizePropertyProvider * pRefSizePropProvider)153 WrappedComplexCharacterHeightProperty::WrappedComplexCharacterHeightProperty( ReferenceSizePropertyProvider* pRefSizePropProvider )
154         : WrappedCharacterHeightProperty_Base( C2U( "CharHeightComplex" ), pRefSizePropProvider )
155 {
156 }
~WrappedComplexCharacterHeightProperty()157 WrappedComplexCharacterHeightProperty::~WrappedComplexCharacterHeightProperty()
158 {
159 }
160 
161 } //namespace wrapper
162 } //namespace chart
163 //.............................................................................
164