1 /**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied. See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_sd.hxx"
26 #include <svx/svdmodel.hxx>
27 #include <sfx2/app.hxx>
28 #include <sfx2/sfx.hrc>
29 #ifndef _SV_SALBTYPE_HRC //autogen
30 #include <vcl/salbtype.hxx>
31 #endif
32 #include <unotools/syslocale.hxx>
33
34 #include "app.hxx"
35 #include "optsitem.hxx"
36 #include "cfgids.hxx"
37 #include "FrameView.hxx"
38
39 using namespace ::rtl;
40 using namespace ::utl;
41 using namespace ::com::sun::star::uno;
42
43 #define B2U(_def_aStr) (OUString::createFromAscii(_def_aStr))
44
getSafeValue(const Any & rAny)45 template< class T > T getSafeValue( const Any& rAny )
46 {
47 T value = T();
48 bool bOk = (rAny >>= value);
49
50 DBG_ASSERT( bOk, "SdOptionsItem, wrong type from configuration!" );
51 (void)bOk;
52
53 return value;
54 }
55
56 // -----------------
57 // - SdOptionsItem -
58 // -----------------
59
SdOptionsItem(const SdOptionsGeneric & rParent,const OUString rSubTree)60 SdOptionsItem::SdOptionsItem( const SdOptionsGeneric& rParent, const OUString rSubTree ) :
61 ConfigItem ( rSubTree ),
62 mrParent ( rParent )
63 {
64 }
65
66 // -----------------------------------------------------------------------------
67
~SdOptionsItem()68 SdOptionsItem::~SdOptionsItem()
69 {
70 }
71
72 // -----------------------------------------------------------------------------
73
Commit()74 void SdOptionsItem::Commit()
75 {
76 if( IsModified() )
77 mrParent.Commit( *this );
78 };
79
Notify(const com::sun::star::uno::Sequence<rtl::OUString> &)80 void SdOptionsItem::Notify( const com::sun::star::uno::Sequence<rtl::OUString>& )
81 {}
82
83
84 // -----------------------------------------------------------------------------
85
GetProperties(const Sequence<OUString> & rNames)86 Sequence< Any > SdOptionsItem::GetProperties( const Sequence< OUString >& rNames )
87 {
88 return ConfigItem::GetProperties( rNames );
89 }
90
91 // -----------------------------------------------------------------------------
92
PutProperties(const Sequence<OUString> & rNames,const Sequence<Any> & rValues)93 sal_Bool SdOptionsItem::PutProperties( const Sequence< OUString >& rNames, const Sequence< Any>& rValues )
94 {
95 return ConfigItem::PutProperties( rNames, rValues );
96 }
97
98 // -----------------------------------------------------------------------------
99
SetModified()100 void SdOptionsItem::SetModified()
101 {
102 ConfigItem::SetModified();
103 }
104
105 // --------------------
106 // - SdOptionsGeneric -
107 // --------------------
108
SdOptionsGeneric(sal_uInt16 nConfigId,const OUString & rSubTree)109 SdOptionsGeneric::SdOptionsGeneric( sal_uInt16 nConfigId, const OUString& rSubTree ) :
110 maSubTree ( rSubTree ),
111 mpCfgItem ( NULL ),
112 mnConfigId ( nConfigId ),
113 mbInit ( rSubTree.getLength() == 0 )
114 {
115 }
116
117 // -----------------------------------------------------------------------------
118
Init() const119 void SdOptionsGeneric::Init() const
120 {
121 if( !mbInit )
122 {
123 SdOptionsGeneric* pThis = const_cast<SdOptionsGeneric*>(this);
124
125 if( !mpCfgItem )
126 pThis->mpCfgItem = new SdOptionsItem( *this, maSubTree );
127
128 const Sequence< OUString > aNames( GetPropertyNames() );
129 const Sequence< Any > aValues = mpCfgItem->GetProperties( aNames );
130
131 if( aNames.getLength() && ( aValues.getLength() == aNames.getLength() ) )
132 {
133 const Any* pValues = aValues.getConstArray();
134
135 pThis->EnableModify( sal_False );
136 pThis->mbInit = pThis->ReadData( pValues );
137 pThis->EnableModify( sal_True );
138 }
139 else
140 pThis->mbInit = sal_True;
141 }
142 }
143
144 // -----------------------------------------------------------------------------
145
~SdOptionsGeneric()146 SdOptionsGeneric::~SdOptionsGeneric()
147 {
148 delete mpCfgItem;
149 mpCfgItem = NULL;
150 }
151
152 // -----------------------------------------------------------------------------
153
Commit(SdOptionsItem & rCfgItem) const154 void SdOptionsGeneric::Commit( SdOptionsItem& rCfgItem ) const
155 {
156 const Sequence< OUString > aNames( GetPropertyNames() );
157 Sequence< Any > aValues( aNames.getLength() );
158
159 if( aNames.getLength() && ( aValues.getLength() == aNames.getLength() ) )
160 {
161 if( (const_cast<SdOptionsGeneric*>(this))->WriteData( aValues.getArray() ) )
162 rCfgItem.PutProperties( aNames, aValues );
163 else
164 {
165 DBG_ERROR( "PutProperties failed" );
166 }
167 }
168 }
169
170 // -----------------------------------------------------------------------------
171
GetPropertyNames() const172 Sequence< OUString > SdOptionsGeneric::GetPropertyNames() const
173 {
174 sal_uLong nCount;
175 const char** ppPropNames;
176
177 GetPropNameArray( ppPropNames, nCount );
178
179 Sequence< OUString > aNames( nCount );
180 OUString* pNames = aNames.getArray();
181
182 for( sal_uLong i = 0; i < nCount; i++ )
183 pNames[ i ] = OUString::createFromAscii( ppPropNames[ i ] );
184
185 return aNames;
186 }
187
188 // -----------------------------------------------------------------------------
189
Store()190 void SdOptionsGeneric::Store()
191 {
192 if( mpCfgItem )
193 mpCfgItem->Commit();
194 }
195
196 // -----------------------------------------------------------------------------
197
isMetricSystem()198 bool SdOptionsGeneric::isMetricSystem()
199 {
200 SvtSysLocale aSysLocale;
201 MeasurementSystem eSys = aSysLocale.GetLocaleDataPtr()->getMeasurementSystemEnum();
202
203 return ( eSys == MEASURE_METRIC );
204 }
205
206 /*************************************************************************
207 |*
208 |* SdOptionsLayout
209 |*
210 \************************************************************************/
211
SdOptionsLayout(sal_uInt16 nConfigId,sal_Bool bUseConfig)212 SdOptionsLayout::SdOptionsLayout( sal_uInt16 nConfigId, sal_Bool bUseConfig ) :
213 SdOptionsGeneric( nConfigId, bUseConfig ?
214 ( ( SDCFG_DRAW == nConfigId ) ?
215 B2U( "Office.Draw/Layout" ) :
216 B2U( "Office.Impress/Layout" ) ) :
217 OUString() ),
218 bRuler( sal_True ),
219 bMoveOutline( sal_True ),
220 bDragStripes( sal_False ),
221 bHandlesBezier( sal_False ),
222 bHelplines( sal_True ),
223 nMetric((sal_uInt16)(isMetricSystem() ? FUNIT_CM : FUNIT_INCH)),
224 nDefTab( 1250 )
225 {
226 EnableModify( sal_True );
227 }
228
229 // -----------------------------------------------------------------------------
230
operator ==(const SdOptionsLayout & rOpt) const231 sal_Bool SdOptionsLayout::operator==( const SdOptionsLayout& rOpt ) const
232 {
233 return( IsRulerVisible() == rOpt.IsRulerVisible() &&
234 IsMoveOutline() == rOpt.IsMoveOutline() &&
235 IsDragStripes() == rOpt.IsDragStripes() &&
236 IsHandlesBezier() == rOpt.IsHandlesBezier() &&
237 IsHelplines() == rOpt.IsHelplines() &&
238 GetMetric() == rOpt.GetMetric() &&
239 GetDefTab() == rOpt.GetDefTab() );
240 }
241
242 // -----------------------------------------------------------------------------
243
GetPropNameArray(const char ** & ppNames,sal_uLong & rCount) const244 void SdOptionsLayout::GetPropNameArray( const char**& ppNames, sal_uLong& rCount ) const
245 {
246 static const char* aPropNamesMetric[] =
247 {
248 "Display/Ruler",
249 "Display/Bezier",
250 "Display/Contour",
251 "Display/Guide",
252 "Display/Helpline",
253 "Other/MeasureUnit/Metric",
254 "Other/TabStop/Metric"
255 };
256
257 static const char* aPropNamesNonMetric[] =
258 {
259 "Display/Ruler",
260 "Display/Bezier",
261 "Display/Contour",
262 "Display/Guide",
263 "Display/Helpline",
264 "Other/MeasureUnit/NonMetric",
265 "Other/TabStop/NonMetric"
266 };
267
268 rCount = 7;
269
270 if( isMetricSystem() )
271 ppNames = aPropNamesMetric;
272 else
273 ppNames = aPropNamesNonMetric;
274 }
275
276 // -----------------------------------------------------------------------------
277
ReadData(const Any * pValues)278 sal_Bool SdOptionsLayout::ReadData( const Any* pValues )
279 {
280 if( pValues[0].hasValue() ) SetRulerVisible( *(sal_Bool*) pValues[ 0 ].getValue() );
281 if( pValues[1].hasValue() ) SetHandlesBezier( *(sal_Bool*) pValues[ 1 ].getValue() );
282 if( pValues[2].hasValue() ) SetMoveOutline( *(sal_Bool*) pValues[ 2 ].getValue() );
283 if( pValues[3].hasValue() ) SetDragStripes( *(sal_Bool*) pValues[ 3 ].getValue() );
284 if( pValues[4].hasValue() ) SetHelplines( *(sal_Bool*) pValues[ 4 ].getValue() );
285 if( pValues[5].hasValue() ) SetMetric( (sal_uInt16) *(sal_Int32*) pValues[ 5 ].getValue() );
286 if( pValues[6].hasValue() ) SetDefTab( (sal_uInt16) *(sal_Int32*) pValues[ 6 ].getValue() );
287
288 return sal_True;
289 }
290
291 // -----------------------------------------------------------------------------
292
WriteData(Any * pValues) const293 sal_Bool SdOptionsLayout::WriteData( Any* pValues ) const
294 {
295 pValues[ 0 ] <<= IsRulerVisible();
296 pValues[ 1 ] <<= IsHandlesBezier();
297 pValues[ 2 ] <<= IsMoveOutline();
298 pValues[ 3 ] <<= IsDragStripes();
299 pValues[ 4 ] <<= IsHelplines();
300 pValues[ 5 ] <<= (sal_Int32) GetMetric();
301 pValues[ 6 ] <<= (sal_Int32) GetDefTab();
302
303 return sal_True;
304 }
305
306 /*************************************************************************
307 |*
308 |* SdOptionsLayoutItem
309 |*
310 \************************************************************************/
311
SdOptionsLayoutItem(sal_uInt16 _nWhich)312 SdOptionsLayoutItem::SdOptionsLayoutItem( sal_uInt16 _nWhich )
313 : SfxPoolItem ( _nWhich )
314 , maOptionsLayout ( 0, sal_False )
315 {
316 }
317
318 // ----------------------------------------------------------------------
319
SdOptionsLayoutItem(sal_uInt16 _nWhich,SdOptions * pOpts,::sd::FrameView * pView)320 SdOptionsLayoutItem::SdOptionsLayoutItem( sal_uInt16 _nWhich, SdOptions* pOpts, ::sd::FrameView* pView )
321 : SfxPoolItem ( _nWhich )
322 , maOptionsLayout ( 0, sal_False )
323 {
324 if( pOpts )
325 {
326 maOptionsLayout.SetMetric( pOpts->GetMetric() );
327 maOptionsLayout.SetDefTab( pOpts->GetDefTab() );
328 }
329
330 if( pView )
331 {
332 maOptionsLayout.SetRulerVisible( pView->HasRuler() );
333 maOptionsLayout.SetMoveOutline( !pView->IsNoDragXorPolys() );
334 maOptionsLayout.SetDragStripes( pView->IsDragStripes() );
335 maOptionsLayout.SetHandlesBezier( pView->IsPlusHandlesAlwaysVisible() );
336 maOptionsLayout.SetHelplines( pView->IsHlplVisible() );
337 }
338 else if( pOpts )
339 {
340 maOptionsLayout.SetRulerVisible( pOpts->IsRulerVisible() );
341 maOptionsLayout.SetMoveOutline( pOpts->IsMoveOutline() );
342 maOptionsLayout.SetDragStripes( pOpts->IsDragStripes() );
343 maOptionsLayout.SetHandlesBezier( pOpts->IsHandlesBezier() );
344 maOptionsLayout.SetHelplines( pOpts->IsHelplines() );
345 }
346 }
347
348 // ----------------------------------------------------------------------
349
Clone(SfxItemPool *) const350 SfxPoolItem* SdOptionsLayoutItem::Clone( SfxItemPool* ) const
351 {
352 return new SdOptionsLayoutItem( *this );
353 }
354
355
356 // ----------------------------------------------------------------------
357
operator ==(const SfxPoolItem & rAttr) const358 int SdOptionsLayoutItem::operator==( const SfxPoolItem& rAttr ) const
359 {
360 const bool bSameType = SfxPoolItem::operator==( rAttr );
361 DBG_ASSERT( bSameType, "SdOptionsLayoutItem::operator==(), differen pool item type!" );
362 return bSameType && ( maOptionsLayout == static_cast< const SdOptionsLayoutItem& >( rAttr ).maOptionsLayout );
363 }
364
365 // -----------------------------------------------------------------------
366
SetOptions(SdOptions * pOpts) const367 void SdOptionsLayoutItem::SetOptions( SdOptions* pOpts ) const
368 {
369 if( pOpts )
370 {
371 pOpts->SetRulerVisible( maOptionsLayout.IsRulerVisible() );
372 pOpts->SetMoveOutline( maOptionsLayout.IsMoveOutline() );
373 pOpts->SetDragStripes( maOptionsLayout.IsDragStripes() );
374 pOpts->SetHandlesBezier( maOptionsLayout.IsHandlesBezier() );
375 pOpts->SetHelplines( maOptionsLayout.IsHelplines() );
376 pOpts->SetMetric( maOptionsLayout.GetMetric() );
377 pOpts->SetDefTab( maOptionsLayout.GetDefTab() );
378 }
379 }
380
381 /*************************************************************************
382 |*
383 |* SdOptionsContents
384 |*
385 \************************************************************************/
386
SdOptionsContents(sal_uInt16 nConfigId,sal_Bool bUseConfig)387 SdOptionsContents::SdOptionsContents( sal_uInt16 nConfigId, sal_Bool bUseConfig ) :
388 SdOptionsGeneric( nConfigId, bUseConfig ?
389 ( ( SDCFG_DRAW == nConfigId ) ?
390 B2U( "Office.Draw/Content" ) :
391 B2U( "Office.Impress/Content" ) ) :
392 OUString() )
393 {
394 EnableModify( sal_True );
395 }
396
397 // -----------------------------------------------------------------------------
398
operator ==(const SdOptionsContents &) const399 sal_Bool SdOptionsContents::operator==(const SdOptionsContents&) const
400 {
401 return true;
402 }
403
404 // -----------------------------------------------------------------------------
405
GetPropNameArray(const char ** & ppNames,sal_uLong & rCount) const406 void SdOptionsContents::GetPropNameArray( const char**& ppNames, sal_uLong& rCount ) const
407 {
408 static const char* aPropNames[] =
409 {
410 "Display/PicturePlaceholder",
411 "Display/ContourMode",
412 "Display/LineContour",
413 "Display/TextPlaceholder"
414 };
415
416 rCount = 4;
417 ppNames = aPropNames;
418 }
419
420 // -----------------------------------------------------------------------------
421
ReadData(const Any *)422 sal_Bool SdOptionsContents::ReadData(const Any*)
423 {
424 return sal_True;
425 }
426
427 // -----------------------------------------------------------------------------
428
WriteData(Any * pValues) const429 sal_Bool SdOptionsContents::WriteData( Any* pValues ) const
430 {
431 //#i80528# no draft anymore
432 pValues[ 0 ] <<= (sal_Bool)false;
433 pValues[ 1 ] <<= (sal_Bool)false;
434 pValues[ 2 ] <<= (sal_Bool)false;
435 pValues[ 3 ] <<= (sal_Bool)false;
436
437 return sal_True;
438 }
439
440 /*************************************************************************
441 |*
442 |* SdOptionsContentsItem
443 |*
444 \************************************************************************/
445
SdOptionsContentsItem(sal_uInt16 _nWhich,SdOptions *,::sd::FrameView *)446 SdOptionsContentsItem::SdOptionsContentsItem(sal_uInt16 _nWhich, SdOptions*, ::sd::FrameView*)
447 : SfxPoolItem ( _nWhich )
448 , maOptionsContents ( 0, sal_False )
449 {
450 }
451
452 // ----------------------------------------------------------------------
453
Clone(SfxItemPool *) const454 SfxPoolItem* SdOptionsContentsItem::Clone( SfxItemPool* ) const
455 {
456 return new SdOptionsContentsItem( *this );
457 }
458
459 // ----------------------------------------------------------------------
460
operator ==(const SfxPoolItem & rAttr) const461 int SdOptionsContentsItem::operator==( const SfxPoolItem& rAttr ) const
462 {
463 const bool bSameType = SfxPoolItem::operator==(rAttr);
464 DBG_ASSERT( bSameType, "SdOptionsContentsItem::operator==(), differen pool item type!" );
465 return bSameType && ( maOptionsContents == static_cast<const SdOptionsContentsItem&>( rAttr ).maOptionsContents );
466 }
467
468 // -----------------------------------------------------------------------
469
SetOptions(SdOptions *) const470 void SdOptionsContentsItem::SetOptions(SdOptions*) const
471 {
472 }
473
474 /*************************************************************************
475 |*
476 |* SdOptionsMisc
477 |*
478 \************************************************************************/
479
SdOptionsMisc(sal_uInt16 nConfigId,sal_Bool bUseConfig)480 SdOptionsMisc::SdOptionsMisc( sal_uInt16 nConfigId, sal_Bool bUseConfig ) :
481 SdOptionsGeneric( nConfigId, bUseConfig ?
482 ( ( SDCFG_DRAW == nConfigId ) ?
483 B2U( "Office.Draw/Misc" ) :
484 B2U( "Office.Impress/Misc" ) ) :
485 OUString() ),
486 // #97016#
487 nDefaultObjectSizeWidth(8000),
488 nDefaultObjectSizeHeight(5000),
489 bStartWithTemplate( sal_True ),
490 bMarkedHitMovesAlways( sal_True ),
491 bMoveOnlyDragging( sal_False ),
492 bCrookNoContortion( sal_False ),
493 bQuickEdit( GetConfigId() != SDCFG_DRAW ),
494 bMasterPageCache( sal_True ),
495 bDragWithCopy( sal_False ),
496 bPickThrough( sal_True ),
497 bBigHandles( sal_True ), // new default: Use big handles
498 bDoubleClickTextEdit( sal_True ),
499 bClickChangeRotation( sal_False ),
500 bStartWithActualPage( sal_False ),
501 bStartWithPresenterScreen( sal_True ), // default: Enable the Presenter Screen
502 bSolidDragging( sal_True ),
503 bSolidMarkHdl( sal_True ), // default: Use nice handles
504 bSummationOfParagraphs( sal_False ),
505 // #90356#
506 bShowUndoDeleteWarning( sal_True ),
507 bSlideshowRespectZOrder( sal_True ),
508 bShowComments( sal_True ),
509 bPreviewNewEffects( sal_True ),
510 bPreviewChangedEffects( sal_False ),
511 bPreviewTransitions( sal_True ),
512 mnDisplay( 0 ),
513 mnPenColor( 0xff0000 ),
514 mnPenWidth( 150.0 ),
515
516 // The default for 6.1-and-above documents is to use printer-independent
517 // formatting.
518 mnPrinterIndependentLayout (1)
519 {
520 EnableModify( sal_True );
521 }
522
523 // -----------------------------------------------------------------------------
524
operator ==(const SdOptionsMisc & rOpt) const525 sal_Bool SdOptionsMisc::operator==( const SdOptionsMisc& rOpt ) const
526 {
527 return( IsStartWithTemplate() == rOpt.IsStartWithTemplate() &&
528 IsMarkedHitMovesAlways() == rOpt.IsMarkedHitMovesAlways() &&
529 IsMoveOnlyDragging() == rOpt.IsMoveOnlyDragging() &&
530 IsCrookNoContortion() == rOpt.IsCrookNoContortion() &&
531 IsQuickEdit() == rOpt.IsQuickEdit() &&
532 IsMasterPagePaintCaching() == rOpt.IsMasterPagePaintCaching() &&
533 IsDragWithCopy() == rOpt.IsDragWithCopy() &&
534 IsPickThrough() == rOpt.IsPickThrough() &&
535 IsBigHandles() == rOpt.IsBigHandles() &&
536 IsDoubleClickTextEdit() == rOpt.IsDoubleClickTextEdit() &&
537 IsClickChangeRotation() == rOpt.IsClickChangeRotation() &&
538 IsStartWithActualPage() == rOpt.IsStartWithActualPage() &&
539 IsStartWithPresenterScreen() == rOpt.IsStartWithPresenterScreen() &&
540 IsSummationOfParagraphs() == rOpt.IsSummationOfParagraphs() &&
541 IsSolidDragging() == rOpt.IsSolidDragging() &&
542 IsSolidMarkHdl() == rOpt.IsSolidMarkHdl() &&
543 // #90356#
544 IsShowUndoDeleteWarning() == rOpt.IsShowUndoDeleteWarning() &&
545 IsSlideshowRespectZOrder() == rOpt.IsSlideshowRespectZOrder() &&
546 GetPrinterIndependentLayout() == rOpt.GetPrinterIndependentLayout() &&
547 // #97016#
548 GetDefaultObjectSizeWidth() == rOpt.GetDefaultObjectSizeWidth() &&
549 GetDefaultObjectSizeHeight() == rOpt.GetDefaultObjectSizeHeight() &&
550
551 IsPreviewNewEffects() == rOpt.IsPreviewNewEffects() &&
552 IsPreviewChangedEffects() == rOpt.IsPreviewChangedEffects() &&
553 IsPreviewTransitions() == rOpt.IsPreviewTransitions() &&
554 GetDisplay() == rOpt.GetDisplay() &&
555 IsShowComments() == rOpt.IsShowComments() &&
556 GetPresentationPenColor() == rOpt.GetPresentationPenColor() &&
557 GetPresentationPenWidth() == rOpt.GetPresentationPenWidth()
558 );
559 }
560
561 // -----------------------------------------------------------------------------
562
GetPropNameArray(const char ** & ppNames,sal_uLong & rCount) const563 void SdOptionsMisc::GetPropNameArray( const char**& ppNames, sal_uLong& rCount ) const
564 {
565 static const char* aPropNames[] =
566 {
567 "ObjectMoveable",
568 "NoDistort",
569 "TextObject/QuickEditing",
570 "BackgroundCache",
571 "CopyWhileMoving",
572 "TextObject/Selectable",
573 "BigHandles",
574 "DclickTextedit",
575 "RotateClick",
576 "Preview",
577 "ModifyWithAttributes",
578 "SimpleHandles",
579 // #97016#
580 "DefaultObjectSize/Width",
581 "DefaultObjectSize/Height",
582
583 "Compatibility/PrinterIndependentLayout",
584
585 "ShowComments",
586
587 // just for impress
588 "NewDoc/AutoPilot",
589 "Start/CurrentPage",
590 "Compatibility/AddBetween",
591 // #90356#
592 "ShowUndoDeleteWarning",
593 "SlideshowRespectZOrder",
594
595 "PreviewNewEffects",
596 "PreviewChangedEffects",
597 "PreviewTransitions",
598
599 "Display",
600
601 "PenColor",
602 "PenWidth",
603
604 "Start/PresenterScreen"
605 };
606
607 rCount = ( ( GetConfigId() == SDCFG_IMPRESS ) ? 28 : 16 );
608 ppNames = aPropNames;
609 }
610
611 // -----------------------------------------------------------------------------
612
ReadData(const Any * pValues)613 sal_Bool SdOptionsMisc::ReadData( const Any* pValues )
614 {
615 if( pValues[0].hasValue() ) SetMarkedHitMovesAlways( *(sal_Bool*) pValues[ 0 ].getValue() );
616 if( pValues[1].hasValue() ) SetCrookNoContortion( *(sal_Bool*) pValues[ 1 ].getValue() );
617 if( pValues[2].hasValue() ) SetQuickEdit( *(sal_Bool*)pValues[ 2 ].getValue() );
618 if( pValues[3].hasValue() ) SetMasterPagePaintCaching( *(sal_Bool*) pValues[ 3 ].getValue() );
619 if( pValues[4].hasValue() ) SetDragWithCopy( *(sal_Bool*) pValues[ 4 ].getValue() );
620 if( pValues[5].hasValue() ) SetPickThrough( *(sal_Bool*) pValues[ 5 ].getValue() );
621 if( pValues[6].hasValue() ) SetBigHandles( *(sal_Bool*) pValues[ 6 ].getValue() );
622 if( pValues[7].hasValue() ) SetDoubleClickTextEdit( *(sal_Bool*) pValues[ 7 ].getValue() );
623 if( pValues[8].hasValue() ) SetClickChangeRotation( *(sal_Bool*) pValues[ 8 ].getValue() );
624 // if( pValues[9].hasValue() ) SetPreviewQuality( FRound( *(double*) pValues[ 9 ].getValue() ) );
625 if( pValues[10].hasValue() ) SetSolidDragging( *(sal_Bool*) pValues[ 10 ].getValue() );
626 if( pValues[11].hasValue() ) SetSolidMarkHdl( *(sal_Bool*) pValues[ 11 ].getValue() );
627 // #97016#
628 if( pValues[12].hasValue() ) SetDefaultObjectSizeWidth( *(sal_uInt32*) pValues[ 12 ].getValue() );
629 if( pValues[13].hasValue() ) SetDefaultObjectSizeHeight( *(sal_uInt32*) pValues[ 13 ].getValue() );
630 if( pValues[14].hasValue() ) SetPrinterIndependentLayout( *(sal_uInt16*) pValues[ 14 ].getValue() );
631
632 if( pValues[15].hasValue() )
633 SetShowComments( *(sal_Bool*) pValues[ 15 ].getValue() );
634
635 // just for Impress
636 if( GetConfigId() == SDCFG_IMPRESS )
637 {
638 if( pValues[16].hasValue() )
639 SetStartWithTemplate( *(sal_Bool*) pValues[ 16 ].getValue() );
640 if( pValues[17].hasValue() )
641 SetStartWithActualPage( *(sal_Bool*) pValues[ 17 ].getValue() );
642 if( pValues[18].hasValue() )
643 SetSummationOfParagraphs( *(sal_Bool*) pValues[ 18 ].getValue() );
644 // #90356#
645 if( pValues[19].hasValue() )
646 SetShowUndoDeleteWarning( *(sal_Bool*) pValues[ 19 ].getValue() );
647
648 if( pValues[20].hasValue() )
649 SetSlideshowRespectZOrder(*(sal_Bool*) pValues[ 20 ].getValue());
650
651 if( pValues[21].hasValue() )
652 SetPreviewNewEffects(*(sal_Bool*) pValues[ 21 ].getValue());
653
654 if( pValues[22].hasValue() )
655 SetPreviewChangedEffects(*(sal_Bool*) pValues[ 22 ].getValue());
656
657 if( pValues[23].hasValue() )
658 SetPreviewTransitions(*(sal_Bool*) pValues[ 23 ].getValue());
659
660 if( pValues[24].hasValue() )
661 SetDisplay(*(sal_Int32*) pValues[ 24 ].getValue());
662
663 if( pValues[25].hasValue() )
664 SetPresentationPenColor( getSafeValue< sal_Int32 >( pValues[ 25 ] ) );
665
666 if( pValues[26].hasValue() )
667 SetPresentationPenWidth( getSafeValue< double >( pValues[ 26 ] ) );
668
669 if( pValues[27].hasValue() )
670 SetStartWithPresenterScreen( *(sal_Bool*) pValues[ 27 ].getValue() );
671 }
672
673 return sal_True;
674 }
675
676 // -----------------------------------------------------------------------------
677
WriteData(Any * pValues) const678 sal_Bool SdOptionsMisc::WriteData( Any* pValues ) const
679 {
680 pValues[ 0 ] <<= IsMarkedHitMovesAlways();
681 pValues[ 1 ] <<= IsCrookNoContortion();
682 pValues[ 2 ] <<= IsQuickEdit();
683 pValues[ 3 ] <<= IsMasterPagePaintCaching();
684 pValues[ 4 ] <<= IsDragWithCopy();
685 pValues[ 5 ] <<= IsPickThrough();
686 pValues[ 6 ] <<= IsBigHandles();
687 pValues[ 7 ] <<= IsDoubleClickTextEdit();
688 pValues[ 8 ] <<= IsClickChangeRotation();
689 // The preview is not supported anymore. Use a dummy value.
690 pValues[ 9 ] <<= (double)0;// GetPreviewQuality();
691 pValues[ 10 ] <<= IsSolidDragging();
692 pValues[ 11 ] <<= IsSolidMarkHdl();
693 // #97016#
694 pValues[ 12 ] <<= GetDefaultObjectSizeWidth();
695 pValues[ 13 ] <<= GetDefaultObjectSizeHeight();
696 pValues[ 14 ] <<= GetPrinterIndependentLayout();
697 pValues[ 15 ] <<= (sal_Bool)IsShowComments();
698
699 // just for Impress
700 if( GetConfigId() == SDCFG_IMPRESS )
701 {
702 pValues[ 16 ] <<= IsStartWithTemplate();
703 pValues[ 17 ] <<= IsStartWithActualPage();
704 pValues[ 18 ] <<= IsSummationOfParagraphs();
705 // #90356#
706 pValues[ 19 ] <<= IsShowUndoDeleteWarning();
707 pValues[ 20 ] <<= IsSlideshowRespectZOrder();
708
709 pValues[ 21 ] <<= IsPreviewNewEffects();
710 pValues[ 22 ] <<= IsPreviewChangedEffects();
711 pValues[ 23 ] <<= IsPreviewTransitions();
712
713 pValues[ 24 ] <<= GetDisplay();
714
715 pValues[ 25 ] <<= GetPresentationPenColor();
716 pValues[ 26 ] <<= GetPresentationPenWidth();
717
718 pValues[ 27 ] <<= IsStartWithPresenterScreen();
719 }
720
721 return sal_True;
722 }
723
724 /*************************************************************************
725 |*
726 |* SdOptionsMiscItem
727 |*
728 \************************************************************************/
729
SdOptionsMiscItem(sal_uInt16 _nWhich)730 SdOptionsMiscItem::SdOptionsMiscItem( sal_uInt16 _nWhich )
731 : SfxPoolItem ( _nWhich )
732 , maOptionsMisc ( 0, sal_False )
733 {
734 }
735
736 // ----------------------------------------------------------------------
737
SdOptionsMiscItem(sal_uInt16 _nWhich,SdOptions * pOpts,::sd::FrameView * pView)738 SdOptionsMiscItem::SdOptionsMiscItem( sal_uInt16 _nWhich, SdOptions* pOpts, ::sd::FrameView* pView )
739 : SfxPoolItem ( _nWhich )
740 , maOptionsMisc ( 0, sal_False )
741 {
742 if( pOpts )
743 {
744 maOptionsMisc.SetStartWithTemplate( pOpts->IsStartWithTemplate() );
745 maOptionsMisc.SetStartWithActualPage( pOpts->IsStartWithActualPage() );
746 maOptionsMisc.SetStartWithPresenterScreen( pOpts->IsStartWithPresenterScreen() );
747 maOptionsMisc.SetSummationOfParagraphs( pOpts->IsSummationOfParagraphs() );
748 // #90356#
749 maOptionsMisc.SetShowUndoDeleteWarning( pOpts->IsShowUndoDeleteWarning() );
750 maOptionsMisc.SetPrinterIndependentLayout( pOpts->GetPrinterIndependentLayout() );
751 // #97016#
752 maOptionsMisc.SetDefaultObjectSizeWidth( pOpts->GetDefaultObjectSizeWidth() );
753 maOptionsMisc.SetDefaultObjectSizeHeight( pOpts->GetDefaultObjectSizeHeight() );
754
755 maOptionsMisc.SetPreviewNewEffects(pOpts->IsPreviewNewEffects());
756 maOptionsMisc.SetPreviewChangedEffects(pOpts->IsPreviewChangedEffects());
757 maOptionsMisc.SetPreviewTransitions(pOpts->IsPreviewTransitions());
758
759 maOptionsMisc.SetDisplay(pOpts->GetDisplay());
760 maOptionsMisc.SetShowComments( pOpts->IsShowComments() );
761
762 maOptionsMisc.SetPresentationPenColor(pOpts->GetPresentationPenColor() );
763 maOptionsMisc.SetPresentationPenWidth(pOpts->GetPresentationPenWidth() );
764 }
765
766 if( pView )
767 {
768 maOptionsMisc.SetMarkedHitMovesAlways( pView->IsMarkedHitMovesAlways() );
769 maOptionsMisc.SetMoveOnlyDragging( pView->IsMoveOnlyDragging() );
770 maOptionsMisc.SetCrookNoContortion( pView->IsCrookNoContortion() );
771 maOptionsMisc.SetQuickEdit( pView->IsQuickEdit() );
772
773 // #i26631#
774 maOptionsMisc.SetMasterPagePaintCaching( pView->IsMasterPagePaintCaching() );
775
776 maOptionsMisc.SetDragWithCopy( pView->IsDragWithCopy() );
777 maOptionsMisc.SetPickThrough( (sal_Bool)pView->GetModel()->IsPickThroughTransparentTextFrames() );
778 maOptionsMisc.SetBigHandles( (sal_Bool)pView->IsBigHandles() );
779 maOptionsMisc.SetDoubleClickTextEdit( pView->IsDoubleClickTextEdit() );
780 maOptionsMisc.SetClickChangeRotation( pView->IsClickChangeRotation() );
781 maOptionsMisc.SetSolidDragging( pView->IsSolidDragging() );
782 maOptionsMisc.SetSolidMarkHdl( pView->IsSolidMarkHdl() );
783 }
784 else if( pOpts )
785 {
786 maOptionsMisc.SetMarkedHitMovesAlways( pOpts->IsMarkedHitMovesAlways() );
787 maOptionsMisc.SetMoveOnlyDragging( pOpts->IsMoveOnlyDragging() );
788 maOptionsMisc.SetCrookNoContortion( pOpts->IsCrookNoContortion() );
789 maOptionsMisc.SetQuickEdit( pOpts->IsQuickEdit() );
790 maOptionsMisc.SetMasterPagePaintCaching( pOpts->IsMasterPagePaintCaching() );
791 maOptionsMisc.SetDragWithCopy( pOpts->IsDragWithCopy() );
792 maOptionsMisc.SetPickThrough( pOpts->IsPickThrough() );
793 maOptionsMisc.SetBigHandles( pOpts->IsBigHandles() );
794 maOptionsMisc.SetDoubleClickTextEdit( pOpts->IsDoubleClickTextEdit() );
795 maOptionsMisc.SetClickChangeRotation( pOpts->IsClickChangeRotation() );
796 maOptionsMisc.SetSolidDragging( pOpts->IsSolidDragging() );
797 maOptionsMisc.SetSolidMarkHdl( pOpts->IsSolidMarkHdl() );
798 }
799 }
800
801 // ----------------------------------------------------------------------
802
Clone(SfxItemPool *) const803 SfxPoolItem* SdOptionsMiscItem::Clone( SfxItemPool* ) const
804 {
805 return new SdOptionsMiscItem( *this );
806 }
807
808
809 // ----------------------------------------------------------------------
810
operator ==(const SfxPoolItem & rAttr) const811 int SdOptionsMiscItem::operator==( const SfxPoolItem& rAttr ) const
812 {
813 const bool bSameType = SfxPoolItem::operator==(rAttr);
814 DBG_ASSERT( bSameType, "SdOptionsMiscItem::operator==(), differen pool item type!" );
815 return bSameType && ( maOptionsMisc == static_cast< const SdOptionsMiscItem& >(rAttr).maOptionsMisc );
816 }
817
818 // -----------------------------------------------------------------------
819
SetOptions(SdOptions * pOpts) const820 void SdOptionsMiscItem::SetOptions( SdOptions* pOpts ) const
821 {
822 if( pOpts )
823 {
824 pOpts->SetStartWithTemplate( maOptionsMisc.IsStartWithTemplate() );
825 pOpts->SetMarkedHitMovesAlways( maOptionsMisc.IsMarkedHitMovesAlways() );
826 pOpts->SetMoveOnlyDragging( maOptionsMisc.IsMoveOnlyDragging() );
827 pOpts->SetCrookNoContortion( maOptionsMisc.IsCrookNoContortion() );
828 pOpts->SetQuickEdit( maOptionsMisc.IsQuickEdit() );
829 pOpts->SetMasterPagePaintCaching( maOptionsMisc.IsMasterPagePaintCaching() );
830 pOpts->SetDragWithCopy( maOptionsMisc.IsDragWithCopy() );
831 pOpts->SetPickThrough( maOptionsMisc.IsPickThrough() );
832 pOpts->SetBigHandles( maOptionsMisc.IsBigHandles() );
833 pOpts->SetDoubleClickTextEdit( maOptionsMisc.IsDoubleClickTextEdit() );
834 pOpts->SetClickChangeRotation( maOptionsMisc.IsClickChangeRotation() );
835 pOpts->SetStartWithActualPage( maOptionsMisc.IsStartWithActualPage() );
836 pOpts->SetStartWithPresenterScreen( maOptionsMisc.IsStartWithPresenterScreen() );
837 pOpts->SetSummationOfParagraphs( maOptionsMisc.IsSummationOfParagraphs() );
838 pOpts->SetSolidDragging( maOptionsMisc.IsSolidDragging() );
839 pOpts->SetSolidMarkHdl( maOptionsMisc.IsSolidMarkHdl() );
840 // #90356#
841 pOpts->SetShowUndoDeleteWarning( maOptionsMisc.IsShowUndoDeleteWarning() );
842 pOpts->SetPrinterIndependentLayout( maOptionsMisc.GetPrinterIndependentLayout() );
843 pOpts->SetShowComments( maOptionsMisc.IsShowComments() );
844 // #97016#
845 pOpts->SetDefaultObjectSizeWidth( maOptionsMisc.GetDefaultObjectSizeWidth() );
846 pOpts->SetDefaultObjectSizeHeight( maOptionsMisc.GetDefaultObjectSizeHeight() );
847
848 pOpts->SetPreviewNewEffects( maOptionsMisc.IsPreviewNewEffects() );
849 pOpts->SetPreviewChangedEffects( maOptionsMisc.IsPreviewChangedEffects() );
850 pOpts->SetPreviewTransitions( maOptionsMisc.IsPreviewTransitions() );
851
852 pOpts->SetDisplay( maOptionsMisc.GetDisplay() );
853
854 pOpts->SetPresentationPenColor( maOptionsMisc.GetPresentationPenColor() );
855 pOpts->SetPresentationPenWidth( maOptionsMisc.GetPresentationPenWidth() );
856 }
857 }
858
859 /*************************************************************************
860 |*
861 |* SdOptionsSnap
862 |*
863 \************************************************************************/
864
SdOptionsSnap(sal_uInt16 nConfigId,sal_Bool bUseConfig)865 SdOptionsSnap::SdOptionsSnap( sal_uInt16 nConfigId, sal_Bool bUseConfig ) :
866 SdOptionsGeneric( nConfigId, bUseConfig ?
867 ( ( SDCFG_DRAW == nConfigId ) ?
868 B2U( "Office.Draw/Snap" ) :
869 B2U( "Office.Impress/Snap" ) ) :
870 OUString() ),
871 bSnapHelplines( sal_True ),
872 bSnapBorder( sal_True ),
873 bSnapFrame( sal_False ),
874 bSnapPoints( sal_False ),
875 bOrtho( sal_False ),
876 bBigOrtho( sal_True ),
877 bRotate( sal_False ),
878 nSnapArea( 5 ),
879 nAngle( 1500 ),
880 nBezAngle( 1500 )
881
882 {
883 EnableModify( sal_True );
884 }
885
886 // -----------------------------------------------------------------------------
887
operator ==(const SdOptionsSnap & rOpt) const888 sal_Bool SdOptionsSnap::operator==( const SdOptionsSnap& rOpt ) const
889 {
890 return( IsSnapHelplines() == rOpt.IsSnapHelplines() &&
891 IsSnapBorder() == rOpt.IsSnapBorder() &&
892 IsSnapFrame() == rOpt.IsSnapFrame() &&
893 IsSnapPoints() == rOpt.IsSnapPoints() &&
894 IsOrtho() == rOpt.IsOrtho() &&
895 IsBigOrtho() == rOpt.IsBigOrtho() &&
896 IsRotate() == rOpt.IsRotate() &&
897 GetSnapArea() == rOpt.GetSnapArea() &&
898 GetAngle() == rOpt.GetAngle() &&
899 GetEliminatePolyPointLimitAngle() == rOpt.GetEliminatePolyPointLimitAngle() );
900 }
901
902 // -----------------------------------------------------------------------------
903
GetPropNameArray(const char ** & ppNames,sal_uLong & rCount) const904 void SdOptionsSnap::GetPropNameArray( const char**& ppNames, sal_uLong& rCount ) const
905 {
906 static const char* aPropNames[] =
907 {
908 "Object/SnapLine",
909 "Object/PageMargin",
910 "Object/ObjectFrame",
911 "Object/ObjectPoint",
912 "Position/CreatingMoving",
913 "Position/ExtendEdges",
914 "Position/Rotating",
915 "Object/Range",
916 "Position/RotatingValue",
917 "Position/PointReduction"
918 };
919
920 rCount = 10;
921 ppNames = aPropNames;
922 }
923
924 // -----------------------------------------------------------------------------
925
ReadData(const Any * pValues)926 sal_Bool SdOptionsSnap::ReadData( const Any* pValues )
927 {
928 if( pValues[0].hasValue() ) SetSnapHelplines( *(sal_Bool*) pValues[ 0 ].getValue() );
929 if( pValues[1].hasValue() ) SetSnapBorder( *(sal_Bool*)pValues[ 1 ].getValue() );
930 if( pValues[2].hasValue() ) SetSnapFrame( *(sal_Bool*) pValues[ 2 ].getValue() );
931 if( pValues[3].hasValue() ) SetSnapPoints( *(sal_Bool*) pValues[ 3 ].getValue() );
932 if( pValues[4].hasValue() ) SetOrtho( *(sal_Bool*) pValues[ 4 ].getValue() );
933 if( pValues[5].hasValue() ) SetBigOrtho( *(sal_Bool*) pValues[ 5 ].getValue() );
934 if( pValues[6].hasValue() ) SetRotate( *(sal_Bool*) pValues[ 6 ].getValue() );
935 if( pValues[7].hasValue() ) SetSnapArea( (sal_Int16) *(sal_Int32*) pValues[ 7 ].getValue() );
936 if( pValues[8].hasValue() ) SetAngle( (sal_Int16) *(sal_Int32*) pValues[ 8 ].getValue() );
937 if( pValues[9].hasValue() ) SetEliminatePolyPointLimitAngle( (sal_Int16) *(sal_Int32*) pValues[ 9 ].getValue() );
938
939 return sal_True;
940 }
941
942 // -----------------------------------------------------------------------------
943
WriteData(Any * pValues) const944 sal_Bool SdOptionsSnap::WriteData( Any* pValues ) const
945 {
946 pValues[ 0 ] <<= IsSnapHelplines();
947 pValues[ 1 ] <<= IsSnapBorder();
948 pValues[ 2 ] <<= IsSnapFrame();
949 pValues[ 3 ] <<= IsSnapPoints();
950 pValues[ 4 ] <<= IsOrtho();
951 pValues[ 5 ] <<= IsBigOrtho();
952 pValues[ 6 ] <<= IsRotate();
953 pValues[ 7 ] <<= (sal_Int32) GetSnapArea();
954 pValues[ 8 ] <<= (sal_Int32) GetAngle();
955 pValues[ 9 ] <<= (sal_Int32) GetEliminatePolyPointLimitAngle();
956
957 return sal_True;
958 }
959
960 /*************************************************************************
961 |*
962 |* SdOptionsSnapItem
963 |*
964 \************************************************************************/
965
SdOptionsSnapItem(sal_uInt16 _nWhich)966 SdOptionsSnapItem::SdOptionsSnapItem( sal_uInt16 _nWhich )
967 : SfxPoolItem ( _nWhich )
968 , maOptionsSnap ( 0, sal_False )
969 {
970 }
971
972 // ----------------------------------------------------------------------
973
SdOptionsSnapItem(sal_uInt16 _nWhich,SdOptions * pOpts,::sd::FrameView * pView)974 SdOptionsSnapItem::SdOptionsSnapItem( sal_uInt16 _nWhich, SdOptions* pOpts, ::sd::FrameView* pView )
975 : SfxPoolItem ( _nWhich )
976 , maOptionsSnap ( 0, sal_False )
977 {
978 if( pView )
979 {
980 maOptionsSnap.SetSnapHelplines( pView->IsHlplSnap() );
981 maOptionsSnap.SetSnapBorder( pView->IsBordSnap() );
982 maOptionsSnap.SetSnapFrame( pView->IsOFrmSnap() );
983 maOptionsSnap.SetSnapPoints( pView->IsOPntSnap() );
984 maOptionsSnap.SetOrtho( pView->IsOrtho() );
985 maOptionsSnap.SetBigOrtho( pView->IsBigOrtho() );
986 maOptionsSnap.SetRotate( pView->IsAngleSnapEnabled() );
987 maOptionsSnap.SetSnapArea( pView->GetSnapMagneticPixel() );
988 maOptionsSnap.SetAngle( (sal_Int16) pView->GetSnapAngle() );
989 maOptionsSnap.SetEliminatePolyPointLimitAngle( (sal_Int16) pView->GetEliminatePolyPointLimitAngle() );
990 }
991 else if( pOpts )
992 {
993 maOptionsSnap.SetSnapHelplines( pOpts->IsSnapHelplines() );
994 maOptionsSnap.SetSnapBorder( pOpts->IsSnapBorder() );
995 maOptionsSnap.SetSnapFrame( pOpts->IsSnapFrame() );
996 maOptionsSnap.SetSnapPoints( pOpts->IsSnapPoints() );
997 maOptionsSnap.SetOrtho( pOpts->IsOrtho() );
998 maOptionsSnap.SetBigOrtho( pOpts->IsBigOrtho() );
999 maOptionsSnap.SetRotate( pOpts->IsRotate() );
1000 maOptionsSnap.SetSnapArea( pOpts->GetSnapArea() );
1001 maOptionsSnap.SetAngle( pOpts->GetAngle() );
1002 maOptionsSnap.SetEliminatePolyPointLimitAngle( pOpts->GetEliminatePolyPointLimitAngle() );
1003 }
1004 }
1005
1006 // ----------------------------------------------------------------------
1007
Clone(SfxItemPool *) const1008 SfxPoolItem* SdOptionsSnapItem::Clone( SfxItemPool* ) const
1009 {
1010 return new SdOptionsSnapItem( *this );
1011 }
1012
1013
1014 // ----------------------------------------------------------------------
1015
operator ==(const SfxPoolItem & rAttr) const1016 int SdOptionsSnapItem::operator==( const SfxPoolItem& rAttr ) const
1017 {
1018 const bool bSameType = SfxPoolItem::operator==(rAttr);
1019 DBG_ASSERT( bSameType, "SdOptionsSnapItem::operator==(), differen pool item type!" );
1020 return bSameType && ( maOptionsSnap == static_cast< const SdOptionsSnapItem& >(rAttr).maOptionsSnap );
1021 }
1022
1023 // -----------------------------------------------------------------------
1024
SetOptions(SdOptions * pOpts) const1025 void SdOptionsSnapItem::SetOptions( SdOptions* pOpts ) const
1026 {
1027 if( pOpts )
1028 {
1029 pOpts->SetSnapHelplines( maOptionsSnap.IsSnapHelplines() );
1030 pOpts->SetSnapBorder( maOptionsSnap.IsSnapBorder() );
1031 pOpts->SetSnapFrame( maOptionsSnap.IsSnapFrame() );
1032 pOpts->SetSnapPoints( maOptionsSnap.IsSnapPoints() );
1033 pOpts->SetOrtho( maOptionsSnap.IsOrtho() );
1034 pOpts->SetBigOrtho( maOptionsSnap.IsBigOrtho() );
1035 pOpts->SetRotate( maOptionsSnap.IsRotate() );
1036 pOpts->SetSnapArea( maOptionsSnap.GetSnapArea() );
1037 pOpts->SetAngle( maOptionsSnap.GetAngle() );
1038 pOpts->SetEliminatePolyPointLimitAngle( maOptionsSnap.GetEliminatePolyPointLimitAngle() );
1039 }
1040 }
1041
1042 /*************************************************************************
1043 |*
1044 |* SdOptionsZoom
1045 |*
1046 \************************************************************************/
1047
SdOptionsZoom(sal_uInt16 nConfigId,sal_Bool bUseConfig)1048 SdOptionsZoom::SdOptionsZoom( sal_uInt16 nConfigId, sal_Bool bUseConfig ) :
1049 SdOptionsGeneric( nConfigId, ( bUseConfig && ( SDCFG_DRAW == nConfigId ) ) ?
1050 B2U( "Office.Draw/Zoom" ) :
1051 OUString() ),
1052 nX( 1 ),
1053 nY( 1 )
1054
1055 {
1056 EnableModify( sal_True );
1057 }
1058
1059 // -----------------------------------------------------------------------------
1060
operator ==(const SdOptionsZoom & rOpt) const1061 sal_Bool SdOptionsZoom::operator==( const SdOptionsZoom& rOpt ) const
1062 {
1063 sal_Int32 nX1, nX2, nY1, nY2;
1064
1065 GetScale( nX1, nY1 );
1066 rOpt.GetScale( nX2, nY2 );
1067
1068 return( ( nX1 == nX2 ) &&
1069 ( nY1 == nY2 ) );
1070 }
1071
1072 // -----------------------------------------------------------------------------
1073
GetPropNameArray(const char ** & ppNames,sal_uLong & rCount) const1074 void SdOptionsZoom::GetPropNameArray( const char**& ppNames, sal_uLong& rCount ) const
1075 {
1076 static const char* aPropNames[] =
1077 {
1078 "ScaleX",
1079 "ScaleY"
1080 };
1081
1082 rCount = ( GetConfigId() == SDCFG_DRAW ) ? 2 : 0;
1083 ppNames = aPropNames;
1084 }
1085
1086 // -----------------------------------------------------------------------------
1087
ReadData(const Any * pValues)1088 sal_Bool SdOptionsZoom::ReadData( const Any* pValues )
1089 {
1090 sal_Int32 x = 1, y = 1;
1091
1092 if( pValues[0].hasValue() ) x = ( *(sal_Int32*) pValues[ 0 ].getValue() );
1093 if( pValues[1].hasValue() ) y = ( *(sal_Int32*) pValues[ 1 ].getValue() );
1094
1095 SetScale( x, y );
1096
1097 return sal_True;
1098 }
1099
1100 // -----------------------------------------------------------------------------
1101
WriteData(Any * pValues) const1102 sal_Bool SdOptionsZoom::WriteData( Any* pValues ) const
1103 {
1104 sal_Int32 x, y;
1105
1106 GetScale( x, y );
1107
1108 pValues[ 0 ] <<= (sal_Int32) x;
1109 pValues[ 1 ] <<= (sal_Int32) y;
1110
1111 return sal_True;
1112 }
1113
1114 /*************************************************************************
1115 |*
1116 |* SdOptionsGrid
1117 |*
1118 \************************************************************************/
1119
SdOptionsGrid(sal_uInt16 nConfigId,sal_Bool bUseConfig)1120 SdOptionsGrid::SdOptionsGrid( sal_uInt16 nConfigId, sal_Bool bUseConfig ) :
1121 SdOptionsGeneric( nConfigId, bUseConfig ?
1122 ( ( SDCFG_DRAW == nConfigId ) ?
1123 B2U( "Office.Draw/Grid" ) :
1124 B2U( "Office.Impress/Grid" ) ) :
1125 OUString() )
1126 {
1127 EnableModify( sal_False );
1128 SetDefaults();
1129 EnableModify( sal_True );
1130 }
1131
1132 // -----------------------------------------------------------------------------
1133
~SdOptionsGrid()1134 SdOptionsGrid::~SdOptionsGrid()
1135 {
1136 }
1137
1138 // -----------------------------------------------------------------------------
1139
SetDefaults()1140 void SdOptionsGrid::SetDefaults()
1141 {
1142 const sal_uInt32 nVal = 1000;
1143
1144 SetFldDivisionX( nVal );
1145 SetFldDivisionY( nVal );
1146 SetFldDrawX( nVal );
1147 SetFldDrawY( nVal );
1148 SetFldSnapX( nVal );
1149 SetFldSnapY( nVal );
1150 SetUseGridSnap( sal_False );
1151 SetSynchronize( sal_True );
1152 SetGridVisible( sal_False );
1153 SetEqualGrid( sal_True );
1154 }
1155
1156 // -----------------------------------------------------------------------------
1157
operator ==(const SdOptionsGrid & rOpt) const1158 sal_Bool SdOptionsGrid::operator==( const SdOptionsGrid& rOpt ) const
1159 {
1160 return( GetFldDrawX() == rOpt.GetFldDrawX() &&
1161 GetFldDivisionX() == rOpt.GetFldDivisionX() &&
1162 GetFldDrawY() == rOpt.GetFldDrawY() &&
1163 GetFldDivisionY() == rOpt.GetFldDivisionY() &&
1164 GetFldSnapX() == rOpt.GetFldSnapX() &&
1165 GetFldSnapY() == rOpt.GetFldSnapY() &&
1166 IsUseGridSnap() == rOpt.IsUseGridSnap() &&
1167 IsSynchronize() == rOpt.IsSynchronize() &&
1168 IsGridVisible() == rOpt.IsGridVisible() &&
1169 IsEqualGrid() == rOpt.IsEqualGrid() );
1170 }
1171
1172 // -----------------------------------------------------------------------------
1173
GetPropNameArray(const char ** & ppNames,sal_uLong & rCount) const1174 void SdOptionsGrid::GetPropNameArray( const char**& ppNames, sal_uLong& rCount ) const
1175 {
1176 static const char* aPropNamesMetric[] =
1177 {
1178 "Resolution/XAxis/Metric",
1179 "Resolution/YAxis/Metric",
1180 "Subdivision/XAxis",
1181 "Subdivision/YAxis",
1182 "SnapGrid/XAxis/Metric",
1183 "SnapGrid/YAxis/Metric",
1184 "Option/SnapToGrid",
1185 "Option/Synchronize",
1186 "Option/VisibleGrid",
1187 "SnapGrid/Size"
1188 };
1189
1190 static const char* aPropNamesNonMetric[] =
1191 {
1192 "Resolution/XAxis/NonMetric",
1193 "Resolution/YAxis/NonMetric",
1194 "Subdivision/XAxis",
1195 "Subdivision/YAxis",
1196 "SnapGrid/XAxis/NonMetric",
1197 "SnapGrid/YAxis/NonMetric",
1198 "Option/SnapToGrid",
1199 "Option/Synchronize",
1200 "Option/VisibleGrid",
1201 "SnapGrid/Size"
1202 };
1203
1204 rCount = 10;
1205
1206 if( isMetricSystem() )
1207 ppNames = aPropNamesMetric;
1208 else
1209 ppNames = aPropNamesNonMetric;
1210 }
1211
1212 // -----------------------------------------------------------------------------
1213
ReadData(const Any * pValues)1214 sal_Bool SdOptionsGrid::ReadData( const Any* pValues )
1215 {
1216 if( pValues[0].hasValue() ) SetFldDrawX( *(sal_Int32*) pValues[ 0 ].getValue() );
1217 if( pValues[1].hasValue() ) SetFldDrawY( *(sal_Int32*) pValues[ 1 ].getValue() );
1218
1219 if( pValues[2].hasValue() )
1220 {
1221 const sal_uInt32 nDivX = FRound( *(double*) pValues[ 2 ].getValue() );
1222 SetFldDivisionX( SvxOptionsGrid::GetFldDrawX() / ( nDivX + 1 ) );
1223 }
1224
1225 if( pValues[3].hasValue() )
1226 {
1227 const sal_uInt32 nDivY = FRound( *(double*) pValues[ 3 ].getValue() );
1228 SetFldDivisionY( SvxOptionsGrid::GetFldDrawY() / ( nDivY + 1 ) );
1229 }
1230
1231 if( pValues[4].hasValue() ) SetFldSnapX( *(sal_Int32*) pValues[ 4 ].getValue() );
1232 if( pValues[5].hasValue() ) SetFldSnapY( *(sal_Int32*) pValues[ 5 ].getValue() );
1233 if( pValues[6].hasValue() ) SetUseGridSnap( *(sal_Bool*) pValues[ 6 ].getValue() );
1234 if( pValues[7].hasValue() ) SetSynchronize( *(sal_Bool*) pValues[ 7 ].getValue() );
1235 if( pValues[8].hasValue() ) SetGridVisible( *(sal_Bool*) pValues[ 8 ].getValue() );
1236 if( pValues[9].hasValue() ) SetEqualGrid( *(sal_Bool*) pValues[ 9 ].getValue() );
1237
1238 return sal_True;
1239 }
1240
1241 // -----------------------------------------------------------------------------
1242
WriteData(Any * pValues) const1243 sal_Bool SdOptionsGrid::WriteData( Any* pValues ) const
1244 {
1245 pValues[ 0 ] <<= (sal_Int32) GetFldDrawX();
1246 pValues[ 1 ] <<= (sal_Int32) GetFldDrawY();
1247 pValues[ 2 ] <<= ( GetFldDivisionX() ? ( (double) GetFldDrawX() / GetFldDivisionX() - 1.0 ) : (double) 0 );
1248 pValues[ 3 ] <<= ( GetFldDivisionY() ? ( (double) GetFldDrawY() / GetFldDivisionY() - 1.0 ) : (double) 0 );
1249 pValues[ 4 ] <<= (sal_Int32) GetFldSnapX();
1250 pValues[ 5 ] <<= (sal_Int32) GetFldSnapY();
1251 pValues[ 6 ] <<= IsUseGridSnap();
1252 pValues[ 7 ] <<= IsSynchronize();
1253 pValues[ 8 ] <<= IsGridVisible();
1254 pValues[ 9 ] <<= IsEqualGrid();
1255
1256 return sal_True;
1257 }
1258
1259 /*************************************************************************
1260 |*
1261 |* SdOptionsGridItem
1262 |*
1263 \************************************************************************/
1264
SdOptionsGridItem(sal_uInt16 _nWhich,SdOptions * pOpts,::sd::FrameView * pView)1265 SdOptionsGridItem::SdOptionsGridItem( sal_uInt16 _nWhich, SdOptions* pOpts, ::sd::FrameView* pView ) :
1266 SvxGridItem( _nWhich )
1267 {
1268 SetSynchronize( pOpts->IsSynchronize() );
1269 SetEqualGrid( pOpts->IsEqualGrid() );
1270
1271 if( pView )
1272 {
1273 SetFldDrawX( pView->GetGridCoarse().Width() );
1274 SetFldDrawY( pView->GetGridCoarse().Height() );
1275 SetFldDivisionX( pView->GetGridFine().Width() ? ( GetFldDrawX() / pView->GetGridFine().Width() - 1 ) : 0 );
1276 SetFldDivisionY( pView->GetGridFine().Height() ? ( GetFldDrawY() / pView->GetGridFine().Height() - 1 ) : 0 );
1277 SetFldSnapX( long(pView->GetSnapGridWidthX()) );
1278 SetFldSnapY( long(pView->GetSnapGridWidthY()) );
1279 SetUseGridSnap( pView->IsGridSnap() );
1280 SetGridVisible( pView->IsGridVisible() );
1281 }
1282 else
1283 {
1284 SetFldDrawX( pOpts->GetFldDrawX() );
1285 SetFldDrawY( pOpts->GetFldDrawY() );
1286 SetFldDivisionX( pOpts->GetFldDivisionX() ? ( pOpts->GetFldDrawX() / pOpts->GetFldDivisionX() - 1 ) : 0 );
1287 SetFldDivisionY( pOpts->GetFldDivisionY() ? ( pOpts->GetFldDrawY() / pOpts->GetFldDivisionY() - 1 ) : 0 );
1288 SetFldSnapX( pOpts->GetFldSnapX() );
1289 SetFldSnapY( pOpts->GetFldSnapY() );
1290 SetUseGridSnap( pOpts->IsUseGridSnap() );
1291 SetGridVisible( pOpts->IsGridVisible() );
1292 }
1293 }
1294
1295 // -----------------------------------------------------------------------
1296
SetOptions(SdOptions * pOpts) const1297 void SdOptionsGridItem::SetOptions( SdOptions* pOpts ) const
1298 {
1299 pOpts->SetFldDrawX( GetFldDrawX() );
1300 pOpts->SetFldDivisionX( GetFldDrawX() / ( GetFldDivisionX() + 1 ) );
1301 pOpts->SetFldDrawY( GetFldDrawY() );
1302 pOpts->SetFldDivisionY( GetFldDrawY() / ( GetFldDivisionY() + 1 ) );
1303 pOpts->SetFldSnapX( GetFldSnapX() );
1304 pOpts->SetFldSnapY( GetFldSnapY() );
1305 pOpts->SetUseGridSnap( GetUseGridSnap() );
1306 pOpts->SetSynchronize( GetSynchronize() );
1307 pOpts->SetGridVisible( GetGridVisible() );
1308 pOpts->SetEqualGrid( GetEqualGrid() );
1309 }
1310
1311 /*************************************************************************
1312 |*
1313 |* SdOptionsPrint
1314 |*
1315 \************************************************************************/
1316
SdOptionsPrint(sal_uInt16 nConfigId,sal_Bool bUseConfig)1317 SdOptionsPrint::SdOptionsPrint( sal_uInt16 nConfigId, sal_Bool bUseConfig ) :
1318 SdOptionsGeneric( nConfigId, bUseConfig ?
1319 ( ( SDCFG_DRAW == nConfigId ) ?
1320 B2U( "Office.Draw/Print" ) :
1321 B2U( "Office.Impress/Print" ) ) :
1322 OUString() ),
1323 bDraw( sal_True ),
1324 bNotes( sal_False ),
1325 bHandout( sal_False ),
1326 bOutline( sal_False ),
1327 bDate( sal_False ),
1328 bTime( sal_False ),
1329 bPagename( sal_False ),
1330 bHiddenPages( sal_True ),
1331 bPagesize( sal_False ),
1332 bPagetile( sal_False ),
1333 bWarningPrinter( sal_True ),
1334 bWarningSize( sal_False ),
1335 bWarningOrientation( sal_False ),
1336 bBooklet( sal_False ),
1337 bFront( sal_True ),
1338 bBack( sal_True ),
1339 bCutPage( sal_False ),
1340 bPaperbin( sal_False ),
1341 mbHandoutHorizontal( sal_True ),
1342 mnHandoutPages( 6 ),
1343 nQuality( 0 )
1344 {
1345 EnableModify( sal_True );
1346 }
1347
1348 // -----------------------------------------------------------------------------
1349
operator ==(const SdOptionsPrint & rOpt) const1350 sal_Bool SdOptionsPrint::operator==( const SdOptionsPrint& rOpt ) const
1351 {
1352 return( IsDraw() == rOpt.IsDraw() &&
1353 IsNotes() == rOpt.IsNotes() &&
1354 IsHandout() == rOpt.IsHandout() &&
1355 IsOutline() == rOpt.IsOutline() &&
1356 IsDate() == rOpt.IsDate() &&
1357 IsTime() == rOpt.IsTime() &&
1358 IsPagename() == rOpt.IsPagename() &&
1359 IsHiddenPages() == rOpt.IsHiddenPages() &&
1360 IsPagesize() == rOpt.IsPagesize() &&
1361 IsPagetile() == rOpt.IsPagetile() &&
1362 IsWarningPrinter() == rOpt.IsWarningPrinter() &&
1363 IsWarningSize() == rOpt.IsWarningSize() &&
1364 IsWarningOrientation() == rOpt.IsWarningOrientation() &&
1365 IsBooklet() == rOpt.IsBooklet() &&
1366 IsFrontPage() == rOpt.IsFrontPage() &&
1367 IsBackPage() == rOpt.IsBackPage() &&
1368 IsCutPage() == rOpt.IsCutPage() &&
1369 IsPaperbin() == rOpt.IsPaperbin() &&
1370 GetOutputQuality() == rOpt.GetOutputQuality() &&
1371 IsHandoutHorizontal() == rOpt.IsHandoutHorizontal() &&
1372 GetHandoutPages() == rOpt.GetHandoutPages() );
1373 }
1374
1375 // -----------------------------------------------------------------------------
1376
GetPropNameArray(const char ** & ppNames,sal_uLong & rCount) const1377 void SdOptionsPrint::GetPropNameArray( const char**& ppNames, sal_uLong& rCount ) const
1378 {
1379 static const char* aDrawPropNames[] =
1380 {
1381 "Other/Date",
1382 "Other/Time",
1383 "Other/PageName",
1384 "Other/HiddenPage",
1385 "Page/PageSize",
1386 "Page/PageTile",
1387 // bWarningPrinter
1388 // bWarningSize
1389 // bWarningOrientation
1390 "Page/Booklet",
1391 "Page/BookletFront",
1392 "Page/BookletBack",
1393 // bCutPage
1394 "Other/FromPrinterSetup",
1395 "Other/Quality",
1396 "Content/Drawing",
1397 };
1398 static const char* aImpressPropNames[] =
1399 {
1400 "Other/Date",
1401 "Other/Time",
1402 "Other/PageName",
1403 "Other/HiddenPage",
1404 "Page/PageSize",
1405 "Page/PageTile",
1406 // bWarningPrinter
1407 // bWarningSize
1408 // bWarningOrientation
1409 "Page/Booklet",
1410 "Page/BookletFront",
1411 "Page/BookletBack",
1412 // bCutPage
1413 "Other/FromPrinterSetup",
1414 "Other/Quality",
1415 "Content/Presentation",
1416 "Content/Note",
1417 "Content/Handout",
1418 "Content/Outline",
1419 "Other/HandoutHorizontal",
1420 "Other/PagesPerHandout"
1421 };
1422
1423 if( GetConfigId() == SDCFG_IMPRESS )
1424 {
1425 rCount = 17;
1426 ppNames = aImpressPropNames;
1427 }
1428 else
1429 {
1430 rCount = 12;
1431 ppNames = aDrawPropNames;
1432 }
1433 }
1434
1435 // -----------------------------------------------------------------------------
1436
ReadData(const Any * pValues)1437 sal_Bool SdOptionsPrint::ReadData( const Any* pValues )
1438 {
1439 if( pValues[0].hasValue() ) SetDate( *(sal_Bool*) pValues[ 0 ].getValue() );
1440 if( pValues[1].hasValue() ) SetTime( *(sal_Bool*) pValues[ 1 ].getValue() );
1441 if( pValues[2].hasValue() ) SetPagename( *(sal_Bool*) pValues[ 2 ].getValue() );
1442 if( pValues[3].hasValue() ) SetHiddenPages( *(sal_Bool*) pValues[ 3 ].getValue() );
1443 if( pValues[4].hasValue() ) SetPagesize( *(sal_Bool*) pValues[ 4 ].getValue() );
1444 if( pValues[5].hasValue() ) SetPagetile( *(sal_Bool*) pValues[ 5 ].getValue() );
1445 if( pValues[6].hasValue() ) SetBooklet( *(sal_Bool*) pValues[ 6 ].getValue() );
1446 if( pValues[7].hasValue() ) SetFrontPage( *(sal_Bool*) pValues[ 7 ].getValue() );
1447 if( pValues[8].hasValue() ) SetBackPage( *(sal_Bool*) pValues[ 8 ].getValue() );
1448 if( pValues[9].hasValue() ) SetPaperbin( *(sal_Bool*) pValues[ 9 ].getValue() );
1449 if( pValues[10].hasValue() ) SetOutputQuality( (sal_uInt16) *(sal_Int32*) pValues[ 10 ].getValue() );
1450 if( pValues[11].hasValue() ) SetDraw( *(sal_Bool*) pValues[ 11 ].getValue() );
1451
1452 // just for impress
1453 if( GetConfigId() == SDCFG_IMPRESS )
1454 {
1455 if( pValues[12].hasValue() ) SetNotes( *(sal_Bool*) pValues[ 12 ].getValue() );
1456 if( pValues[13].hasValue() ) SetHandout( *(sal_Bool*) pValues[ 13 ].getValue() );
1457 if( pValues[14].hasValue() ) SetOutline( *(sal_Bool*) pValues[ 14 ].getValue() );
1458 if( pValues[15].hasValue() ) SetHandoutHorizontal( *(sal_Bool*) pValues[15].getValue() );
1459 if( pValues[16].hasValue() ) SetHandoutPages( (sal_uInt16)*(sal_Int32*) pValues[16].getValue() );
1460 }
1461
1462 return sal_True;
1463 }
1464
1465 // -----------------------------------------------------------------------------
1466
WriteData(Any * pValues) const1467 sal_Bool SdOptionsPrint::WriteData( Any* pValues ) const
1468 {
1469 pValues[ 0 ] <<= IsDate();
1470 pValues[ 1 ] <<= IsTime();
1471 pValues[ 2 ] <<= IsPagename();
1472 pValues[ 3 ] <<= IsHiddenPages();
1473 pValues[ 4 ] <<= IsPagesize();
1474 pValues[ 5 ] <<= IsPagetile();
1475 pValues[ 6 ] <<= IsBooklet();
1476 pValues[ 7 ] <<= IsFrontPage();
1477 pValues[ 8 ] <<= IsBackPage();
1478 pValues[ 9 ] <<= IsPaperbin();
1479 pValues[ 10 ] <<= (sal_Int32) GetOutputQuality();
1480 pValues[ 11 ] <<= IsDraw();
1481
1482 // just for impress
1483 if( GetConfigId() == SDCFG_IMPRESS )
1484 {
1485 pValues[ 12 ] <<= IsNotes();
1486 pValues[ 13 ] <<= IsHandout();
1487 pValues[ 14 ] <<= IsOutline();
1488 pValues[ 15 ] <<= IsHandoutHorizontal();
1489 pValues[ 16 ] <<= GetHandoutPages();
1490 }
1491
1492 return sal_True;
1493 }
1494
1495 /*************************************************************************
1496 |*
1497 |* SdOptionsPrintItem
1498 |*
1499 \************************************************************************/
1500
SdOptionsPrintItem(sal_uInt16 _nWhich)1501 SdOptionsPrintItem::SdOptionsPrintItem( sal_uInt16 _nWhich )
1502 : SfxPoolItem ( _nWhich )
1503 , maOptionsPrint ( 0, sal_False )
1504 {
1505 }
1506
1507 // ----------------------------------------------------------------------
1508
SdOptionsPrintItem(sal_uInt16 _nWhich,SdOptions * pOpts,::sd::FrameView *)1509 SdOptionsPrintItem::SdOptionsPrintItem( sal_uInt16 _nWhich, SdOptions* pOpts, ::sd::FrameView* )
1510 : SfxPoolItem ( _nWhich )
1511 , maOptionsPrint ( 0, sal_False )
1512 {
1513 if( pOpts )
1514 {
1515 maOptionsPrint.SetDraw( pOpts->IsDraw() );
1516 maOptionsPrint.SetNotes( pOpts->IsNotes() );
1517 maOptionsPrint.SetHandout( pOpts->IsHandout() );
1518 maOptionsPrint.SetOutline( pOpts->IsOutline() );
1519 maOptionsPrint.SetDate( pOpts->IsDate() );
1520 maOptionsPrint.SetTime( pOpts->IsTime() );
1521 maOptionsPrint.SetPagename( pOpts->IsPagename() );
1522 maOptionsPrint.SetHiddenPages( pOpts->IsHiddenPages() );
1523 maOptionsPrint.SetPagesize( pOpts->IsPagesize() );
1524 maOptionsPrint.SetPagetile( pOpts->IsPagetile() );
1525 maOptionsPrint.SetWarningPrinter( pOpts->IsWarningPrinter() );
1526 maOptionsPrint.SetWarningSize( pOpts->IsWarningSize() );
1527 maOptionsPrint.SetWarningOrientation( pOpts->IsWarningOrientation() );
1528 maOptionsPrint.SetBooklet( pOpts->IsBooklet() );
1529 maOptionsPrint.SetFrontPage( pOpts->IsFrontPage() );
1530 maOptionsPrint.SetBackPage( pOpts->IsBackPage() );
1531 maOptionsPrint.SetCutPage( pOpts->IsCutPage() );
1532 maOptionsPrint.SetPaperbin( pOpts->IsPaperbin() );
1533 maOptionsPrint.SetOutputQuality( pOpts->GetOutputQuality() );
1534 }
1535 }
1536
1537 // ----------------------------------------------------------------------
1538
Clone(SfxItemPool *) const1539 SfxPoolItem* SdOptionsPrintItem::Clone( SfxItemPool* ) const
1540 {
1541 return new SdOptionsPrintItem( *this );
1542 }
1543
1544 // ----------------------------------------------------------------------
1545
operator ==(const SfxPoolItem & rAttr) const1546 int SdOptionsPrintItem::operator==( const SfxPoolItem& rAttr ) const
1547 {
1548 const bool bSameType = SfxPoolItem::operator==(rAttr);
1549 DBG_ASSERT( bSameType, "SdOptionsPrintItem::operator==(), differen pool item type!" );
1550 return bSameType && ( maOptionsPrint == static_cast< const SdOptionsPrintItem& >( rAttr ).maOptionsPrint );
1551 }
1552
1553 // -----------------------------------------------------------------------
1554
SetOptions(SdOptions * pOpts) const1555 void SdOptionsPrintItem::SetOptions( SdOptions* pOpts ) const
1556 {
1557 if( pOpts )
1558 {
1559 pOpts->SetDraw( maOptionsPrint.IsDraw() );
1560 pOpts->SetNotes( maOptionsPrint.IsNotes() );
1561 pOpts->SetHandout( maOptionsPrint.IsHandout() );
1562 pOpts->SetOutline( maOptionsPrint.IsOutline() );
1563 pOpts->SetDate( maOptionsPrint.IsDate() );
1564 pOpts->SetTime( maOptionsPrint.IsTime() );
1565 pOpts->SetPagename( maOptionsPrint.IsPagename() );
1566 pOpts->SetHiddenPages( maOptionsPrint.IsHiddenPages() );
1567 pOpts->SetPagesize( maOptionsPrint.IsPagesize() );
1568 pOpts->SetPagetile( maOptionsPrint.IsPagetile() );
1569 pOpts->SetWarningPrinter( maOptionsPrint.IsWarningPrinter() );
1570 pOpts->SetWarningSize( maOptionsPrint.IsWarningSize() );
1571 pOpts->SetWarningOrientation( maOptionsPrint.IsWarningOrientation() );
1572 pOpts->SetBooklet( maOptionsPrint.IsBooklet() );
1573 pOpts->SetFrontPage( maOptionsPrint.IsFrontPage() );
1574 pOpts->SetBackPage( maOptionsPrint.IsBackPage() );
1575 pOpts->SetCutPage( maOptionsPrint.IsCutPage() );
1576 pOpts->SetPaperbin( maOptionsPrint.IsPaperbin() );
1577 pOpts->SetOutputQuality( maOptionsPrint.GetOutputQuality() );
1578 }
1579 }
1580
1581 /*************************************************************************
1582 |*
1583 |* SdOptions
1584 |*
1585 \************************************************************************/
1586
SdOptions(sal_uInt16 nConfigId)1587 SdOptions::SdOptions( sal_uInt16 nConfigId ) :
1588 SdOptionsLayout( nConfigId, sal_True ),
1589 SdOptionsContents( nConfigId, sal_True ),
1590 SdOptionsMisc( nConfigId, sal_True ),
1591 SdOptionsSnap( nConfigId, sal_True ),
1592 SdOptionsZoom( nConfigId, sal_True ),
1593 SdOptionsGrid( nConfigId, sal_True ),
1594 SdOptionsPrint( nConfigId, sal_True )
1595 {
1596 }
1597
1598 // ----------------------------------------------------------------------
1599
~SdOptions()1600 SdOptions::~SdOptions()
1601 {
1602 }
1603
1604 // ----------------------------------------------------------------------
1605
StoreConfig(sal_uLong nOptionsRange)1606 void SdOptions::StoreConfig( sal_uLong nOptionsRange )
1607 {
1608 if( nOptionsRange & SD_OPTIONS_LAYOUT )
1609 SdOptionsLayout::Store();
1610
1611 if( nOptionsRange & SD_OPTIONS_CONTENTS )
1612 SdOptionsContents::Store();
1613
1614 if( nOptionsRange & SD_OPTIONS_MISC )
1615 SdOptionsMisc::Store();
1616
1617 if( nOptionsRange & SD_OPTIONS_SNAP )
1618 SdOptionsSnap::Store();
1619
1620 if( nOptionsRange & SD_OPTIONS_ZOOM )
1621 SdOptionsZoom::Store();
1622
1623 if( nOptionsRange & SD_OPTIONS_GRID )
1624 SdOptionsGrid::Store();
1625
1626 if( nOptionsRange & SD_OPTIONS_PRINT )
1627 SdOptionsPrint::Store();
1628 }
1629