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