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 "formcontrolfont.hxx"
30 : : #include "property.hrc"
31 : : #include "property.hxx"
32 : : #include <comphelper/property.hxx>
33 : : #include <comphelper/types.hxx>
34 : : #include <tools/color.hxx>
35 : : #include <toolkit/helper/emptyfontdescriptor.hxx>
36 : : #include <com/sun/star/awt/FontRelief.hpp>
37 : : #include <com/sun/star/awt/FontEmphasisMark.hpp>
38 : :
39 : : //.........................................................................
40 : : namespace frm
41 : : {
42 : : //.........................................................................
43 : :
44 : : using namespace ::comphelper;
45 : : using namespace ::com::sun::star::uno;
46 : : using namespace ::com::sun::star::awt;
47 : : using namespace ::com::sun::star::lang;
48 : : using namespace ::com::sun::star::beans;
49 : :
50 : : //------------------------------------------------------------------------------
51 : : namespace
52 : : {
53 : 4496 : Any lcl_extractFontDescriptorAggregate( sal_Int32 _nHandle, const FontDescriptor& _rFont )
54 : : {
55 : 4496 : Any aValue;
56 [ + + + + : 4496 : switch ( _nHandle )
+ + + + +
+ + + + +
+ + - ]
57 : : {
58 : : case PROPERTY_ID_FONT_NAME:
59 [ + - ]: 304 : aValue <<= _rFont.Name;
60 : 304 : break;
61 : :
62 : : case PROPERTY_ID_FONT_STYLENAME:
63 [ + - ]: 304 : aValue <<= _rFont.StyleName;
64 : 304 : break;
65 : :
66 : : case PROPERTY_ID_FONT_FAMILY:
67 [ + - ]: 301 : aValue <<= (sal_Int16)_rFont.Family;
68 : 301 : break;
69 : :
70 : : case PROPERTY_ID_FONT_CHARSET:
71 [ + - ]: 301 : aValue <<= (sal_Int16)_rFont.CharSet;
72 : 301 : break;
73 : :
74 : : case PROPERTY_ID_FONT_CHARWIDTH:
75 [ + - ]: 245 : aValue <<= _rFont.CharacterWidth;
76 : 245 : break;
77 : :
78 : : case PROPERTY_ID_FONT_KERNING:
79 [ + - ]: 243 : aValue <<= _rFont.Kerning;
80 : 243 : break;
81 : :
82 : : case PROPERTY_ID_FONT_ORIENTATION:
83 [ + - ]: 243 : aValue <<= _rFont.Orientation;
84 : 243 : break;
85 : :
86 : : case PROPERTY_ID_FONT_PITCH:
87 [ + - ]: 243 : aValue <<= _rFont.Pitch;
88 : 243 : break;
89 : :
90 : : case PROPERTY_ID_FONT_TYPE:
91 [ + - ]: 243 : aValue <<= _rFont.Type;
92 : 243 : break;
93 : :
94 : : case PROPERTY_ID_FONT_WIDTH:
95 [ + - ]: 243 : aValue <<= _rFont.Width;
96 : 243 : break;
97 : :
98 : : case PROPERTY_ID_FONT_HEIGHT:
99 [ + - ]: 306 : aValue <<= (float)( _rFont.Height );
100 : 306 : break;
101 : :
102 : : case PROPERTY_ID_FONT_WEIGHT:
103 [ + - ]: 305 : aValue <<= (float)_rFont.Weight;
104 : 305 : break;
105 : :
106 : : case PROPERTY_ID_FONT_SLANT:
107 [ + - ]: 304 : aValue = makeAny(_rFont.Slant);
108 : 304 : break;
109 : :
110 : : case PROPERTY_ID_FONT_UNDERLINE:
111 [ + - ]: 306 : aValue <<= (sal_Int16)_rFont.Underline;
112 : 306 : break;
113 : :
114 : : case PROPERTY_ID_FONT_STRIKEOUT:
115 [ + - ]: 304 : aValue <<= (sal_Int16)_rFont.Strikeout;
116 : 304 : break;
117 : :
118 : : case PROPERTY_ID_FONT_WORDLINEMODE:
119 [ + - ]: 301 : aValue = makeAny( (sal_Bool)_rFont.WordLineMode );
120 : 301 : break;
121 : :
122 : : default:
123 : : OSL_FAIL( "lcl_extractFontDescriptorAggregate: invalid handle!" );
124 : 0 : break;
125 : : }
126 : 4496 : return aValue;
127 : : }
128 : : }
129 : :
130 : : //=====================================================================
131 : : //= FontControlModel
132 : : //=====================================================================
133 : : //---------------------------------------------------------------------
134 : 245 : FontControlModel::FontControlModel( bool _bToolkitCompatibleDefaults )
135 : : :m_nFontRelief( FontRelief::NONE )
136 : : ,m_nFontEmphasis( FontEmphasisMark::NONE )
137 : 245 : ,m_bToolkitCompatibleDefaults( _bToolkitCompatibleDefaults )
138 : : {
139 : 245 : }
140 : :
141 : : //---------------------------------------------------------------------
142 : 8 : FontControlModel::FontControlModel( const FontControlModel* _pOriginal )
143 : : {
144 : 8 : m_aFont = _pOriginal->m_aFont;
145 : 8 : m_nFontRelief = _pOriginal->m_nFontRelief;
146 : 8 : m_nFontEmphasis = _pOriginal->m_nFontEmphasis;
147 : 8 : m_aTextLineColor = _pOriginal->m_aTextLineColor;
148 : 8 : m_aTextColor = _pOriginal->m_aTextColor;
149 : 8 : m_bToolkitCompatibleDefaults = _pOriginal->m_bToolkitCompatibleDefaults;
150 : 8 : }
151 : :
152 : : //---------------------------------------------------------------------
153 : 10294 : bool FontControlModel::isFontRelatedProperty( sal_Int32 _nPropertyHandle ) const
154 : : {
155 : 10294 : return isFontAggregateProperty( _nPropertyHandle )
156 : : || ( _nPropertyHandle == PROPERTY_ID_FONT )
157 : : || ( _nPropertyHandle == PROPERTY_ID_FONTEMPHASISMARK )
158 : : || ( _nPropertyHandle == PROPERTY_ID_FONTRELIEF )
159 : : || ( _nPropertyHandle == PROPERTY_ID_TEXTLINECOLOR )
160 [ + + ][ + + ]: 10294 : || ( _nPropertyHandle == PROPERTY_ID_TEXTCOLOR );
[ + + ][ + + ]
[ + + ][ + + ]
161 : : }
162 : :
163 : : //---------------------------------------------------------------------
164 : 10584 : bool FontControlModel::isFontAggregateProperty( sal_Int32 _nPropertyHandle ) const
165 : : {
166 : : return ( _nPropertyHandle == PROPERTY_ID_FONT_CHARWIDTH )
167 : : || ( _nPropertyHandle == PROPERTY_ID_FONT_ORIENTATION )
168 : : || ( _nPropertyHandle == PROPERTY_ID_FONT_WIDTH )
169 : : || ( _nPropertyHandle == PROPERTY_ID_FONT_NAME )
170 : : || ( _nPropertyHandle == PROPERTY_ID_FONT_STYLENAME )
171 : : || ( _nPropertyHandle == PROPERTY_ID_FONT_FAMILY )
172 : : || ( _nPropertyHandle == PROPERTY_ID_FONT_CHARSET )
173 : : || ( _nPropertyHandle == PROPERTY_ID_FONT_HEIGHT )
174 : : || ( _nPropertyHandle == PROPERTY_ID_FONT_WEIGHT )
175 : : || ( _nPropertyHandle == PROPERTY_ID_FONT_SLANT )
176 : : || ( _nPropertyHandle == PROPERTY_ID_FONT_UNDERLINE )
177 : : || ( _nPropertyHandle == PROPERTY_ID_FONT_STRIKEOUT )
178 : : || ( _nPropertyHandle == PROPERTY_ID_FONT_WORDLINEMODE )
179 : : || ( _nPropertyHandle == PROPERTY_ID_FONT_PITCH )
180 : : || ( _nPropertyHandle == PROPERTY_ID_FONT_KERNING )
181 [ + + ][ + + ]: 10584 : || ( _nPropertyHandle == PROPERTY_ID_FONT_TYPE );
[ + + ][ + + ]
[ + + ][ + + ]
[ + + ][ + + ]
[ + + ][ + + ]
[ + + ][ + + ]
[ + + ][ + + ]
[ + + ][ + + ]
182 : : }
183 : :
184 : : //---------------------------------------------------------------------
185 : 0 : sal_Int32 FontControlModel::getTextColor( ) const
186 : : {
187 : 0 : sal_Int32 nColor = COL_TRANSPARENT;
188 : 0 : m_aTextColor >>= nColor;
189 : 0 : return nColor;
190 : : }
191 : :
192 : : //---------------------------------------------------------------------
193 : 0 : sal_Int32 FontControlModel::getTextLineColor( ) const
194 : : {
195 : 0 : sal_Int32 nColor = COL_TRANSPARENT;
196 : 0 : m_aTextLineColor >>= nColor;
197 : 0 : return nColor;
198 : : }
199 : :
200 : : //------------------------------------------------------------------------------
201 : 228 : void FontControlModel::describeFontRelatedProperties( Sequence< Property >& /* [out] */ _rProps ) const
202 : : {
203 : 228 : sal_Int32 nPos = _rProps.getLength();
204 : 228 : _rProps.realloc( nPos + 21 );
205 : 228 : Property* pProperties = _rProps.getArray();
206 : :
207 [ + - ][ + - ]: 228 : DECL_PROP2 ( FONT, FontDescriptor, BOUND, MAYBEDEFAULT );
208 [ + - ][ + - ]: 228 : DECL_PROP2 ( FONTEMPHASISMARK, sal_Int16, BOUND, MAYBEDEFAULT );
209 [ + - ][ + - ]: 228 : DECL_PROP2 ( FONTRELIEF, sal_Int16, BOUND, MAYBEDEFAULT );
210 [ + - ][ + - ]: 228 : DECL_PROP3 ( TEXTCOLOR, sal_Int32, BOUND, MAYBEDEFAULT, MAYBEVOID );
211 [ + - ][ + - ]: 228 : DECL_PROP3 ( TEXTLINECOLOR, sal_Int32, BOUND, MAYBEDEFAULT, MAYBEVOID );
212 : :
213 [ + - ]: 228 : DECL_PROP1 ( FONT_CHARWIDTH, float, MAYBEDEFAULT );
214 [ + - ]: 228 : DECL_BOOL_PROP1 ( FONT_KERNING, MAYBEDEFAULT );
215 [ + - ]: 228 : DECL_PROP1 ( FONT_ORIENTATION, float, MAYBEDEFAULT );
216 [ + - ]: 228 : DECL_PROP1 ( FONT_PITCH, sal_Int16, MAYBEDEFAULT );
217 [ + - ]: 228 : DECL_PROP1 ( FONT_TYPE, sal_Int16, MAYBEDEFAULT );
218 [ + - ]: 228 : DECL_PROP1 ( FONT_WIDTH, sal_Int16, MAYBEDEFAULT );
219 [ + - ]: 228 : DECL_PROP1 ( FONT_NAME, ::rtl::OUString, MAYBEDEFAULT );
220 [ + - ]: 228 : DECL_PROP1 ( FONT_STYLENAME, ::rtl::OUString, MAYBEDEFAULT );
221 [ + - ]: 228 : DECL_PROP1 ( FONT_FAMILY, sal_Int16, MAYBEDEFAULT );
222 [ + - ]: 228 : DECL_PROP1 ( FONT_CHARSET, sal_Int16, MAYBEDEFAULT );
223 [ + - ]: 228 : DECL_PROP1 ( FONT_HEIGHT, float, MAYBEDEFAULT );
224 [ + - ]: 228 : DECL_PROP1 ( FONT_WEIGHT, float, MAYBEDEFAULT );
225 [ + - ]: 228 : DECL_PROP1 ( FONT_SLANT, sal_Int16, MAYBEDEFAULT );
226 [ + - ]: 228 : DECL_PROP1 ( FONT_UNDERLINE, sal_Int16, MAYBEDEFAULT );
227 [ + - ]: 228 : DECL_PROP1 ( FONT_STRIKEOUT, sal_Int16, MAYBEDEFAULT );
228 [ + - ]: 228 : DECL_BOOL_PROP1 ( FONT_WORDLINEMODE, MAYBEDEFAULT );
229 : 228 : }
230 : :
231 : : //---------------------------------------------------------------------
232 : 6478 : void FontControlModel::getFastPropertyValue( Any& _rValue, sal_Int32 _nHandle ) const
233 : : {
234 [ + + + + : 6478 : switch( _nHandle )
+ + ]
235 : : {
236 : : case PROPERTY_ID_TEXTCOLOR:
237 : 283 : _rValue = m_aTextColor;
238 : 283 : break;
239 : :
240 : : case PROPERTY_ID_FONTEMPHASISMARK:
241 : 471 : _rValue <<= m_nFontEmphasis;
242 : 471 : break;
243 : :
244 : : case PROPERTY_ID_FONTRELIEF:
245 : 472 : _rValue <<= m_nFontRelief;
246 : 472 : break;
247 : :
248 : : case PROPERTY_ID_TEXTLINECOLOR:
249 : 281 : _rValue = m_aTextLineColor;
250 : 281 : break;
251 : :
252 : : case PROPERTY_ID_FONT:
253 : 475 : _rValue = makeAny( m_aFont );
254 : 475 : break;
255 : :
256 : : default:
257 : 4496 : _rValue = lcl_extractFontDescriptorAggregate( _nHandle, m_aFont );
258 : 4496 : break;
259 : : }
260 : 6478 : }
261 : :
262 : : //---------------------------------------------------------------------
263 : 817 : sal_Bool FontControlModel::convertFastPropertyValue( Any& _rConvertedValue, Any& _rOldValue,
264 : : sal_Int32 _nHandle, const Any& _rValue ) throw( IllegalArgumentException )
265 : : {
266 : 817 : sal_Bool bModified = sal_False;
267 [ + + + + : 817 : switch( _nHandle )
+ + + + +
+ + + + +
+ + + + +
+ + - ]
268 : : {
269 : : case PROPERTY_ID_TEXTCOLOR:
270 : 9 : bModified = tryPropertyValue( _rConvertedValue, _rOldValue, _rValue, m_aTextColor, ::getCppuType( static_cast< const sal_Int32* >( NULL ) ) );
271 : 9 : break;
272 : :
273 : : case PROPERTY_ID_TEXTLINECOLOR:
274 : 6 : bModified = tryPropertyValue( _rConvertedValue, _rOldValue, _rValue, m_aTextLineColor, ::getCppuType( static_cast< sal_Int32* >( NULL ) ) );
275 : 6 : break;
276 : :
277 : : case PROPERTY_ID_FONTEMPHASISMARK:
278 : 172 : bModified = tryPropertyValue( _rConvertedValue, _rOldValue, _rValue, m_nFontEmphasis );
279 : 172 : break;
280 : :
281 : : case PROPERTY_ID_FONTRELIEF:
282 : 172 : bModified = tryPropertyValue( _rConvertedValue, _rOldValue, _rValue, m_nFontRelief );
283 : 172 : break;
284 : :
285 : : case PROPERTY_ID_FONT:
286 : : {
287 [ + - ]: 174 : Any aWorkAroundGccLimitation = makeAny( m_aFont );
288 [ + - ][ + - ]: 174 : bModified = tryPropertyValue( _rConvertedValue, _rOldValue, _rValue, aWorkAroundGccLimitation, ::getCppuType( &m_aFont ) );
289 : : }
290 : 174 : break;
291 : :
292 : : case PROPERTY_ID_FONT_NAME:
293 : 22 : bModified = tryPropertyValue( _rConvertedValue, _rOldValue, _rValue, m_aFont.Name );
294 : 22 : break;
295 : :
296 : : case PROPERTY_ID_FONT_STYLENAME:
297 : 20 : bModified = tryPropertyValue( _rConvertedValue, _rOldValue, _rValue, m_aFont.StyleName );
298 : 20 : break;
299 : :
300 : : case PROPERTY_ID_FONT_FAMILY:
301 [ + - ]: 19 : bModified = tryPropertyValue( _rConvertedValue, _rOldValue, _rValue, (sal_Int16)m_aFont.Family );
302 : 19 : break;
303 : :
304 : : case PROPERTY_ID_FONT_CHARSET:
305 [ + - ]: 19 : bModified = tryPropertyValue( _rConvertedValue, _rOldValue, _rValue, (sal_Int16)m_aFont.CharSet );
306 : 19 : break;
307 : :
308 : : case PROPERTY_ID_FONT_CHARWIDTH:
309 [ + - ]: 13 : bModified = tryPropertyValue( _rConvertedValue, _rOldValue, _rValue, float( m_aFont.CharacterWidth ) );
310 : 13 : break;
311 : :
312 : : case PROPERTY_ID_FONT_KERNING:
313 [ + - ]: 12 : bModified = tryPropertyValue( _rConvertedValue, _rOldValue, _rValue, (sal_Int16)m_aFont.Kerning );
314 : 12 : break;
315 : :
316 : : case PROPERTY_ID_FONT_ORIENTATION:
317 [ + - ]: 12 : bModified = tryPropertyValue( _rConvertedValue, _rOldValue, _rValue, float( m_aFont.Orientation ) );
318 : 12 : break;
319 : :
320 : : case PROPERTY_ID_FONT_PITCH:
321 [ + - ]: 15 : bModified = tryPropertyValue( _rConvertedValue, _rOldValue, _rValue, (sal_Int16)m_aFont.Pitch );
322 : 15 : break;
323 : :
324 : : case PROPERTY_ID_FONT_TYPE:
325 [ + - ]: 12 : bModified = tryPropertyValue( _rConvertedValue, _rOldValue, _rValue, (sal_Int16)m_aFont.Type );
326 : 12 : break;
327 : :
328 : : case PROPERTY_ID_FONT_WIDTH:
329 [ + - ]: 12 : bModified = tryPropertyValue( _rConvertedValue, _rOldValue, _rValue, (sal_Int16)m_aFont.Width );
330 : 12 : break;
331 : :
332 : : case PROPERTY_ID_FONT_HEIGHT:
333 [ + - ]: 23 : bModified = tryPropertyValue( _rConvertedValue, _rOldValue, _rValue, float( m_aFont.Height ) );
334 : 23 : break;
335 : :
336 : : case PROPERTY_ID_FONT_WEIGHT:
337 : 22 : bModified = tryPropertyValue( _rConvertedValue, _rOldValue, _rValue, m_aFont.Weight );
338 : 22 : break;
339 : :
340 : : case PROPERTY_ID_FONT_SLANT:
341 : 22 : bModified = tryPropertyValueEnum( _rConvertedValue, _rOldValue, _rValue, m_aFont.Slant );
342 : 22 : break;
343 : :
344 : : case PROPERTY_ID_FONT_UNDERLINE:
345 [ + - ]: 23 : bModified = tryPropertyValue( _rConvertedValue, _rOldValue, _rValue, (sal_Int16)m_aFont.Underline );
346 : 23 : break;
347 : :
348 : : case PROPERTY_ID_FONT_STRIKEOUT:
349 [ + - ]: 22 : bModified = tryPropertyValue( _rConvertedValue, _rOldValue, _rValue, (sal_Int16)m_aFont.Strikeout );
350 : 22 : break;
351 : :
352 : : case PROPERTY_ID_FONT_WORDLINEMODE:
353 : 16 : bModified = tryPropertyValue( _rConvertedValue, _rOldValue, _rValue, (sal_Bool)m_aFont.WordLineMode );
354 : 16 : break;
355 : :
356 : : default:
357 : : OSL_FAIL( "FontControlModel::convertFastPropertyValue: no font aggregate!" );
358 : : }
359 : 817 : return bModified;
360 : : }
361 : :
362 : : //------------------------------------------------------------------------------
363 : 290 : void FontControlModel::setFastPropertyValue_NoBroadcast( sal_Int32 _nHandle, const Any& _rValue ) throw ( Exception )
364 : : {
365 [ + - + + : 290 : switch( _nHandle )
+ + + + +
+ + + + +
+ + + + +
+ + - ]
366 : : {
367 : : case PROPERTY_ID_TEXTCOLOR:
368 : 3 : m_aTextColor = _rValue;
369 : 3 : break;
370 : :
371 : : case PROPERTY_ID_TEXTLINECOLOR:
372 : 0 : m_aTextLineColor = _rValue;
373 : 0 : break;
374 : :
375 : : case PROPERTY_ID_FONTEMPHASISMARK:
376 : 28 : _rValue >>= m_nFontEmphasis;
377 : 28 : break;
378 : :
379 : : case PROPERTY_ID_FONTRELIEF:
380 : 28 : _rValue >>= m_nFontRelief;
381 : 28 : break;
382 : :
383 : : case PROPERTY_ID_FONT:
384 : 32 : _rValue >>= m_aFont;
385 : 32 : break;
386 : :
387 : : case PROPERTY_ID_FONT_NAME:
388 : 18 : _rValue >>= m_aFont.Name;
389 : 18 : break;
390 : :
391 : : case PROPERTY_ID_FONT_STYLENAME:
392 : 13 : _rValue >>= m_aFont.StyleName;
393 : 13 : break;
394 : :
395 : : case PROPERTY_ID_FONT_FAMILY:
396 : 15 : _rValue >>= m_aFont.Family;
397 : 15 : break;
398 : :
399 : : case PROPERTY_ID_FONT_CHARSET:
400 : 15 : _rValue >>= m_aFont.CharSet;
401 : 15 : break;
402 : :
403 : : case PROPERTY_ID_FONT_CHARWIDTH:
404 : 9 : _rValue >>= m_aFont.CharacterWidth;
405 : 9 : break;
406 : :
407 : : case PROPERTY_ID_FONT_KERNING:
408 : 8 : _rValue >>= m_aFont.Kerning;
409 : 8 : break;
410 : :
411 : : case PROPERTY_ID_FONT_ORIENTATION:
412 : 8 : _rValue >>= m_aFont.Orientation;
413 : 8 : break;
414 : :
415 : : case PROPERTY_ID_FONT_PITCH:
416 : 11 : _rValue >>= m_aFont.Pitch;
417 : 11 : break;
418 : :
419 : : case PROPERTY_ID_FONT_TYPE:
420 : 8 : _rValue >>= m_aFont.Type;
421 : 8 : break;
422 : :
423 : : case PROPERTY_ID_FONT_WIDTH:
424 : 8 : _rValue >>= m_aFont.Width;
425 : 8 : break;
426 : :
427 : : case PROPERTY_ID_FONT_HEIGHT:
428 : : {
429 : 19 : float nHeight = 0;
430 : 19 : _rValue >>= nHeight;
431 : 19 : m_aFont.Height = (sal_Int16)nHeight;
432 : : }
433 : 19 : break;
434 : :
435 : : case PROPERTY_ID_FONT_WEIGHT:
436 : 18 : _rValue >>= m_aFont.Weight;
437 : 18 : break;
438 : :
439 : : case PROPERTY_ID_FONT_SLANT:
440 : 12 : _rValue >>= m_aFont.Slant;
441 : 12 : break;
442 : :
443 : : case PROPERTY_ID_FONT_UNDERLINE:
444 : 13 : _rValue >>= m_aFont.Underline;
445 : 13 : break;
446 : :
447 : : case PROPERTY_ID_FONT_STRIKEOUT:
448 : 12 : _rValue >>= m_aFont.Strikeout;
449 : 12 : break;
450 : :
451 : : case PROPERTY_ID_FONT_WORDLINEMODE:
452 : : {
453 : 12 : sal_Bool bWordLineMode = sal_False;
454 : 12 : _rValue >>= bWordLineMode;
455 : 12 : m_aFont.WordLineMode = bWordLineMode;
456 : : }
457 : 12 : break;
458 : :
459 : : default:
460 : : OSL_FAIL( "FontControlModel::setFastPropertyValue_NoBroadcast: invalid property!" );
461 : : }
462 : 290 : }
463 : :
464 : : //------------------------------------------------------------------------------
465 : 0 : Any FontControlModel::getPropertyDefaultByHandle( sal_Int32 _nHandle ) const
466 : : {
467 : 0 : Any aReturn;
468 : : // some defaults which are the same, not matter if we have toolkit-compatible
469 : : // defaults or not
470 : 0 : bool bHandled = false;
471 [ # # # # ]: 0 : switch( _nHandle )
472 : : {
473 : : case PROPERTY_ID_TEXTCOLOR:
474 : : case PROPERTY_ID_TEXTLINECOLOR:
475 : : // void
476 : 0 : bHandled = true;
477 : 0 : break;
478 : :
479 : : case PROPERTY_ID_FONTEMPHASISMARK:
480 [ # # ]: 0 : aReturn <<= FontEmphasisMark::NONE;
481 : 0 : bHandled = true;
482 : 0 : break;
483 : :
484 : : case PROPERTY_ID_FONTRELIEF:
485 [ # # ]: 0 : aReturn <<= FontRelief::NONE;
486 : 0 : bHandled = true;
487 : 0 : break;
488 : : }
489 [ # # ]: 0 : if ( bHandled )
490 : 0 : return aReturn;
491 : :
492 [ # # ]: 0 : if ( m_bToolkitCompatibleDefaults )
493 : : {
494 : 0 : EmptyFontDescriptor aEmpty;
495 [ # # ]: 0 : if ( PROPERTY_ID_FONT == _nHandle )
496 [ # # ]: 0 : return makeAny( (FontDescriptor)aEmpty );
497 [ # # ]: 0 : return lcl_extractFontDescriptorAggregate( _nHandle, aEmpty );
498 : : }
499 : :
500 [ # # # # : 0 : switch( _nHandle )
# # # # ]
501 : : {
502 : : case PROPERTY_ID_FONT:
503 [ # # ][ # # ]: 0 : aReturn <<= ::comphelper::getDefaultFont();
504 : 0 : break;
505 : :
506 : : case PROPERTY_ID_FONT_WORDLINEMODE:
507 [ # # ]: 0 : aReturn = makeBoolAny(sal_False);
508 : :
509 : : case PROPERTY_ID_FONT_NAME:
510 : : case PROPERTY_ID_FONT_STYLENAME:
511 [ # # ]: 0 : aReturn <<= ::rtl::OUString();
512 : :
513 : : case PROPERTY_ID_FONT_FAMILY:
514 : : case PROPERTY_ID_FONT_CHARSET:
515 : : case PROPERTY_ID_FONT_SLANT:
516 : : case PROPERTY_ID_FONT_UNDERLINE:
517 : : case PROPERTY_ID_FONT_STRIKEOUT:
518 [ # # ]: 0 : aReturn <<= (sal_Int16)1;
519 : 0 : break;
520 : :
521 : : case PROPERTY_ID_FONT_KERNING:
522 [ # # ]: 0 : aReturn = makeBoolAny(sal_False);
523 : 0 : break;
524 : :
525 : : case PROPERTY_ID_FONT_PITCH:
526 : : case PROPERTY_ID_FONT_TYPE:
527 : : case PROPERTY_ID_FONT_WIDTH:
528 [ # # ]: 0 : aReturn <<= (sal_Int16)0;
529 : 0 : break;
530 : :
531 : : case PROPERTY_ID_FONT_HEIGHT:
532 : : case PROPERTY_ID_FONT_WEIGHT:
533 : : case PROPERTY_ID_FONT_CHARWIDTH:
534 : : case PROPERTY_ID_FONT_ORIENTATION:
535 [ # # ]: 0 : aReturn <<= (float)0;
536 : 0 : break;
537 : :
538 : : default:
539 : : OSL_FAIL( "FontControlModel::getPropertyDefaultByHandle: invalid property!" );
540 : : }
541 : :
542 : 0 : return aReturn;
543 : : }
544 : :
545 : : //.........................................................................
546 : : } // namespace frm
547 : : //.........................................................................
548 : :
549 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|