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 // MARKER(update_precomp.py): autogen include statement, do not remove 24 #include "precompiled_svtools.hxx" 25 26 #ifdef _MSC_VER 27 #pragma hdrstop 28 #endif 29 30 //_________________________________________________________________________________________________________________ 31 // includes 32 //_________________________________________________________________________________________________________________ 33 34 #include <svtools/optionsdrawinglayer.hxx> 35 #include <unotools/configmgr.hxx> 36 #include <unotools/configitem.hxx> 37 #include <tools/debug.hxx> 38 #include <com/sun/star/uno/Any.hxx> 39 #include <com/sun/star/uno/Sequence.hxx> 40 #include <vcl/svapp.hxx> 41 #include <vcl/outdev.hxx> 42 43 //_________________________________________________________________________________________________________________ 44 // namespaces 45 //_________________________________________________________________________________________________________________ 46 47 using namespace ::utl ; 48 using namespace ::rtl ; 49 using namespace ::osl ; 50 using namespace ::com::sun::star::uno ; 51 52 //_________________________________________________________________________________________________________________ 53 // const 54 //_________________________________________________________________________________________________________________ 55 56 #define ROOTNODE_START OUString(RTL_CONSTASCII_USTRINGPARAM("Office.Common/Drawinglayer" )) 57 #define DEFAULT_OVERLAYBUFFER sal_True 58 #define DEFAULT_PAINTBUFFER sal_True 59 #define DEFAULT_STRIPE_COLOR_A 0 60 #define DEFAULT_STRIPE_COLOR_B 16581375 61 #define DEFAULT_STRIPE_LENGTH 4 62 63 // #i73602# 64 // #i74769#, #i75172# : Change default for Calc and Writer to True 65 #define DEFAULT_OVERLAYBUFFER_CALC sal_True 66 #define DEFAULT_OVERLAYBUFFER_WRITER sal_True 67 #define DEFAULT_OVERLAYBUFFER_DRAWIMPRESS sal_True 68 69 // #i74769#, #i75172# 70 #define DEFAULT_PAINTBUFFER_CALC sal_True 71 #define DEFAULT_PAINTBUFFER_WRITER sal_True 72 #define DEFAULT_PAINTBUFFER_DRAWIMPRESS sal_True 73 74 // #i4219# 75 #define DEFAULT_MAXIMUMPAPERWIDTH 300 76 #define DEFAULT_MAXIMUMPAPERHEIGHT 300 77 #define DEFAULT_MAXIMUMPAPERLEFTMARGIN 9999 78 #define DEFAULT_MAXIMUMPAPERRIGHTMARGIN 9999 79 #define DEFAULT_MAXIMUMPAPERTOPMARGIN 9999 80 #define DEFAULT_MAXIMUMPAPERBOTTOMMARGIN 9999 81 82 // primitives 83 #define DEFAULT_ANTIALIASING sal_True 84 #define DEFAULT_SNAPHORVERLINESTODISCRETE sal_True 85 #define DEFAULT_SOLIDDRAGCREATE sal_True 86 #define DEFAULT_RENDERDECORATEDTEXTDIRECT sal_True 87 #define DEFAULT_RENDERSIMPLETEXTDIRECT sal_True 88 #define DEFAULT_QUADRATIC3DRENDERLIMIT 1000000 89 #define DEFAULT_QUADRATICFORMCONTROLRENDERLIMIT 45000 90 91 // #i97672# selection settings 92 #define DEFAULT_TRANSPARENTSELECTION sal_True 93 #define DEFAULT_TRANSPARENTSELECTIONPERCENT 75 94 #define DEFAULT_SELECTIONMAXIMUMLUMINANCEPERCENT 70 95 96 #define PROPERTYNAME_OVERLAYBUFFER OUString(RTL_CONSTASCII_USTRINGPARAM("OverlayBuffer" )) 97 #define PROPERTYNAME_PAINTBUFFER OUString(RTL_CONSTASCII_USTRINGPARAM("PaintBuffer" )) 98 #define PROPERTYNAME_STRIPE_COLOR_A OUString(RTL_CONSTASCII_USTRINGPARAM("StripeColorA" )) 99 #define PROPERTYNAME_STRIPE_COLOR_B OUString(RTL_CONSTASCII_USTRINGPARAM("StripeColorB" )) 100 #define PROPERTYNAME_STRIPE_LENGTH OUString(RTL_CONSTASCII_USTRINGPARAM("StripeLength" )) 101 102 // #i73602# 103 #define PROPERTYNAME_OVERLAYBUFFER_CALC OUString(RTL_CONSTASCII_USTRINGPARAM("OverlayBuffer_Calc")) 104 #define PROPERTYNAME_OVERLAYBUFFER_WRITER OUString(RTL_CONSTASCII_USTRINGPARAM("OverlayBuffer_Writer")) 105 #define PROPERTYNAME_OVERLAYBUFFER_DRAWIMPRESS OUString(RTL_CONSTASCII_USTRINGPARAM("OverlayBuffer_DrawImpress")) 106 107 // #i74769#, #i75172# 108 #define PROPERTYNAME_PAINTBUFFER_CALC OUString(RTL_CONSTASCII_USTRINGPARAM("PaintBuffer_Calc")) 109 #define PROPERTYNAME_PAINTBUFFER_WRITER OUString(RTL_CONSTASCII_USTRINGPARAM("PaintBuffer_Writer")) 110 #define PROPERTYNAME_PAINTBUFFER_DRAWIMPRESS OUString(RTL_CONSTASCII_USTRINGPARAM("PaintBuffer_DrawImpress")) 111 112 // #i4219# 113 #define PROPERTYNAME_MAXIMUMPAPERWIDTH OUString(RTL_CONSTASCII_USTRINGPARAM("MaximumPaperWidth")) 114 #define PROPERTYNAME_MAXIMUMPAPERHEIGHT OUString(RTL_CONSTASCII_USTRINGPARAM("MaximumPaperHeight")) 115 #define PROPERTYNAME_MAXIMUMPAPERLEFTMARGIN OUString(RTL_CONSTASCII_USTRINGPARAM("MaximumPaperLeftMargin")) 116 #define PROPERTYNAME_MAXIMUMPAPERRIGHTMARGIN OUString(RTL_CONSTASCII_USTRINGPARAM("MaximumPaperRightMargin")) 117 #define PROPERTYNAME_MAXIMUMPAPERTOPMARGIN OUString(RTL_CONSTASCII_USTRINGPARAM("MaximumPaperTopMargin")) 118 #define PROPERTYNAME_MAXIMUMPAPERBOTTOMMARGIN OUString(RTL_CONSTASCII_USTRINGPARAM("MaximumPaperBottomMargin")) 119 120 // primitives 121 #define PROPERTYNAME_ANTIALIASING OUString(RTL_CONSTASCII_USTRINGPARAM("AntiAliasing")) 122 #define PROPERTYNAME_SNAPHORVERLINESTODISCRETE OUString(RTL_CONSTASCII_USTRINGPARAM("SnapHorVerLinesToDiscrete")) 123 #define PROPERTYNAME_SOLIDDRAGCREATE OUString(RTL_CONSTASCII_USTRINGPARAM("SolidDragCreate")) 124 #define PROPERTYNAME_RENDERDECORATEDTEXTDIRECT OUString(RTL_CONSTASCII_USTRINGPARAM("RenderDecoratedTextDirect")) 125 #define PROPERTYNAME_RENDERSIMPLETEXTDIRECT OUString(RTL_CONSTASCII_USTRINGPARAM("RenderSimpleTextDirect")) 126 #define PROPERTYNAME_QUADRATIC3DRENDERLIMIT OUString(RTL_CONSTASCII_USTRINGPARAM("Quadratic3DRenderLimit")) 127 #define PROPERTYNAME_QUADRATICFORMCONTROLRENDERLIMIT OUString(RTL_CONSTASCII_USTRINGPARAM("QuadraticFormControlRenderLimit")) 128 129 // #i97672# selection settings 130 #define PROPERTYNAME_TRANSPARENTSELECTION OUString(RTL_CONSTASCII_USTRINGPARAM("TransparentSelection")) 131 #define PROPERTYNAME_TRANSPARENTSELECTIONPERCENT OUString(RTL_CONSTASCII_USTRINGPARAM("TransparentSelectionPercent")) 132 #define PROPERTYNAME_SELECTIONMAXIMUMLUMINANCEPERCENT OUString(RTL_CONSTASCII_USTRINGPARAM("SelectionMaximumLuminancePercent")) 133 134 #define PROPERTYHANDLE_OVERLAYBUFFER 0 135 #define PROPERTYHANDLE_PAINTBUFFER 1 136 #define PROPERTYHANDLE_STRIPE_COLOR_A 2 137 #define PROPERTYHANDLE_STRIPE_COLOR_B 3 138 #define PROPERTYHANDLE_STRIPE_LENGTH 4 139 140 // #i73602# 141 #define PROPERTYHANDLE_OVERLAYBUFFER_CALC 5 142 #define PROPERTYHANDLE_OVERLAYBUFFER_WRITER 6 143 #define PROPERTYHANDLE_OVERLAYBUFFER_DRAWIMPRESS 7 144 145 // #i74769#, #i75172# 146 #define PROPERTYHANDLE_PAINTBUFFER_CALC 8 147 #define PROPERTYHANDLE_PAINTBUFFER_WRITER 9 148 #define PROPERTYHANDLE_PAINTBUFFER_DRAWIMPRESS 10 149 150 // #i4219# 151 #define PROPERTYHANDLE_MAXIMUMPAPERWIDTH 11 152 #define PROPERTYHANDLE_MAXIMUMPAPERHEIGHT 12 153 #define PROPERTYHANDLE_MAXIMUMPAPERLEFTMARGIN 13 154 #define PROPERTYHANDLE_MAXIMUMPAPERRIGHTMARGIN 14 155 #define PROPERTYHANDLE_MAXIMUMPAPERTOPMARGIN 15 156 #define PROPERTYHANDLE_MAXIMUMPAPERBOTTOMMARGIN 16 157 158 // primitives 159 #define PROPERTYHANDLE_ANTIALIASING 17 160 #define PROPERTYHANDLE_SNAPHORVERLINESTODISCRETE 18 161 #define PROPERTYHANDLE_SOLIDDRAGCREATE 19 162 #define PROPERTYHANDLE_RENDERDECORATEDTEXTDIRECT 20 163 #define PROPERTYHANDLE_RENDERSIMPLETEXTDIRECT 21 164 #define PROPERTYHANDLE_QUADRATIC3DRENDERLIMIT 22 165 #define PROPERTYHANDLE_QUADRATICFORMCONTROLRENDERLIMIT 23 166 167 // #i97672# selection settings 168 #define PROPERTYHANDLE_TRANSPARENTSELECTION 24 169 #define PROPERTYHANDLE_TRANSPARENTSELECTIONPERCENT 25 170 #define PROPERTYHANDLE_SELECTIONMAXIMUMLUMINANCEPERCENT 26 171 172 #define PROPERTYCOUNT 27 173 174 class SvtOptionsDrawinglayer_Impl : public ConfigItem 175 { 176 public: 177 178 //--------------------------------------------------------------------------------------------------------- 179 // constructor / destructor 180 //--------------------------------------------------------------------------------------------------------- 181 182 SvtOptionsDrawinglayer_Impl(); 183 ~SvtOptionsDrawinglayer_Impl(); 184 185 //--------------------------------------------------------------------------------------------------------- 186 // overloaded methods of baseclass 187 //--------------------------------------------------------------------------------------------------------- 188 189 virtual void Commit(); 190 virtual void Notify( const com::sun::star::uno::Sequence<rtl::OUString>& aPropertyNames); 191 192 //--------------------------------------------------------------------------------------------------------- 193 // public interface 194 //--------------------------------------------------------------------------------------------------------- 195 196 sal_Bool IsOverlayBuffer() const; 197 sal_Bool IsPaintBuffer() const; 198 Color GetStripeColorA() const; 199 Color GetStripeColorB() const; 200 sal_uInt16 GetStripeLength() const; 201 202 // #i73602# 203 sal_Bool IsOverlayBuffer_Calc() const; 204 sal_Bool IsOverlayBuffer_Writer() const; 205 sal_Bool IsOverlayBuffer_DrawImpress() const; 206 207 // #i74769#, #i75172# 208 sal_Bool IsPaintBuffer_Calc() const; 209 sal_Bool IsPaintBuffer_Writer() const; 210 sal_Bool IsPaintBuffer_DrawImpress() const; 211 212 void SetOverlayBuffer( sal_Bool bState ); 213 void SetPaintBuffer( sal_Bool bState ); 214 void SetStripeColorA( Color aColor ); 215 void SetStripeColorB( Color aColor ); 216 void SetStripeLength( sal_uInt16 nLength ); 217 218 // #i73602# 219 void SetOverlayBuffer_Calc( sal_Bool bState ); 220 void SetOverlayBuffer_Writer( sal_Bool bState ); 221 void SetOverlayBuffer_DrawImpress( sal_Bool bState ); 222 223 // #i74769#, #i75172# 224 void SetPaintBuffer_Calc( sal_Bool bState ); 225 void SetPaintBuffer_Writer( sal_Bool bState ); 226 void SetPaintBuffer_DrawImpress( sal_Bool bState ); 227 228 // #i4219# 229 sal_uInt32 GetMaximumPaperWidth() const; 230 sal_uInt32 GetMaximumPaperHeight() const; 231 sal_uInt32 GetMaximumPaperLeftMargin() const; 232 sal_uInt32 GetMaximumPaperRightMargin() const; 233 sal_uInt32 GetMaximumPaperTopMargin() const; 234 sal_uInt32 GetMaximumPaperBottomMargin() const; 235 236 void SetMaximumPaperWidth(sal_uInt32 nNew); 237 void SetMaximumPaperHeight(sal_uInt32 nNew); 238 void SetMaximumPaperLeftMargin(sal_uInt32 nNew); 239 void SetMaximumPaperRightMargin(sal_uInt32 nNew); 240 void SetMaximumPaperTopMargin(sal_uInt32 nNew); 241 void SetMaximumPaperBottomMargin(sal_uInt32 nNew); 242 243 // helper 244 sal_Bool IsAAPossibleOnThisSystem() const; 245 246 // primitives 247 sal_Bool IsAntiAliasing() const; 248 sal_Bool IsSnapHorVerLinesToDiscrete() const; 249 sal_Bool IsSolidDragCreate() const; 250 sal_Bool IsRenderDecoratedTextDirect() const; 251 sal_Bool IsRenderSimpleTextDirect() const; 252 sal_uInt32 GetQuadratic3DRenderLimit() const; 253 sal_uInt32 GetQuadraticFormControlRenderLimit() const; 254 255 void SetAntiAliasing( sal_Bool bState ); 256 void SetSnapHorVerLinesToDiscrete( sal_Bool bState ); 257 void SetSolidDragCreate( sal_Bool bState ); 258 void SetRenderDecoratedTextDirect( sal_Bool bState ); 259 void SetRenderSimpleTextDirect( sal_Bool bState ); 260 void SetQuadratic3DRenderLimit(sal_uInt32 nNew); 261 void SetQuadraticFormControlRenderLimit(sal_uInt32 nNew); 262 263 // #i97672# selection settings 264 sal_Bool IsTransparentSelection() const; 265 sal_uInt16 GetTransparentSelectionPercent() const; 266 sal_uInt16 GetSelectionMaximumLuminancePercent() const; 267 268 void SetTransparentSelection( sal_Bool bState ); 269 void SetTransparentSelectionPercent( sal_uInt16 nPercent ); 270 void SetSelectionMaximumLuminancePercent( sal_uInt16 nPercent ); 271 272 //------------------------------------------------------------------------------------------------------------- 273 // private methods 274 //------------------------------------------------------------------------------------------------------------- 275 276 private: 277 278 static Sequence< OUString > impl_GetPropertyNames(); 279 280 //------------------------------------------------------------------------------------------------------------- 281 // private member 282 //------------------------------------------------------------------------------------------------------------- 283 284 private: 285 286 sal_Bool m_bOverlayBuffer; 287 sal_Bool m_bPaintBuffer; 288 Color m_bStripeColorA; 289 Color m_bStripeColorB; 290 sal_uInt16 m_nStripeLength; 291 292 // #i73602# 293 sal_Bool m_bOverlayBuffer_Calc; 294 sal_Bool m_bOverlayBuffer_Writer; 295 sal_Bool m_bOverlayBuffer_DrawImpress; 296 297 // #i74769#, #i75172# 298 sal_Bool m_bPaintBuffer_Calc; 299 sal_Bool m_bPaintBuffer_Writer; 300 sal_Bool m_bPaintBuffer_DrawImpress; 301 302 // #i4219# 303 sal_uInt32 m_nMaximumPaperWidth; 304 sal_uInt32 m_nMaximumPaperHeight; 305 sal_uInt32 m_nMaximumPaperLeftMargin; 306 sal_uInt32 m_nMaximumPaperRightMargin; 307 sal_uInt32 m_nMaximumPaperTopMargin; 308 sal_uInt32 m_nMaximumPaperBottomMargin; 309 310 // primitives 311 sal_Bool m_bAntiAliasing; 312 sal_Bool m_bSnapHorVerLinesToDiscrete; 313 sal_Bool m_bSolidDragCreate; 314 sal_Bool m_bRenderDecoratedTextDirect; 315 sal_Bool m_bRenderSimpleTextDirect; 316 sal_uInt32 m_nQuadratic3DRenderLimit; 317 sal_uInt32 m_nQuadraticFormControlRenderLimit; 318 319 // #i97672# selection settings 320 sal_uInt16 m_nTransparentSelectionPercent; 321 sal_uInt16 m_nSelectionMaximumLuminancePercent; 322 sal_Bool m_bTransparentSelection; 323 324 // local values 325 bool m_bAllowAA : 1; 326 bool m_bAllowAAChecked : 1; 327 }; 328 329 //_________________________________________________________________________________________________________________ 330 // definitions 331 //_________________________________________________________________________________________________________________ 332 333 //***************************************************************************************************************** 334 // constructor 335 //***************************************************************************************************************** 336 SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl() : 337 ConfigItem( ROOTNODE_START ), 338 m_bOverlayBuffer( DEFAULT_OVERLAYBUFFER ), 339 m_bPaintBuffer( DEFAULT_PAINTBUFFER ), 340 m_bStripeColorA(Color(DEFAULT_STRIPE_COLOR_A)), 341 m_bStripeColorB(Color(DEFAULT_STRIPE_COLOR_B)), 342 m_nStripeLength(DEFAULT_STRIPE_LENGTH), 343 344 // #i73602# 345 m_bOverlayBuffer_Calc( DEFAULT_OVERLAYBUFFER_CALC ), 346 m_bOverlayBuffer_Writer( DEFAULT_OVERLAYBUFFER_WRITER ), 347 m_bOverlayBuffer_DrawImpress( DEFAULT_OVERLAYBUFFER_DRAWIMPRESS ), 348 349 // #i74769#, #i75172# 350 m_bPaintBuffer_Calc( DEFAULT_PAINTBUFFER_CALC ), 351 m_bPaintBuffer_Writer( DEFAULT_PAINTBUFFER_WRITER ), 352 m_bPaintBuffer_DrawImpress( DEFAULT_PAINTBUFFER_DRAWIMPRESS ), 353 354 // #i4219# 355 m_nMaximumPaperWidth(DEFAULT_MAXIMUMPAPERWIDTH), 356 m_nMaximumPaperHeight(DEFAULT_MAXIMUMPAPERHEIGHT), 357 m_nMaximumPaperLeftMargin(DEFAULT_MAXIMUMPAPERLEFTMARGIN), 358 m_nMaximumPaperRightMargin(DEFAULT_MAXIMUMPAPERRIGHTMARGIN), 359 m_nMaximumPaperTopMargin(DEFAULT_MAXIMUMPAPERTOPMARGIN), 360 m_nMaximumPaperBottomMargin(DEFAULT_MAXIMUMPAPERBOTTOMMARGIN), 361 362 // primitives 363 m_bAntiAliasing(DEFAULT_ANTIALIASING), 364 m_bSnapHorVerLinesToDiscrete(DEFAULT_SNAPHORVERLINESTODISCRETE), 365 m_bSolidDragCreate(DEFAULT_SOLIDDRAGCREATE), 366 m_bRenderDecoratedTextDirect(DEFAULT_RENDERDECORATEDTEXTDIRECT), 367 m_bRenderSimpleTextDirect(DEFAULT_RENDERSIMPLETEXTDIRECT), 368 m_nQuadratic3DRenderLimit(DEFAULT_QUADRATIC3DRENDERLIMIT), 369 m_nQuadraticFormControlRenderLimit(DEFAULT_QUADRATICFORMCONTROLRENDERLIMIT), 370 371 // #i97672# selection settings 372 m_nTransparentSelectionPercent(DEFAULT_TRANSPARENTSELECTIONPERCENT), 373 m_nSelectionMaximumLuminancePercent(DEFAULT_SELECTIONMAXIMUMLUMINANCEPERCENT), 374 m_bTransparentSelection(DEFAULT_TRANSPARENTSELECTION), 375 376 // local values 377 m_bAllowAA(true), 378 m_bAllowAAChecked(false) 379 { 380 Sequence< OUString > seqNames( impl_GetPropertyNames() ); 381 Sequence< Any > seqValues = GetProperties( seqNames ) ; 382 383 DBG_ASSERT( !(seqNames.getLength()!=seqValues.getLength()), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nI miss some values of configuration keys!\n" ); 384 385 // Copy values from list in right order to ouer internal member. 386 sal_Int32 nPropertyCount = seqValues.getLength(); 387 sal_Int32 nProperty = 0; 388 389 for( nProperty=0; nProperty<nPropertyCount; ++nProperty ) 390 { 391 DBG_ASSERT( !(seqValues[nProperty].hasValue()==sal_False), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nInvalid property value for property detected!\n" ); 392 393 switch( nProperty ) 394 { 395 case PROPERTYHANDLE_OVERLAYBUFFER: 396 { 397 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\OverlayBuffer\"?" ); 398 seqValues[nProperty] >>= m_bOverlayBuffer; 399 } 400 break; 401 402 case PROPERTYHANDLE_PAINTBUFFER: 403 { 404 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\PaintBuffer\"?" ); 405 seqValues[nProperty] >>= m_bPaintBuffer; 406 } 407 break; 408 409 case PROPERTYHANDLE_STRIPE_COLOR_A: 410 { 411 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_LONG), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\StripeColorA\"?" ); 412 sal_Int32 nValue = 0; 413 seqValues[nProperty] >>= nValue; 414 m_bStripeColorA = nValue; 415 } 416 break; 417 418 case PROPERTYHANDLE_STRIPE_COLOR_B: 419 { 420 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_LONG), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\StripeColorB\"?" ); 421 sal_Int32 nValue = 0; 422 seqValues[nProperty] >>= nValue; 423 m_bStripeColorB = nValue; 424 } 425 break; 426 427 case PROPERTYHANDLE_STRIPE_LENGTH: 428 { 429 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_SHORT), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\StripeLength\"?" ); 430 seqValues[nProperty] >>= m_nStripeLength; 431 } 432 break; 433 434 // #i73602# 435 case PROPERTYHANDLE_OVERLAYBUFFER_CALC: 436 { 437 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\OverlayBuffer_Calc\"?" ); 438 seqValues[nProperty] >>= m_bOverlayBuffer_Calc; 439 } 440 break; 441 442 case PROPERTYHANDLE_OVERLAYBUFFER_WRITER: 443 { 444 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\OverlayBuffer_Writer\"?" ); 445 seqValues[nProperty] >>= m_bOverlayBuffer_Writer; 446 } 447 break; 448 449 case PROPERTYHANDLE_OVERLAYBUFFER_DRAWIMPRESS: 450 { 451 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\OverlayBuffer_DrawImpress\"?" ); 452 seqValues[nProperty] >>= m_bOverlayBuffer_DrawImpress; 453 } 454 break; 455 456 // #i74769#, #i75172# 457 case PROPERTYHANDLE_PAINTBUFFER_CALC: 458 { 459 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\PaintBuffer_Calc\"?" ); 460 seqValues[nProperty] >>= m_bPaintBuffer_Calc; 461 } 462 break; 463 464 case PROPERTYHANDLE_PAINTBUFFER_WRITER: 465 { 466 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\PaintBuffer_Writer\"?" ); 467 seqValues[nProperty] >>= m_bPaintBuffer_Writer; 468 } 469 break; 470 471 case PROPERTYHANDLE_PAINTBUFFER_DRAWIMPRESS: 472 { 473 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\PaintBuffer_DrawImpress\"?" ); 474 seqValues[nProperty] >>= m_bPaintBuffer_DrawImpress; 475 } 476 break; 477 478 // #i4219# 479 case PROPERTYHANDLE_MAXIMUMPAPERWIDTH: 480 { 481 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_LONG), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\MaximumPaperWidth\"?" ); 482 seqValues[nProperty] >>= m_nMaximumPaperWidth; 483 } 484 break; 485 486 case PROPERTYHANDLE_MAXIMUMPAPERHEIGHT: 487 { 488 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_LONG), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\MaximumPaperHeight\"?" ); 489 seqValues[nProperty] >>= m_nMaximumPaperHeight; 490 } 491 break; 492 493 case PROPERTYHANDLE_MAXIMUMPAPERLEFTMARGIN: 494 { 495 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_LONG), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\MaximumPaperLeftMargin\"?" ); 496 seqValues[nProperty] >>= m_nMaximumPaperLeftMargin; 497 } 498 break; 499 500 case PROPERTYHANDLE_MAXIMUMPAPERRIGHTMARGIN: 501 { 502 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_LONG), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\MaximumPaperRightMargin\"?" ); 503 seqValues[nProperty] >>= m_nMaximumPaperRightMargin; 504 } 505 break; 506 507 case PROPERTYHANDLE_MAXIMUMPAPERTOPMARGIN: 508 { 509 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_LONG), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\MaximumPaperTopMargin\"?" ); 510 seqValues[nProperty] >>= m_nMaximumPaperTopMargin; 511 } 512 break; 513 514 case PROPERTYHANDLE_MAXIMUMPAPERBOTTOMMARGIN: 515 { 516 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_LONG), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\MaximumPaperBottomMargin\"?" ); 517 seqValues[nProperty] >>= m_nMaximumPaperBottomMargin; 518 } 519 break; 520 521 // primitives 522 case PROPERTYHANDLE_ANTIALIASING: 523 { 524 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\AntiAliasing\"?" ); 525 seqValues[nProperty] >>= m_bAntiAliasing; 526 } 527 break; 528 529 // primitives 530 case PROPERTYHANDLE_SNAPHORVERLINESTODISCRETE: 531 { 532 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\SnapHorVerLinesToDiscrete\"?" ); 533 seqValues[nProperty] >>= m_bSnapHorVerLinesToDiscrete; 534 } 535 break; 536 537 case PROPERTYHANDLE_SOLIDDRAGCREATE: 538 { 539 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\SolidDragCreate\"?" ); 540 seqValues[nProperty] >>= m_bSolidDragCreate; 541 } 542 break; 543 544 case PROPERTYHANDLE_RENDERDECORATEDTEXTDIRECT: 545 { 546 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\RenderDecoratedTextDirect\"?" ); 547 seqValues[nProperty] >>= m_bRenderDecoratedTextDirect; 548 } 549 break; 550 551 case PROPERTYHANDLE_RENDERSIMPLETEXTDIRECT: 552 { 553 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\RenderSimpleTextDirect\"?" ); 554 seqValues[nProperty] >>= m_bRenderSimpleTextDirect; 555 } 556 break; 557 558 case PROPERTYHANDLE_QUADRATIC3DRENDERLIMIT: 559 { 560 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_LONG), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\Quadratic3DRenderLimit\"?" ); 561 seqValues[nProperty] >>= m_nQuadratic3DRenderLimit; 562 } 563 break; 564 565 case PROPERTYHANDLE_QUADRATICFORMCONTROLRENDERLIMIT: 566 { 567 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_LONG), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\QuadraticFormControlRenderLimit\"?" ); 568 seqValues[nProperty] >>= m_nQuadraticFormControlRenderLimit; 569 } 570 break; 571 572 // #i97672# selection settings 573 case PROPERTYHANDLE_TRANSPARENTSELECTION: 574 { 575 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\TransparentSelection\"?" ); 576 seqValues[nProperty] >>= m_bTransparentSelection; 577 } 578 break; 579 580 case PROPERTYHANDLE_TRANSPARENTSELECTIONPERCENT: 581 { 582 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_SHORT), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\TransparentSelectionPercent\"?" ); 583 seqValues[nProperty] >>= m_nTransparentSelectionPercent; 584 } 585 586 case PROPERTYHANDLE_SELECTIONMAXIMUMLUMINANCEPERCENT: 587 { 588 DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_SHORT), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\SelectionMaximumLuminancePercent\"?" ); 589 seqValues[nProperty] >>= m_nSelectionMaximumLuminancePercent; 590 } 591 break; 592 } 593 } 594 } 595 596 //***************************************************************************************************************** 597 // destructor 598 //***************************************************************************************************************** 599 SvtOptionsDrawinglayer_Impl::~SvtOptionsDrawinglayer_Impl() 600 { 601 if( IsModified() ) 602 Commit(); 603 } 604 605 //***************************************************************************************************************** 606 // Commit 607 //***************************************************************************************************************** 608 void SvtOptionsDrawinglayer_Impl::Commit() 609 { 610 Sequence< OUString > aSeqNames( impl_GetPropertyNames() ); 611 Sequence< Any > aSeqValues( aSeqNames.getLength() ); 612 613 for( sal_Int32 nProperty = 0, nCount = aSeqNames.getLength(); nProperty < nCount; ++nProperty ) 614 { 615 switch( nProperty ) 616 { 617 case PROPERTYHANDLE_OVERLAYBUFFER: 618 aSeqValues[nProperty] <<= m_bOverlayBuffer; 619 break; 620 621 case PROPERTYHANDLE_PAINTBUFFER: 622 aSeqValues[nProperty] <<= m_bPaintBuffer; 623 break; 624 625 case PROPERTYHANDLE_STRIPE_COLOR_A: 626 aSeqValues[nProperty] <<= m_bStripeColorA.GetColor(); 627 break; 628 629 case PROPERTYHANDLE_STRIPE_COLOR_B: 630 aSeqValues[nProperty] <<= m_bStripeColorB.GetColor(); 631 break; 632 633 case PROPERTYHANDLE_STRIPE_LENGTH: 634 aSeqValues[nProperty] <<= m_nStripeLength; 635 break; 636 637 // #i73602# 638 case PROPERTYHANDLE_OVERLAYBUFFER_CALC: 639 aSeqValues[nProperty] <<= m_bOverlayBuffer_Calc; 640 break; 641 642 case PROPERTYHANDLE_OVERLAYBUFFER_WRITER: 643 aSeqValues[nProperty] <<= m_bOverlayBuffer_Writer; 644 break; 645 646 case PROPERTYHANDLE_OVERLAYBUFFER_DRAWIMPRESS: 647 aSeqValues[nProperty] <<= m_bOverlayBuffer_DrawImpress; 648 break; 649 650 // #i74769#, #i75172# 651 case PROPERTYHANDLE_PAINTBUFFER_CALC: 652 aSeqValues[nProperty] <<= m_bPaintBuffer_Calc; 653 break; 654 655 case PROPERTYHANDLE_PAINTBUFFER_WRITER: 656 aSeqValues[nProperty] <<= m_bPaintBuffer_Writer; 657 break; 658 659 case PROPERTYHANDLE_PAINTBUFFER_DRAWIMPRESS: 660 aSeqValues[nProperty] <<= m_bPaintBuffer_DrawImpress; 661 break; 662 663 // #i4219# 664 case PROPERTYHANDLE_MAXIMUMPAPERWIDTH: 665 aSeqValues[nProperty] <<= m_nMaximumPaperWidth; 666 break; 667 668 case PROPERTYHANDLE_MAXIMUMPAPERHEIGHT: 669 aSeqValues[nProperty] <<= m_nMaximumPaperHeight; 670 break; 671 672 case PROPERTYHANDLE_MAXIMUMPAPERLEFTMARGIN: 673 aSeqValues[nProperty] <<= m_nMaximumPaperLeftMargin; 674 break; 675 676 case PROPERTYHANDLE_MAXIMUMPAPERRIGHTMARGIN: 677 aSeqValues[nProperty] <<= m_nMaximumPaperRightMargin; 678 break; 679 680 case PROPERTYHANDLE_MAXIMUMPAPERTOPMARGIN: 681 aSeqValues[nProperty] <<= m_nMaximumPaperTopMargin; 682 break; 683 684 case PROPERTYHANDLE_MAXIMUMPAPERBOTTOMMARGIN: 685 aSeqValues[nProperty] <<= m_nMaximumPaperBottomMargin; 686 break; 687 688 // primitives 689 case PROPERTYHANDLE_ANTIALIASING: 690 aSeqValues[nProperty] <<= m_bAntiAliasing; 691 break; 692 693 case PROPERTYHANDLE_SNAPHORVERLINESTODISCRETE: 694 aSeqValues[nProperty] <<= m_bSnapHorVerLinesToDiscrete; 695 break; 696 697 case PROPERTYHANDLE_SOLIDDRAGCREATE: 698 aSeqValues[nProperty] <<= m_bSolidDragCreate; 699 break; 700 701 case PROPERTYHANDLE_RENDERDECORATEDTEXTDIRECT: 702 aSeqValues[nProperty] <<= m_bRenderDecoratedTextDirect; 703 break; 704 705 case PROPERTYHANDLE_RENDERSIMPLETEXTDIRECT: 706 aSeqValues[nProperty] <<= m_bRenderSimpleTextDirect; 707 break; 708 709 case PROPERTYHANDLE_QUADRATIC3DRENDERLIMIT: 710 aSeqValues[nProperty] <<= m_nQuadratic3DRenderLimit; 711 break; 712 713 case PROPERTYHANDLE_QUADRATICFORMCONTROLRENDERLIMIT: 714 aSeqValues[nProperty] <<= m_nQuadraticFormControlRenderLimit; 715 break; 716 717 // #i97672# selection settings 718 case PROPERTYHANDLE_TRANSPARENTSELECTION: 719 aSeqValues[nProperty] <<= m_bTransparentSelection; 720 break; 721 722 case PROPERTYHANDLE_TRANSPARENTSELECTIONPERCENT: 723 aSeqValues[nProperty] <<= m_nTransparentSelectionPercent; 724 break; 725 726 case PROPERTYHANDLE_SELECTIONMAXIMUMLUMINANCEPERCENT: 727 aSeqValues[nProperty] <<= m_nSelectionMaximumLuminancePercent; 728 break; 729 } 730 } 731 732 PutProperties( aSeqNames, aSeqValues ); 733 } 734 735 void SvtOptionsDrawinglayer_Impl::Notify( const com::sun::star::uno::Sequence<rtl::OUString>& ) 736 { 737 } 738 739 //***************************************************************************************************************** 740 // public method 741 //***************************************************************************************************************** 742 sal_Bool SvtOptionsDrawinglayer_Impl::IsOverlayBuffer() const 743 { 744 return m_bOverlayBuffer; 745 } 746 747 //***************************************************************************************************************** 748 // public method 749 //***************************************************************************************************************** 750 sal_Bool SvtOptionsDrawinglayer_Impl::IsPaintBuffer() const 751 { 752 return m_bPaintBuffer; 753 } 754 755 //***************************************************************************************************************** 756 // public method 757 //***************************************************************************************************************** 758 Color SvtOptionsDrawinglayer_Impl::GetStripeColorA() const 759 { 760 return m_bStripeColorA; 761 } 762 763 //***************************************************************************************************************** 764 // public method 765 //***************************************************************************************************************** 766 Color SvtOptionsDrawinglayer_Impl::GetStripeColorB() const 767 { 768 return m_bStripeColorB; 769 } 770 771 //***************************************************************************************************************** 772 // public method 773 //***************************************************************************************************************** 774 sal_uInt16 SvtOptionsDrawinglayer_Impl::GetStripeLength() const 775 { 776 return m_nStripeLength; 777 } 778 779 // #i73602# 780 sal_Bool SvtOptionsDrawinglayer_Impl::IsOverlayBuffer_Calc() const 781 { 782 return m_bOverlayBuffer_Calc; 783 } 784 785 sal_Bool SvtOptionsDrawinglayer_Impl::IsOverlayBuffer_Writer() const 786 { 787 return m_bOverlayBuffer_Writer; 788 } 789 790 sal_Bool SvtOptionsDrawinglayer_Impl::IsOverlayBuffer_DrawImpress() const 791 { 792 return m_bOverlayBuffer_DrawImpress; 793 } 794 795 // #i74769#, #i75172# 796 sal_Bool SvtOptionsDrawinglayer_Impl::IsPaintBuffer_Calc() const 797 { 798 return m_bPaintBuffer_Calc; 799 } 800 801 sal_Bool SvtOptionsDrawinglayer_Impl::IsPaintBuffer_Writer() const 802 { 803 return m_bPaintBuffer_Writer; 804 } 805 806 sal_Bool SvtOptionsDrawinglayer_Impl::IsPaintBuffer_DrawImpress() const 807 { 808 return m_bPaintBuffer_DrawImpress; 809 } 810 811 // #i4219# 812 sal_uInt32 SvtOptionsDrawinglayer_Impl::GetMaximumPaperWidth() const 813 { 814 return m_nMaximumPaperWidth; 815 } 816 817 sal_uInt32 SvtOptionsDrawinglayer_Impl::GetMaximumPaperHeight() const 818 { 819 return m_nMaximumPaperHeight; 820 } 821 822 sal_uInt32 SvtOptionsDrawinglayer_Impl::GetMaximumPaperLeftMargin() const 823 { 824 return m_nMaximumPaperLeftMargin; 825 } 826 827 sal_uInt32 SvtOptionsDrawinglayer_Impl::GetMaximumPaperRightMargin() const 828 { 829 return m_nMaximumPaperRightMargin; 830 } 831 832 sal_uInt32 SvtOptionsDrawinglayer_Impl::GetMaximumPaperTopMargin() const 833 { 834 return m_nMaximumPaperTopMargin; 835 } 836 837 sal_uInt32 SvtOptionsDrawinglayer_Impl::GetMaximumPaperBottomMargin() const 838 { 839 return m_nMaximumPaperBottomMargin; 840 } 841 842 //***************************************************************************************************************** 843 // public method 844 //***************************************************************************************************************** 845 void SvtOptionsDrawinglayer_Impl::SetOverlayBuffer( sal_Bool bState ) 846 { 847 if(m_bOverlayBuffer != bState) 848 { 849 m_bOverlayBuffer = bState; 850 SetModified(); 851 } 852 } 853 854 //***************************************************************************************************************** 855 // public method 856 //***************************************************************************************************************** 857 void SvtOptionsDrawinglayer_Impl::SetPaintBuffer( sal_Bool bState ) 858 { 859 if(m_bPaintBuffer != bState) 860 { 861 m_bPaintBuffer = bState; 862 SetModified(); 863 } 864 } 865 866 //***************************************************************************************************************** 867 // public method 868 //***************************************************************************************************************** 869 void SvtOptionsDrawinglayer_Impl::SetStripeColorA( Color aColor ) 870 { 871 if(m_bStripeColorA != aColor) 872 { 873 m_bStripeColorA = aColor; 874 SetModified(); 875 } 876 } 877 878 //***************************************************************************************************************** 879 // public method 880 //***************************************************************************************************************** 881 void SvtOptionsDrawinglayer_Impl::SetStripeColorB( Color aColor ) 882 { 883 if(m_bStripeColorB != aColor) 884 { 885 m_bStripeColorB = aColor; 886 SetModified(); 887 } 888 } 889 890 //***************************************************************************************************************** 891 // public method 892 //***************************************************************************************************************** 893 void SvtOptionsDrawinglayer_Impl::SetStripeLength( sal_uInt16 nLength ) 894 { 895 if(m_nStripeLength != nLength) 896 { 897 m_nStripeLength = nLength; 898 SetModified(); 899 } 900 } 901 902 // #i73602# 903 void SvtOptionsDrawinglayer_Impl::SetOverlayBuffer_Calc( sal_Bool bState ) 904 { 905 if(m_bOverlayBuffer_Calc != bState) 906 { 907 m_bOverlayBuffer_Calc = bState; 908 SetModified(); 909 } 910 } 911 912 void SvtOptionsDrawinglayer_Impl::SetOverlayBuffer_Writer( sal_Bool bState ) 913 { 914 if(m_bOverlayBuffer_Writer != bState) 915 { 916 m_bOverlayBuffer_Writer = bState; 917 SetModified(); 918 } 919 } 920 921 void SvtOptionsDrawinglayer_Impl::SetOverlayBuffer_DrawImpress( sal_Bool bState ) 922 { 923 if(m_bOverlayBuffer_DrawImpress != bState) 924 { 925 m_bOverlayBuffer_DrawImpress = bState; 926 SetModified(); 927 } 928 } 929 930 // #i74769#, #i75172# 931 void SvtOptionsDrawinglayer_Impl::SetPaintBuffer_Calc( sal_Bool bState ) 932 { 933 if(m_bPaintBuffer_Calc != bState) 934 { 935 m_bPaintBuffer_Calc = bState; 936 SetModified(); 937 } 938 } 939 940 void SvtOptionsDrawinglayer_Impl::SetPaintBuffer_Writer( sal_Bool bState ) 941 { 942 if(m_bPaintBuffer_Writer != bState) 943 { 944 m_bPaintBuffer_Writer = bState; 945 SetModified(); 946 } 947 } 948 949 void SvtOptionsDrawinglayer_Impl::SetPaintBuffer_DrawImpress( sal_Bool bState ) 950 { 951 if(m_bPaintBuffer_DrawImpress != bState) 952 { 953 m_bPaintBuffer_DrawImpress = bState; 954 SetModified(); 955 } 956 } 957 958 // #i4219# 959 void SvtOptionsDrawinglayer_Impl::SetMaximumPaperWidth( sal_uInt32 nNew ) 960 { 961 if(m_nMaximumPaperWidth != nNew) 962 { 963 m_nMaximumPaperWidth = nNew; 964 SetModified(); 965 } 966 } 967 968 void SvtOptionsDrawinglayer_Impl::SetMaximumPaperHeight( sal_uInt32 nNew ) 969 { 970 if(m_nMaximumPaperHeight != nNew) 971 { 972 m_nMaximumPaperHeight = nNew; 973 SetModified(); 974 } 975 } 976 977 void SvtOptionsDrawinglayer_Impl::SetMaximumPaperLeftMargin( sal_uInt32 nNew ) 978 { 979 if(m_nMaximumPaperLeftMargin != nNew) 980 { 981 m_nMaximumPaperLeftMargin = nNew; 982 SetModified(); 983 } 984 } 985 986 void SvtOptionsDrawinglayer_Impl::SetMaximumPaperRightMargin( sal_uInt32 nNew ) 987 { 988 if(m_nMaximumPaperRightMargin != nNew) 989 { 990 m_nMaximumPaperRightMargin = nNew; 991 SetModified(); 992 } 993 } 994 995 void SvtOptionsDrawinglayer_Impl::SetMaximumPaperTopMargin( sal_uInt32 nNew ) 996 { 997 if(m_nMaximumPaperTopMargin != nNew) 998 { 999 m_nMaximumPaperTopMargin = nNew; 1000 SetModified(); 1001 } 1002 } 1003 1004 void SvtOptionsDrawinglayer_Impl::SetMaximumPaperBottomMargin( sal_uInt32 nNew ) 1005 { 1006 if(m_nMaximumPaperBottomMargin != nNew) 1007 { 1008 m_nMaximumPaperBottomMargin = nNew; 1009 SetModified(); 1010 } 1011 } 1012 1013 // helper 1014 sal_Bool SvtOptionsDrawinglayer_Impl::IsAAPossibleOnThisSystem() const 1015 { 1016 if(!m_bAllowAAChecked) 1017 { 1018 SvtOptionsDrawinglayer_Impl* pThat = const_cast< SvtOptionsDrawinglayer_Impl* >(this); 1019 pThat->m_bAllowAAChecked = true; 1020 1021 #ifdef WIN32 1022 // WIN32 uses GDIPlus with VCL forthe first incarnation; this will be enhanced 1023 // in the future to use canvases and the canvas renderer, thus a AA-abled 1024 // canvas needs to be checked here in the future. 1025 // Currently, just allow AA for WIN32 1026 #endif 1027 1028 // check XRenderExtension 1029 if(m_bAllowAA && !Application::GetDefaultDevice()->supportsOperation( OutDevSupport_TransparentRect )) 1030 { 1031 pThat->m_bAllowAA = false; 1032 } 1033 } 1034 1035 return m_bAllowAA; 1036 } 1037 1038 // primitives 1039 sal_Bool SvtOptionsDrawinglayer_Impl::IsAntiAliasing() const 1040 { 1041 return m_bAntiAliasing; 1042 } 1043 1044 sal_Bool SvtOptionsDrawinglayer_Impl::IsSnapHorVerLinesToDiscrete() const 1045 { 1046 return m_bSnapHorVerLinesToDiscrete; 1047 } 1048 1049 sal_Bool SvtOptionsDrawinglayer_Impl::IsSolidDragCreate() const 1050 { 1051 return m_bSolidDragCreate; 1052 } 1053 1054 sal_Bool SvtOptionsDrawinglayer_Impl::IsRenderDecoratedTextDirect() const 1055 { 1056 return m_bRenderDecoratedTextDirect; 1057 } 1058 1059 sal_Bool SvtOptionsDrawinglayer_Impl::IsRenderSimpleTextDirect() const 1060 { 1061 return m_bRenderSimpleTextDirect; 1062 } 1063 1064 sal_uInt32 SvtOptionsDrawinglayer_Impl::GetQuadratic3DRenderLimit() const 1065 { 1066 return m_nQuadratic3DRenderLimit; 1067 } 1068 1069 sal_uInt32 SvtOptionsDrawinglayer_Impl::GetQuadraticFormControlRenderLimit() const 1070 { 1071 return m_nQuadraticFormControlRenderLimit; 1072 } 1073 1074 void SvtOptionsDrawinglayer_Impl::SetAntiAliasing( sal_Bool bState ) 1075 { 1076 if(m_bAntiAliasing != bState) 1077 { 1078 m_bAntiAliasing = bState; 1079 SetModified(); 1080 } 1081 } 1082 1083 void SvtOptionsDrawinglayer_Impl::SetSnapHorVerLinesToDiscrete( sal_Bool bState ) 1084 { 1085 if(m_bSnapHorVerLinesToDiscrete != bState) 1086 { 1087 m_bSnapHorVerLinesToDiscrete = bState; 1088 SetModified(); 1089 } 1090 } 1091 1092 void SvtOptionsDrawinglayer_Impl::SetSolidDragCreate( sal_Bool bState ) 1093 { 1094 if(m_bSolidDragCreate != bState) 1095 { 1096 m_bSolidDragCreate = bState; 1097 SetModified(); 1098 } 1099 } 1100 1101 void SvtOptionsDrawinglayer_Impl::SetRenderDecoratedTextDirect( sal_Bool bState ) 1102 { 1103 if(m_bRenderDecoratedTextDirect != bState) 1104 { 1105 m_bRenderDecoratedTextDirect = bState; 1106 SetModified(); 1107 } 1108 } 1109 1110 void SvtOptionsDrawinglayer_Impl::SetRenderSimpleTextDirect( sal_Bool bState ) 1111 { 1112 if(m_bRenderSimpleTextDirect != bState) 1113 { 1114 m_bRenderSimpleTextDirect = bState; 1115 SetModified(); 1116 } 1117 } 1118 1119 void SvtOptionsDrawinglayer_Impl::SetQuadratic3DRenderLimit(sal_uInt32 nNew) 1120 { 1121 if(m_nQuadratic3DRenderLimit != nNew) 1122 { 1123 m_nQuadratic3DRenderLimit = nNew; 1124 SetModified(); 1125 } 1126 } 1127 1128 void SvtOptionsDrawinglayer_Impl::SetQuadraticFormControlRenderLimit(sal_uInt32 nNew) 1129 { 1130 if(m_nQuadraticFormControlRenderLimit != nNew) 1131 { 1132 m_nQuadraticFormControlRenderLimit = nNew; 1133 SetModified(); 1134 } 1135 } 1136 1137 // #i97672# selection settings 1138 sal_Bool SvtOptionsDrawinglayer_Impl::IsTransparentSelection() const 1139 { 1140 return m_bTransparentSelection; 1141 } 1142 1143 void SvtOptionsDrawinglayer_Impl::SetTransparentSelection( sal_Bool bState ) 1144 { 1145 if(m_bTransparentSelection != bState) 1146 { 1147 m_bTransparentSelection = bState; 1148 SetModified(); 1149 } 1150 } 1151 1152 void SvtOptionsDrawinglayer_Impl::SetTransparentSelectionPercent( sal_uInt16 nPercent ) 1153 { 1154 if(m_nTransparentSelectionPercent != nPercent) 1155 { 1156 m_nTransparentSelectionPercent = nPercent; 1157 SetModified(); 1158 } 1159 } 1160 1161 sal_uInt16 SvtOptionsDrawinglayer_Impl::GetTransparentSelectionPercent() const 1162 { 1163 return m_nTransparentSelectionPercent; 1164 } 1165 1166 void SvtOptionsDrawinglayer_Impl::SetSelectionMaximumLuminancePercent( sal_uInt16 nPercent ) 1167 { 1168 if(m_nSelectionMaximumLuminancePercent != nPercent) 1169 { 1170 m_nSelectionMaximumLuminancePercent = nPercent; 1171 SetModified(); 1172 } 1173 } 1174 1175 sal_uInt16 SvtOptionsDrawinglayer_Impl::GetSelectionMaximumLuminancePercent() const 1176 { 1177 return m_nSelectionMaximumLuminancePercent; 1178 } 1179 1180 //***************************************************************************************************************** 1181 // private method 1182 //***************************************************************************************************************** 1183 Sequence< OUString > SvtOptionsDrawinglayer_Impl::impl_GetPropertyNames() 1184 { 1185 // Build static list of configuration key names. 1186 static const OUString pProperties[] = 1187 { 1188 PROPERTYNAME_OVERLAYBUFFER , 1189 PROPERTYNAME_PAINTBUFFER , 1190 PROPERTYNAME_STRIPE_COLOR_A , 1191 PROPERTYNAME_STRIPE_COLOR_B , 1192 PROPERTYNAME_STRIPE_LENGTH , 1193 1194 // #i73602# 1195 PROPERTYNAME_OVERLAYBUFFER_CALC, 1196 PROPERTYNAME_OVERLAYBUFFER_WRITER, 1197 PROPERTYNAME_OVERLAYBUFFER_DRAWIMPRESS, 1198 1199 // #i74769#, #i75172# 1200 PROPERTYNAME_PAINTBUFFER_CALC, 1201 PROPERTYNAME_PAINTBUFFER_WRITER, 1202 PROPERTYNAME_PAINTBUFFER_DRAWIMPRESS, 1203 1204 // #i4219# 1205 PROPERTYNAME_MAXIMUMPAPERWIDTH, 1206 PROPERTYNAME_MAXIMUMPAPERHEIGHT, 1207 PROPERTYNAME_MAXIMUMPAPERLEFTMARGIN, 1208 PROPERTYNAME_MAXIMUMPAPERRIGHTMARGIN, 1209 PROPERTYNAME_MAXIMUMPAPERTOPMARGIN, 1210 PROPERTYNAME_MAXIMUMPAPERBOTTOMMARGIN, 1211 1212 // primitives 1213 PROPERTYNAME_ANTIALIASING, 1214 PROPERTYNAME_SNAPHORVERLINESTODISCRETE, 1215 PROPERTYNAME_SOLIDDRAGCREATE, 1216 PROPERTYNAME_RENDERDECORATEDTEXTDIRECT, 1217 PROPERTYNAME_RENDERSIMPLETEXTDIRECT, 1218 PROPERTYNAME_QUADRATIC3DRENDERLIMIT, 1219 PROPERTYNAME_QUADRATICFORMCONTROLRENDERLIMIT, 1220 1221 // #i97672# selection settings 1222 PROPERTYNAME_TRANSPARENTSELECTION, 1223 PROPERTYNAME_TRANSPARENTSELECTIONPERCENT, 1224 PROPERTYNAME_SELECTIONMAXIMUMLUMINANCEPERCENT 1225 }; 1226 1227 // Initialize return sequence with these list ... 1228 static const Sequence< OUString > seqPropertyNames( pProperties, PROPERTYCOUNT ); 1229 // ... and return it. 1230 return seqPropertyNames; 1231 } 1232 1233 //***************************************************************************************************************** 1234 // initialize static member 1235 // DON'T DO IT IN YOUR HEADER! 1236 // see definition for further informations 1237 //***************************************************************************************************************** 1238 SvtOptionsDrawinglayer_Impl* SvtOptionsDrawinglayer::m_pDataContainer = NULL; 1239 sal_Int32 SvtOptionsDrawinglayer::m_nRefCount = 0; 1240 1241 //***************************************************************************************************************** 1242 // constructor 1243 //***************************************************************************************************************** 1244 SvtOptionsDrawinglayer::SvtOptionsDrawinglayer() 1245 { 1246 // Global access, must be guarded (multithreading!). 1247 MutexGuard aGuard( GetOwnStaticMutex() ); 1248 // Increase ouer refcount ... 1249 ++m_nRefCount; 1250 // ... and initialize ouer data container only if it not already! 1251 if( m_pDataContainer == NULL ) 1252 { 1253 m_pDataContainer = new SvtOptionsDrawinglayer_Impl(); 1254 } 1255 } 1256 1257 //***************************************************************************************************************** 1258 // destructor 1259 //***************************************************************************************************************** 1260 SvtOptionsDrawinglayer::~SvtOptionsDrawinglayer() 1261 { 1262 // Global access, must be guarded (multithreading!) 1263 MutexGuard aGuard( GetOwnStaticMutex() ); 1264 // Decrease ouer refcount. 1265 --m_nRefCount; 1266 // If last instance was deleted ... 1267 // we must destroy ouer static data container! 1268 if( m_nRefCount <= 0 ) 1269 { 1270 delete m_pDataContainer; 1271 m_pDataContainer = NULL; 1272 } 1273 } 1274 1275 //***************************************************************************************************************** 1276 // public method 1277 //***************************************************************************************************************** 1278 sal_Bool SvtOptionsDrawinglayer::IsOverlayBuffer() const 1279 { 1280 MutexGuard aGuard( GetOwnStaticMutex() ); 1281 return m_pDataContainer->IsOverlayBuffer(); 1282 } 1283 1284 //***************************************************************************************************************** 1285 // public method 1286 //***************************************************************************************************************** 1287 sal_Bool SvtOptionsDrawinglayer::IsPaintBuffer() const 1288 { 1289 MutexGuard aGuard( GetOwnStaticMutex() ); 1290 return m_pDataContainer->IsPaintBuffer(); 1291 } 1292 1293 //***************************************************************************************************************** 1294 // public method 1295 //***************************************************************************************************************** 1296 Color SvtOptionsDrawinglayer::GetStripeColorA() const 1297 { 1298 MutexGuard aGuard( GetOwnStaticMutex() ); 1299 return m_pDataContainer->GetStripeColorA(); 1300 } 1301 1302 //***************************************************************************************************************** 1303 // public method 1304 //***************************************************************************************************************** 1305 Color SvtOptionsDrawinglayer::GetStripeColorB() const 1306 { 1307 MutexGuard aGuard( GetOwnStaticMutex() ); 1308 return m_pDataContainer->GetStripeColorB(); 1309 } 1310 1311 //***************************************************************************************************************** 1312 // public method 1313 //***************************************************************************************************************** 1314 sal_uInt16 SvtOptionsDrawinglayer::GetStripeLength() const 1315 { 1316 MutexGuard aGuard( GetOwnStaticMutex() ); 1317 return m_pDataContainer->GetStripeLength(); 1318 } 1319 1320 // #i73602# 1321 sal_Bool SvtOptionsDrawinglayer::IsOverlayBuffer_Calc() const 1322 { 1323 MutexGuard aGuard( GetOwnStaticMutex() ); 1324 return m_pDataContainer->IsOverlayBuffer_Calc(); 1325 } 1326 1327 sal_Bool SvtOptionsDrawinglayer::IsOverlayBuffer_Writer() const 1328 { 1329 MutexGuard aGuard( GetOwnStaticMutex() ); 1330 return m_pDataContainer->IsOverlayBuffer_Writer(); 1331 } 1332 1333 sal_Bool SvtOptionsDrawinglayer::IsOverlayBuffer_DrawImpress() const 1334 { 1335 MutexGuard aGuard( GetOwnStaticMutex() ); 1336 return m_pDataContainer->IsOverlayBuffer_DrawImpress(); 1337 } 1338 1339 // #i74769#, #i75172# 1340 sal_Bool SvtOptionsDrawinglayer::IsPaintBuffer_Calc() const 1341 { 1342 MutexGuard aGuard( GetOwnStaticMutex() ); 1343 return m_pDataContainer->IsPaintBuffer_Calc(); 1344 } 1345 1346 sal_Bool SvtOptionsDrawinglayer::IsPaintBuffer_Writer() const 1347 { 1348 MutexGuard aGuard( GetOwnStaticMutex() ); 1349 return m_pDataContainer->IsPaintBuffer_Writer(); 1350 } 1351 1352 sal_Bool SvtOptionsDrawinglayer::IsPaintBuffer_DrawImpress() const 1353 { 1354 MutexGuard aGuard( GetOwnStaticMutex() ); 1355 return m_pDataContainer->IsPaintBuffer_DrawImpress(); 1356 } 1357 1358 // #i4219# 1359 sal_uInt32 SvtOptionsDrawinglayer::GetMaximumPaperWidth() const 1360 { 1361 MutexGuard aGuard( GetOwnStaticMutex() ); 1362 return m_pDataContainer->GetMaximumPaperWidth(); 1363 } 1364 1365 sal_uInt32 SvtOptionsDrawinglayer::GetMaximumPaperHeight() const 1366 { 1367 MutexGuard aGuard( GetOwnStaticMutex() ); 1368 return m_pDataContainer->GetMaximumPaperHeight(); 1369 } 1370 1371 sal_uInt32 SvtOptionsDrawinglayer::GetMaximumPaperLeftMargin() const 1372 { 1373 MutexGuard aGuard( GetOwnStaticMutex() ); 1374 return m_pDataContainer->GetMaximumPaperLeftMargin(); 1375 } 1376 1377 sal_uInt32 SvtOptionsDrawinglayer::GetMaximumPaperRightMargin() const 1378 { 1379 MutexGuard aGuard( GetOwnStaticMutex() ); 1380 return m_pDataContainer->GetMaximumPaperRightMargin(); 1381 } 1382 1383 sal_uInt32 SvtOptionsDrawinglayer::GetMaximumPaperTopMargin() const 1384 { 1385 MutexGuard aGuard( GetOwnStaticMutex() ); 1386 return m_pDataContainer->GetMaximumPaperTopMargin(); 1387 } 1388 1389 sal_uInt32 SvtOptionsDrawinglayer::GetMaximumPaperBottomMargin() const 1390 { 1391 MutexGuard aGuard( GetOwnStaticMutex() ); 1392 return m_pDataContainer->GetMaximumPaperBottomMargin(); 1393 } 1394 1395 //***************************************************************************************************************** 1396 // public method 1397 //***************************************************************************************************************** 1398 void SvtOptionsDrawinglayer::SetOverlayBuffer( sal_Bool bState ) 1399 { 1400 MutexGuard aGuard( GetOwnStaticMutex() ); 1401 m_pDataContainer->SetOverlayBuffer( bState ); 1402 } 1403 1404 //***************************************************************************************************************** 1405 // public method 1406 //***************************************************************************************************************** 1407 void SvtOptionsDrawinglayer::SetPaintBuffer( sal_Bool bState ) 1408 { 1409 MutexGuard aGuard( GetOwnStaticMutex() ); 1410 m_pDataContainer->SetPaintBuffer( bState ); 1411 } 1412 1413 //***************************************************************************************************************** 1414 // public method 1415 //***************************************************************************************************************** 1416 void SvtOptionsDrawinglayer::SetStripeColorA( Color aColor ) 1417 { 1418 MutexGuard aGuard( GetOwnStaticMutex() ); 1419 m_pDataContainer->SetStripeColorA( aColor ); 1420 } 1421 1422 //***************************************************************************************************************** 1423 // public method 1424 //***************************************************************************************************************** 1425 void SvtOptionsDrawinglayer::SetStripeColorB( Color aColor ) 1426 { 1427 MutexGuard aGuard( GetOwnStaticMutex() ); 1428 m_pDataContainer->SetStripeColorB( aColor ); 1429 } 1430 1431 //***************************************************************************************************************** 1432 // public method 1433 //***************************************************************************************************************** 1434 void SvtOptionsDrawinglayer::SetStripeLength( sal_uInt16 nLength ) 1435 { 1436 MutexGuard aGuard( GetOwnStaticMutex() ); 1437 m_pDataContainer->SetStripeLength( nLength ); 1438 } 1439 1440 // #i73602# 1441 void SvtOptionsDrawinglayer::SetOverlayBuffer_Calc( sal_Bool bState ) 1442 { 1443 MutexGuard aGuard( GetOwnStaticMutex() ); 1444 m_pDataContainer->SetOverlayBuffer_Calc( bState ); 1445 } 1446 1447 void SvtOptionsDrawinglayer::SetOverlayBuffer_Writer( sal_Bool bState ) 1448 { 1449 MutexGuard aGuard( GetOwnStaticMutex() ); 1450 m_pDataContainer->SetOverlayBuffer_Writer( bState ); 1451 } 1452 1453 void SvtOptionsDrawinglayer::SetOverlayBuffer_DrawImpress( sal_Bool bState ) 1454 { 1455 MutexGuard aGuard( GetOwnStaticMutex() ); 1456 m_pDataContainer->SetOverlayBuffer_DrawImpress( bState ); 1457 } 1458 1459 // #i74769#, #i75172# 1460 void SvtOptionsDrawinglayer::SetPaintBuffer_Calc( sal_Bool bState ) 1461 { 1462 MutexGuard aGuard( GetOwnStaticMutex() ); 1463 m_pDataContainer->SetPaintBuffer_Calc( bState ); 1464 } 1465 1466 void SvtOptionsDrawinglayer::SetPaintBuffer_Writer( sal_Bool bState ) 1467 { 1468 MutexGuard aGuard( GetOwnStaticMutex() ); 1469 m_pDataContainer->SetPaintBuffer_Writer( bState ); 1470 } 1471 1472 void SvtOptionsDrawinglayer::SetPaintBuffer_DrawImpress( sal_Bool bState ) 1473 { 1474 MutexGuard aGuard( GetOwnStaticMutex() ); 1475 m_pDataContainer->SetPaintBuffer_DrawImpress( bState ); 1476 } 1477 1478 // #i4219# 1479 void SvtOptionsDrawinglayer::SetMaximumPaperWidth( sal_uInt32 nNew ) 1480 { 1481 MutexGuard aGuard( GetOwnStaticMutex() ); 1482 m_pDataContainer->SetMaximumPaperWidth( nNew ); 1483 } 1484 1485 void SvtOptionsDrawinglayer::SetMaximumPaperHeight( sal_uInt32 nNew ) 1486 { 1487 MutexGuard aGuard( GetOwnStaticMutex() ); 1488 m_pDataContainer->SetMaximumPaperHeight( nNew ); 1489 } 1490 1491 void SvtOptionsDrawinglayer::SetMaximumPaperLeftMargin( sal_uInt32 nNew ) 1492 { 1493 MutexGuard aGuard( GetOwnStaticMutex() ); 1494 m_pDataContainer->SetMaximumPaperLeftMargin( nNew ); 1495 } 1496 1497 void SvtOptionsDrawinglayer::SetMaximumPaperRightMargin( sal_uInt32 nNew ) 1498 { 1499 MutexGuard aGuard( GetOwnStaticMutex() ); 1500 m_pDataContainer->SetMaximumPaperRightMargin( nNew ); 1501 } 1502 1503 void SvtOptionsDrawinglayer::SetMaximumPaperTopMargin( sal_uInt32 nNew ) 1504 { 1505 MutexGuard aGuard( GetOwnStaticMutex() ); 1506 m_pDataContainer->SetMaximumPaperTopMargin( nNew ); 1507 } 1508 1509 void SvtOptionsDrawinglayer::SetMaximumPaperBottomMargin( sal_uInt32 nNew ) 1510 { 1511 MutexGuard aGuard( GetOwnStaticMutex() ); 1512 m_pDataContainer->SetMaximumPaperBottomMargin( nNew ); 1513 } 1514 1515 // helper 1516 sal_Bool SvtOptionsDrawinglayer::IsAAPossibleOnThisSystem() const 1517 { 1518 return m_pDataContainer->IsAAPossibleOnThisSystem(); 1519 } 1520 1521 // primitives 1522 sal_Bool SvtOptionsDrawinglayer::IsAntiAliasing() const 1523 { 1524 MutexGuard aGuard( GetOwnStaticMutex() ); 1525 return m_pDataContainer->IsAntiAliasing() && IsAAPossibleOnThisSystem(); 1526 } 1527 1528 sal_Bool SvtOptionsDrawinglayer::IsSnapHorVerLinesToDiscrete() const 1529 { 1530 MutexGuard aGuard( GetOwnStaticMutex() ); 1531 return m_pDataContainer->IsAntiAliasing() && m_pDataContainer->IsSnapHorVerLinesToDiscrete(); 1532 } 1533 1534 sal_Bool SvtOptionsDrawinglayer::IsSolidDragCreate() const 1535 { 1536 MutexGuard aGuard( GetOwnStaticMutex() ); 1537 return m_pDataContainer->IsSolidDragCreate(); 1538 } 1539 1540 sal_Bool SvtOptionsDrawinglayer::IsRenderDecoratedTextDirect() const 1541 { 1542 MutexGuard aGuard( GetOwnStaticMutex() ); 1543 return m_pDataContainer->IsRenderDecoratedTextDirect(); 1544 } 1545 1546 sal_Bool SvtOptionsDrawinglayer::IsRenderSimpleTextDirect() const 1547 { 1548 MutexGuard aGuard( GetOwnStaticMutex() ); 1549 return m_pDataContainer->IsRenderSimpleTextDirect(); 1550 } 1551 1552 sal_uInt32 SvtOptionsDrawinglayer::GetQuadratic3DRenderLimit() const 1553 { 1554 MutexGuard aGuard( GetOwnStaticMutex() ); 1555 return m_pDataContainer->GetQuadratic3DRenderLimit(); 1556 } 1557 1558 sal_uInt32 SvtOptionsDrawinglayer::GetQuadraticFormControlRenderLimit() const 1559 { 1560 MutexGuard aGuard( GetOwnStaticMutex() ); 1561 return m_pDataContainer->GetQuadraticFormControlRenderLimit(); 1562 } 1563 1564 void SvtOptionsDrawinglayer::SetAntiAliasing( sal_Bool bState ) 1565 { 1566 MutexGuard aGuard( GetOwnStaticMutex() ); 1567 m_pDataContainer->SetAntiAliasing( bState ); 1568 } 1569 1570 void SvtOptionsDrawinglayer::SetSnapHorVerLinesToDiscrete( sal_Bool bState ) 1571 { 1572 MutexGuard aGuard( GetOwnStaticMutex() ); 1573 m_pDataContainer->SetSnapHorVerLinesToDiscrete( bState ); 1574 } 1575 1576 void SvtOptionsDrawinglayer::SetSolidDragCreate( sal_Bool bState ) 1577 { 1578 MutexGuard aGuard( GetOwnStaticMutex() ); 1579 m_pDataContainer->SetSolidDragCreate( bState ); 1580 } 1581 1582 void SvtOptionsDrawinglayer::SetRenderDecoratedTextDirect( sal_Bool bState ) 1583 { 1584 MutexGuard aGuard( GetOwnStaticMutex() ); 1585 m_pDataContainer->SetRenderDecoratedTextDirect( bState ); 1586 } 1587 1588 void SvtOptionsDrawinglayer::SetRenderSimpleTextDirect( sal_Bool bState ) 1589 { 1590 MutexGuard aGuard( GetOwnStaticMutex() ); 1591 m_pDataContainer->SetRenderSimpleTextDirect( bState ); 1592 } 1593 1594 void SvtOptionsDrawinglayer::SetQuadratic3DRenderLimit(sal_uInt32 nNew) 1595 { 1596 MutexGuard aGuard( GetOwnStaticMutex() ); 1597 m_pDataContainer->SetQuadratic3DRenderLimit( nNew ); 1598 } 1599 1600 void SvtOptionsDrawinglayer::SetQuadraticFormControlRenderLimit(sal_uInt32 nNew) 1601 { 1602 MutexGuard aGuard( GetOwnStaticMutex() ); 1603 m_pDataContainer->SetQuadraticFormControlRenderLimit( nNew ); 1604 } 1605 1606 // #i97672# selection settings 1607 sal_Bool SvtOptionsDrawinglayer::IsTransparentSelection() const 1608 { 1609 MutexGuard aGuard( GetOwnStaticMutex() ); 1610 return m_pDataContainer->IsTransparentSelection(); 1611 } 1612 1613 void SvtOptionsDrawinglayer::SetTransparentSelection( sal_Bool bState ) 1614 { 1615 MutexGuard aGuard( GetOwnStaticMutex() ); 1616 m_pDataContainer->SetTransparentSelection( bState ); 1617 } 1618 1619 sal_uInt16 SvtOptionsDrawinglayer::GetTransparentSelectionPercent() const 1620 { 1621 MutexGuard aGuard( GetOwnStaticMutex() ); 1622 sal_uInt16 aRetval(m_pDataContainer->GetTransparentSelectionPercent()); 1623 1624 // crop to range [10% .. 90%] 1625 if(aRetval < 10) 1626 { 1627 aRetval = 10; 1628 } 1629 1630 if(aRetval > 90) 1631 { 1632 aRetval = 90; 1633 } 1634 1635 return aRetval; 1636 } 1637 1638 void SvtOptionsDrawinglayer::SetTransparentSelectionPercent( sal_uInt16 nPercent ) 1639 { 1640 MutexGuard aGuard( GetOwnStaticMutex() ); 1641 1642 // crop to range [10% .. 90%] 1643 if(nPercent < 10) 1644 { 1645 nPercent = 10; 1646 } 1647 1648 if(nPercent > 90) 1649 { 1650 nPercent = 90; 1651 } 1652 1653 m_pDataContainer->SetTransparentSelectionPercent( nPercent ); 1654 } 1655 1656 sal_uInt16 SvtOptionsDrawinglayer::GetSelectionMaximumLuminancePercent() const 1657 { 1658 MutexGuard aGuard( GetOwnStaticMutex() ); 1659 sal_uInt16 aRetval(m_pDataContainer->GetSelectionMaximumLuminancePercent()); 1660 1661 // crop to range [0% .. 100%] 1662 if(aRetval > 90) 1663 { 1664 aRetval = 90; 1665 } 1666 1667 return aRetval; 1668 } 1669 1670 void SvtOptionsDrawinglayer::SetSelectionMaximumLuminancePercent( sal_uInt16 nPercent ) 1671 { 1672 MutexGuard aGuard( GetOwnStaticMutex() ); 1673 1674 // crop to range [0% .. 100%] 1675 if(nPercent > 90) 1676 { 1677 nPercent = 90; 1678 } 1679 1680 m_pDataContainer->SetSelectionMaximumLuminancePercent( nPercent ); 1681 } 1682 1683 //***************************************************************************************************************** 1684 // private method 1685 //***************************************************************************************************************** 1686 Mutex& SvtOptionsDrawinglayer::GetOwnStaticMutex() 1687 { 1688 // Initialize static mutex only for one time! 1689 static Mutex* pMutex = NULL; 1690 // If these method first called (Mutex not already exist!) ... 1691 if( pMutex == NULL ) 1692 { 1693 // ... we must create a new one. Protect follow code with the global mutex - 1694 // It must be - we create a static variable! 1695 MutexGuard aGuard( Mutex::getGlobalMutex() ); 1696 // We must check our pointer again - because it can be that another instance of ouer class will be fastr then these! 1697 if( pMutex == NULL ) 1698 { 1699 // Create the new mutex and set it for return on static variable. 1700 static Mutex aMutex; 1701 pMutex = &aMutex; 1702 } 1703 } 1704 // Return new created or already existing mutex object. 1705 return *pMutex; 1706 } 1707 1708 // eof 1709 1710