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_chart2.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                 throw (beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
71 {
72     if(xInnerPropertySet.is())
73     {
74         if( m_pRefSizePropProvider )
75             m_pRefSizePropProvider->updateReferenceSize();
76         xInnerPropertySet->setPropertyValue( m_aInnerName, rOuterValue );
77     }
78 }
79 
getPropertyValue(const Reference<beans::XPropertySet> & xInnerPropertySet) const80 Any WrappedCharacterHeightProperty_Base::getPropertyValue( const Reference< beans::XPropertySet >& xInnerPropertySet ) const
81                         throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
82 {
83     Any aRet;
84     if( xInnerPropertySet.is() )
85     {
86         aRet = xInnerPropertySet->getPropertyValue( m_aInnerName );
87         float fHeight = 0;
88         if( aRet >>= fHeight )
89         {
90             if( m_pRefSizePropProvider )
91             {
92                 awt::Size aReferenceSize;
93                 if( m_pRefSizePropProvider->getReferenceSize() >>= aReferenceSize )
94                 {
95                     awt::Size aCurrentSize = m_pRefSizePropProvider->getCurrentSizeForReference();
96                     aRet <<= static_cast< float >(
97                             RelativeSizeHelper::calculate( fHeight, aReferenceSize, aCurrentSize ));
98                 }
99             }
100         }
101     }
102     return aRet;
103 }
104 
getPropertyDefault(const Reference<beans::XPropertyState> & xInnerPropertyState) const105 Any WrappedCharacterHeightProperty_Base::getPropertyDefault( const Reference< beans::XPropertyState >& xInnerPropertyState ) const
106                         throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
107 {
108     Any aRet;
109     if( xInnerPropertyState.is() )
110     {
111         aRet = xInnerPropertyState->getPropertyDefault( m_aInnerName );
112     }
113     return aRet;
114 }
115 
getPropertyState(const Reference<beans::XPropertyState> &) const116 beans::PropertyState WrappedCharacterHeightProperty_Base::getPropertyState( const Reference< beans::XPropertyState >& /*xInnerPropertyState*/ ) const
117                         throw (beans::UnknownPropertyException, uno::RuntimeException)
118 {
119     return beans::PropertyState_DIRECT_VALUE;
120 }
121 
convertInnerToOuterValue(const Any & rInnerValue) const122 Any WrappedCharacterHeightProperty_Base::convertInnerToOuterValue( const Any& rInnerValue ) const
123 {
124     OSL_ASSERT("should not be used: WrappedCharacterHeightProperty_Base::convertInnerToOuterValue - check if you miss data");
125     return rInnerValue;
126 }
convertOuterToInnerValue(const Any & rOuterValue) const127 Any WrappedCharacterHeightProperty_Base::convertOuterToInnerValue( const Any& rOuterValue ) const
128 {
129     OSL_ASSERT("should not be used: WrappedCharacterHeightProperty_Base::convertOuterToInnerValue - check if you miss data");
130     return rOuterValue;
131 }
132 
133 //-----------------------------------------------------------------------------
134 //-----------------------------------------------------------------------------
135 //-----------------------------------------------------------------------------
136 
WrappedCharacterHeightProperty(ReferenceSizePropertyProvider * pRefSizePropProvider)137 WrappedCharacterHeightProperty::WrappedCharacterHeightProperty( ReferenceSizePropertyProvider* pRefSizePropProvider )
138         : WrappedCharacterHeightProperty_Base( C2U( "CharHeight" ), pRefSizePropProvider )
139 {
140 }
~WrappedCharacterHeightProperty()141 WrappedCharacterHeightProperty::~WrappedCharacterHeightProperty()
142 {
143 }
144 
145 //-----------------------------------------------------------------------------
146 
WrappedAsianCharacterHeightProperty(ReferenceSizePropertyProvider * pRefSizePropProvider)147 WrappedAsianCharacterHeightProperty::WrappedAsianCharacterHeightProperty( ReferenceSizePropertyProvider* pRefSizePropProvider )
148         : WrappedCharacterHeightProperty_Base( C2U( "CharHeightAsian" ), pRefSizePropProvider )
149 {
150 }
~WrappedAsianCharacterHeightProperty()151 WrappedAsianCharacterHeightProperty::~WrappedAsianCharacterHeightProperty()
152 {
153 }
154 
155 //-----------------------------------------------------------------------------
156 
WrappedComplexCharacterHeightProperty(ReferenceSizePropertyProvider * pRefSizePropProvider)157 WrappedComplexCharacterHeightProperty::WrappedComplexCharacterHeightProperty( ReferenceSizePropertyProvider* pRefSizePropProvider )
158         : WrappedCharacterHeightProperty_Base( C2U( "CharHeightComplex" ), pRefSizePropProvider )
159 {
160 }
~WrappedComplexCharacterHeightProperty()161 WrappedComplexCharacterHeightProperty::~WrappedComplexCharacterHeightProperty()
162 {
163 }
164 
165 } //namespace wrapper
166 } //namespace chart
167 //.............................................................................
168