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