Branch data Line data Source code
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 : : #include <vbahelper/vbapagesetupbase.hxx>
20 : :
21 : : using namespace ::com::sun::star;
22 : : using namespace ::ooo::vba;
23 : :
24 : 0 : VbaPageSetupBase::VbaPageSetupBase(const uno::Reference< XHelperInterface >& xParent,
25 : 0 : const uno::Reference< uno::XComponentContext >& xContext ) throw (uno::RuntimeException): VbaPageSetupBase_BASE( xParent, xContext )
26 : : {
27 : 0 : }
28 : :
29 : 0 : double SAL_CALL VbaPageSetupBase::getTopMargin() throw (css::uno::RuntimeException)
30 : : {
31 : 0 : sal_Bool headerOn = sal_False;
32 : 0 : sal_Int32 topMargin = 0;
33 : 0 : sal_Int32 headerHeight = 0;
34 : :
35 : : try
36 : : {
37 [ # # ][ # # ]: 0 : uno::Any aValue = mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HeaderIsOn")));
[ # # ]
38 : 0 : aValue >>= headerOn;
39 : :
40 [ # # ][ # # ]: 0 : aValue = mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("TopMargin")));
[ # # ]
41 : 0 : aValue >>= topMargin;
42 : :
43 [ # # ]: 0 : if( headerOn )
44 : : {
45 [ # # ][ # # ]: 0 : aValue = mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HeaderHeight")));
[ # # ]
46 : 0 : aValue >>= headerHeight;
47 : 0 : topMargin = topMargin + headerHeight;
48 [ # # ]: 0 : }
49 : : }
50 [ # # ]: 0 : catch( uno::Exception& )
51 : : {
52 : : }
53 : :
54 [ # # ]: 0 : return Millimeter::getInPoints( topMargin );
55 : : }
56 : :
57 : 0 : void SAL_CALL VbaPageSetupBase::setTopMargin( double margin ) throw (css::uno::RuntimeException)
58 : : {
59 [ # # ]: 0 : sal_Int32 topMargin = Millimeter::getInHundredthsOfOneMillimeter( margin );
60 : 0 : sal_Bool headerOn = sal_False;
61 : 0 : sal_Int32 headerHeight = 0;
62 : :
63 : : try
64 : : {
65 [ # # ][ # # ]: 0 : uno::Any aValue = mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HeaderIsOn")));
[ # # ]
66 : 0 : aValue >>= headerOn;
67 : :
68 [ # # ]: 0 : if( headerOn )
69 : : {
70 [ # # ][ # # ]: 0 : aValue = mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HeaderHeight")));
[ # # ]
71 : 0 : aValue >>= headerHeight;
72 : 0 : topMargin -= headerHeight;
73 : : }
74 : :
75 [ # # ]: 0 : aValue <<= topMargin;
76 [ # # ][ # # ]: 0 : mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("TopMargin")), aValue );
[ # # ][ # # ]
77 : : }
78 [ # # ]: 0 : catch( uno::Exception& )
79 : : {
80 : : }
81 : 0 : }
82 : :
83 : 0 : double SAL_CALL VbaPageSetupBase::getBottomMargin() throw (css::uno::RuntimeException)
84 : : {
85 : 0 : sal_Bool footerOn = sal_False;
86 : 0 : sal_Int32 bottomMargin = 0;
87 : 0 : sal_Int32 footerHeight = 0;
88 : :
89 : : try
90 : : {
91 [ # # ][ # # ]: 0 : uno::Any aValue = mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FooterIsOn")));
[ # # ]
92 : 0 : aValue >>= footerOn;
93 : :
94 [ # # ][ # # ]: 0 : aValue = mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("BottomMargin")));
[ # # ]
95 : 0 : aValue >>= bottomMargin;
96 : :
97 [ # # ]: 0 : if( footerOn )
98 : : {
99 [ # # ][ # # ]: 0 : aValue = mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FooterHeight")));
[ # # ]
100 : 0 : aValue >>= footerHeight;
101 : 0 : bottomMargin += footerHeight;
102 [ # # ]: 0 : }
103 : : }
104 [ # # ]: 0 : catch( uno::Exception& )
105 : : {
106 : : }
107 : :
108 [ # # ]: 0 : return Millimeter::getInPoints( bottomMargin );
109 : : }
110 : :
111 : 0 : void SAL_CALL VbaPageSetupBase::setBottomMargin( double margin ) throw (css::uno::RuntimeException)
112 : : {
113 [ # # ]: 0 : sal_Int32 bottomMargin = Millimeter::getInHundredthsOfOneMillimeter( margin );
114 : 0 : sal_Bool footerOn = sal_False;
115 : 0 : sal_Int32 footerHeight = 0;
116 : :
117 : : try
118 : : {
119 [ # # ][ # # ]: 0 : uno::Any aValue = mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FooterIsOn")));
[ # # ]
120 : 0 : aValue >>= footerOn;
121 : :
122 [ # # ]: 0 : if( footerOn )
123 : : {
124 [ # # ][ # # ]: 0 : aValue = mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FooterHeight")));
[ # # ]
125 : 0 : aValue >>= footerHeight;
126 : 0 : bottomMargin -= footerHeight;
127 : : }
128 : :
129 [ # # ]: 0 : aValue <<= bottomMargin;
130 [ # # ][ # # ]: 0 : mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("BottomMargin")), aValue );
[ # # ][ # # ]
131 : : }
132 [ # # ]: 0 : catch( uno::Exception& )
133 : : {
134 : : }
135 : 0 : }
136 : :
137 : 0 : double SAL_CALL VbaPageSetupBase::getRightMargin() throw (css::uno::RuntimeException)
138 : : {
139 : 0 : sal_Int32 rightMargin = 0;
140 : : try
141 : : {
142 [ # # ][ # # ]: 0 : uno::Any aValue = mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("RightMargin")));
[ # # ][ # # ]
143 : 0 : aValue >>= rightMargin;
144 : : }
145 [ # # ]: 0 : catch( uno::Exception& )
146 : : {
147 : : }
148 : :
149 [ # # ]: 0 : return Millimeter::getInPoints( rightMargin );
150 : : }
151 : :
152 : 0 : void SAL_CALL VbaPageSetupBase::setRightMargin( double margin ) throw (css::uno::RuntimeException)
153 : : {
154 [ # # ]: 0 : sal_Int32 rightMargin = Millimeter::getInHundredthsOfOneMillimeter( margin );
155 : : try
156 : : {
157 : 0 : uno::Any aValue;
158 [ # # ]: 0 : aValue <<= rightMargin;
159 [ # # ][ # # ]: 0 : mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("RightMargin")), aValue );
[ # # ][ # # ]
160 : : }
161 [ # # ]: 0 : catch( uno::Exception& )
162 : : {
163 : : }
164 : :
165 : 0 : }
166 : :
167 : 0 : double SAL_CALL VbaPageSetupBase::getLeftMargin() throw (css::uno::RuntimeException)
168 : : {
169 : 0 : sal_Int32 leftMargin = 0;
170 : : try
171 : : {
172 [ # # ][ # # ]: 0 : uno::Any aValue = mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("LeftMargin")));
[ # # ][ # # ]
173 : 0 : aValue >>= leftMargin;
174 : : }
175 [ # # ]: 0 : catch( uno::Exception& )
176 : : {
177 : : }
178 : :
179 [ # # ]: 0 : return Millimeter::getInPoints( leftMargin );
180 : : }
181 : :
182 : 0 : void SAL_CALL VbaPageSetupBase::setLeftMargin( double margin ) throw (css::uno::RuntimeException)
183 : : {
184 [ # # ]: 0 : sal_Int32 leftMargin = Millimeter::getInHundredthsOfOneMillimeter( margin );
185 : : try
186 : : {
187 : 0 : uno::Any aValue;
188 [ # # ]: 0 : aValue <<= leftMargin;
189 [ # # ][ # # ]: 0 : mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("LeftMargin")), aValue );
[ # # ][ # # ]
190 : : }
191 [ # # ]: 0 : catch( uno::Exception& )
192 : : {
193 : : }
194 : 0 : }
195 : :
196 : 0 : double SAL_CALL VbaPageSetupBase::getHeaderMargin() throw (css::uno::RuntimeException)
197 : : {
198 : 0 : sal_Int32 headerMargin = 0;
199 : : try
200 : : {
201 [ # # ][ # # ]: 0 : uno::Any aValue = mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("TopMargin")));
[ # # ][ # # ]
202 : 0 : aValue >>= headerMargin;
203 : : }
204 [ # # ]: 0 : catch( uno::Exception& )
205 : : {
206 : : }
207 : :
208 [ # # ]: 0 : return Millimeter::getInPoints( headerMargin );
209 : : }
210 : :
211 : 0 : void SAL_CALL VbaPageSetupBase::setHeaderMargin( double margin ) throw (css::uno::RuntimeException)
212 : : {
213 [ # # ]: 0 : sal_Int32 headerMargin = Millimeter::getInHundredthsOfOneMillimeter( margin );
214 : : try
215 : : {
216 : 0 : uno::Any aValue;
217 [ # # ]: 0 : aValue <<= headerMargin;
218 [ # # ][ # # ]: 0 : mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("TopMargin")), aValue );
[ # # ][ # # ]
219 : : }
220 [ # # ]: 0 : catch( uno::Exception& )
221 : : {
222 : : }
223 : 0 : }
224 : :
225 : 0 : double SAL_CALL VbaPageSetupBase::getFooterMargin() throw (css::uno::RuntimeException)
226 : : {
227 : 0 : sal_Int32 footerMargin = 0;
228 : : try
229 : : {
230 [ # # ][ # # ]: 0 : uno::Any aValue = mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("BottomMargin")));
[ # # ][ # # ]
231 : 0 : aValue >>= footerMargin;
232 : : }
233 [ # # ]: 0 : catch( uno::Exception& )
234 : : {
235 : : }
236 : :
237 [ # # ]: 0 : return Millimeter::getInPoints( footerMargin );
238 : : }
239 : :
240 : 0 : void SAL_CALL VbaPageSetupBase::setFooterMargin( double margin ) throw (css::uno::RuntimeException)
241 : : {
242 [ # # ]: 0 : sal_Int32 footerMargin = Millimeter::getInHundredthsOfOneMillimeter( margin );
243 : : try
244 : : {
245 : 0 : uno::Any aValue;
246 [ # # ]: 0 : aValue <<= footerMargin;
247 [ # # ][ # # ]: 0 : mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("BottomMargin")), aValue );
[ # # ][ # # ]
248 : : }
249 [ # # ]: 0 : catch( uno::Exception& )
250 : : {
251 : : }
252 : 0 : }
253 : :
254 : 0 : sal_Int32 SAL_CALL VbaPageSetupBase::getOrientation() throw (css::uno::RuntimeException)
255 : : {
256 : 0 : sal_Int32 orientation = mnOrientPortrait;
257 : : try
258 : : {
259 : 0 : sal_Bool isLandscape = sal_False;
260 [ # # ][ # # ]: 0 : uno::Any aValue = mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("IsLandscape")));
[ # # ][ # # ]
261 : 0 : aValue >>= isLandscape;
262 : :
263 [ # # ]: 0 : if( isLandscape )
264 : : {
265 : 0 : orientation = mnOrientLandscape;
266 : 0 : }
267 : : }
268 : 0 : catch( uno::Exception& )
269 : : {
270 : : }
271 : 0 : return orientation;
272 : : }
273 : :
274 : 0 : void SAL_CALL VbaPageSetupBase::setOrientation( sal_Int32 orientation ) throw (css::uno::RuntimeException)
275 : : {
276 [ # # ][ # # ]: 0 : if( ( orientation != mnOrientPortrait ) &&
277 : : ( orientation != mnOrientLandscape ) )
278 : : {
279 [ # # ]: 0 : DebugHelper::exception(SbERR_BAD_PARAMETER, rtl::OUString() );
280 : : }
281 : :
282 : : try
283 : : {
284 : 0 : sal_Bool isLandscape = sal_False;
285 [ # # ][ # # ]: 0 : uno::Any aValue = mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("IsLandscape")));
[ # # ]
286 : 0 : aValue >>= isLandscape;
287 : :
288 : 0 : sal_Bool switchOrientation = sal_False;
289 [ # # ][ # # ]: 0 : if(( isLandscape && orientation != mnOrientLandscape ) ||
[ # # ][ # # ]
290 : 0 : ( !isLandscape && orientation != mnOrientPortrait ))
291 : : {
292 : 0 : switchOrientation = sal_True;
293 : : }
294 : :
295 [ # # ]: 0 : if( switchOrientation )
296 : : {
297 [ # # ]: 0 : aValue <<= !isLandscape;
298 [ # # ][ # # ]: 0 : uno::Any aHeight = mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Height")));
[ # # ]
299 [ # # ][ # # ]: 0 : uno::Any aWidth = mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Width")));
[ # # ]
300 [ # # ][ # # ]: 0 : mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("IsLandscape")), aValue );
[ # # ]
301 [ # # ][ # # ]: 0 : mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Width")), aHeight );
[ # # ]
302 [ # # ][ # # ]: 0 : mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Height")), aWidth );
[ # # ]
303 [ # # ]: 0 : }
304 : : }
305 : 0 : catch( uno::Exception& )
306 : : {
307 : : }
308 : 0 : }
309 : :
310 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|