xref: /aoo41x/main/sd/source/ui/view/frmview.cxx (revision 5b190011)
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 
27 #include "FrameView.hxx"
28 
29 #ifndef _SVXIDS_HRC
30 #include <svx/svxids.hrc>
31 #endif
32 #include <com/sun/star/awt/Rectangle.hpp>
33 #include <com/sun/star/drawing/framework/ResourceId.hpp>
34 #include <rtl/ustrbuf.hxx>
35 #include "unokywds.hxx"
36 
37 #include <vector>
38 #include "ViewShell.hxx"
39 #include "drawdoc.hxx"
40 #include "DrawDocShell.hxx"
41 #include "optsitem.hxx"
42 #include "ViewShellBase.hxx"
43 #include "DrawViewShell.hxx"
44 #include "OutlineViewShell.hxx"
45 #include "app.hxx"
46 #include "sdresid.hxx"
47 #include "pres.hxx"
48 #include "glob.hrc"
49 #include "sdiocmpt.hxx"
50 #include "framework/FrameworkHelper.hxx"
51 #include <comphelper/processfactory.hxx>
52 #include <sfx2/viewfrm.hxx>
53 
54 using namespace ::com::sun::star;
55 using namespace ::com::sun::star::uno;
56 using namespace ::com::sun::star::beans;
57 using namespace ::std;
58 using ::rtl::OUString;
59 
60 namespace sd {
61 
62 /*************************************************************************
63 |*
64 |* Ctor
65 |*
66 \************************************************************************/
67 
68 FrameView::FrameView(SdDrawDocument* pDrawDoc, FrameView* pFrameView /* = NULK */)
69   : SdrView(pDrawDoc, (OutputDevice*) NULL),
70     mnRefCount(0),
71     mnPresViewShellId(SID_VIEWSHELL0),
72     mnSlotId(SID_OBJECT_SELECT),
73     mbIsNavigatorShowingAllShapes(false)
74 {
75 	EndListening(*pDrawDoc);
76 
77 	EnableExtendedKeyInputDispatcher(sal_False);
78 	EnableExtendedMouseEventDispatcher(sal_False);
79 	EnableExtendedCommandEventDispatcher(sal_False);
80 
81 	SetGridFront( sal_False );
82 	SetHlplFront( sal_False );
83 	SetOConSnap( sal_False );
84 	SetFrameDragSingles( sal_True );
85 	SetSlidesPerRow(4);
86 
87 	if( NULL == pFrameView )
88 	{
89 		DrawDocShell* pDocShell = pDrawDoc->GetDocSh();
90 
91 		if ( pDocShell )
92 		{
93 			/**********************************************************************
94 			* Das Dokument wurde geladen, ist eine FrameView vorhanden?
95 			**********************************************************************/
96 			sal_uLong nSdViewShellCount = 0;
97 			ViewShellBase* pBase = NULL;
98 			SfxViewShell* pSfxViewSh = NULL;
99 			SfxViewFrame* pSfxViewFrame = SfxViewFrame::GetFirst(pDocShell);
100 
101 			while (pSfxViewFrame)
102 			{
103 				// Count the FrameViews and remember the type of the main
104 				// view shell.
105 				pSfxViewSh = pSfxViewFrame->GetViewShell();
106 				pBase = PTR_CAST(ViewShellBase, pSfxViewSh );
107 
108 				if (pBase != NULL)
109 				{
110 					nSdViewShellCount++;
111 
112                     ::rtl::OUString sViewURL;
113                     Reference<drawing::framework::XView> xView (
114                         framework::FrameworkHelper::Instance(*pBase)->GetView(
115                             drawing::framework::ResourceId::create(
116                                 ::comphelper::getProcessComponentContext(),
117                                 framework::FrameworkHelper::msCenterPaneURL)));
118                     if (xView.is())
119                         sViewURL = xView->getResourceId()->getResourceURL();
120 
121                     switch (framework::FrameworkHelper::GetViewId(sViewURL))
122                     {
123 						default:
124 //                        case ViewShell::ST_IMPRESS:
125 //	                      case ViewShell::ST_NOTES:
126 //                        case ViewShell::ST_HANDOUT:
127                             mnPresViewShellId = SID_VIEWSHELL0;
128                             break;
129 
130                         case ViewShell::ST_SLIDE_SORTER:
131                             mnPresViewShellId = SID_VIEWSHELL1;
132                             break;
133 
134                         case ViewShell::ST_OUTLINE:
135                             mnPresViewShellId = SID_VIEWSHELL2;
136                             break;
137 					}
138 				}
139 
140 				pSfxViewFrame = SfxViewFrame::GetNext(*pSfxViewFrame, pDocShell);
141 			}
142 
143 			SdDrawDocument* pDoc = pDocShell->GetDoc();
144 			pFrameView = pDoc->GetFrameView(nSdViewShellCount);
145 		}
146 	}
147 
148 	if (pFrameView)
149 	{
150 		/**********************************************************************
151 		* FrameView mit der FrameView der DocShell initialisieren
152 		**********************************************************************/
153 		SetRuler( pFrameView->HasRuler() );
154 		SetGridCoarse( pFrameView->GetGridCoarse() );
155 		SetGridFine( pFrameView->GetGridFine() );
156 		SetSnapGridWidth(pFrameView->GetSnapGridWidthX(), pFrameView->GetSnapGridWidthY());
157 		SetGridVisible( pFrameView->IsGridVisible() );
158 		SetGridFront( pFrameView->IsGridFront() );
159 		SetSnapAngle( pFrameView->GetSnapAngle() );
160 		SetGridSnap( pFrameView->IsGridSnap() );
161 		SetBordSnap( pFrameView->IsBordSnap() );
162 		SetHlplSnap( pFrameView->IsHlplSnap() );
163 		SetOFrmSnap( pFrameView->IsOFrmSnap() );
164 		SetOPntSnap( pFrameView->IsOPntSnap() );
165 		SetOConSnap( pFrameView->IsOConSnap() );
166 		SetHlplVisible( pFrameView->IsHlplVisible() );
167 		SetDragStripes( pFrameView->IsDragStripes() );
168 		SetPlusHandlesAlwaysVisible( pFrameView->IsPlusHandlesAlwaysVisible() );
169 		SetFrameDragSingles( pFrameView->IsFrameDragSingles() );
170 		SetSnapMagneticPixel( pFrameView->GetSnapMagneticPixel() );
171 		SetMarkedHitMovesAlways( pFrameView->IsMarkedHitMovesAlways() );
172 		SetMoveOnlyDragging( pFrameView->IsMoveOnlyDragging() );
173 		SetCrookNoContortion( pFrameView->IsCrookNoContortion() );
174 		SetSlantButShear( pFrameView->IsSlantButShear() );
175 		SetNoDragXorPolys( pFrameView->IsNoDragXorPolys() );
176 		SetAngleSnapEnabled( pFrameView->IsAngleSnapEnabled() );
177 		SetBigOrtho( pFrameView->IsBigOrtho() );
178 		SetOrtho( pFrameView->IsOrtho() );
179 		SetEliminatePolyPointLimitAngle( pFrameView->GetEliminatePolyPointLimitAngle() );
180 		SetEliminatePolyPoints( pFrameView->IsEliminatePolyPoints() );
181 // #110094#-7
182 //		SetMasterPagePaintCaching( pFrameView->IsMasterPagePaintCaching() );
183 		SetDesignMode( pFrameView->IsDesignMode() );
184 
185 		SetSolidMarkHdl( pFrameView->IsSolidMarkHdl() );
186 		SetSolidDragging( pFrameView->IsSolidDragging() );
187 
188 		maVisibleLayers = pFrameView->GetVisibleLayers();
189 		maPrintableLayers = pFrameView->GetPrintableLayers();
190 		maLockedLayers = pFrameView->GetLockedLayers();
191 		maStandardHelpLines = pFrameView->GetStandardHelpLines();
192 		maNotesHelpLines = pFrameView->GetNotesHelpLines();
193 		maHandoutHelpLines = pFrameView->GetHandoutHelpLines();
194 		SetActiveLayer( pFrameView->GetActiveLayer() );
195 		mbNoColors = pFrameView->IsNoColors();
196 		mbNoAttribs = pFrameView->IsNoAttribs() ;
197 		maVisArea = pFrameView->GetVisArea();
198 		mePageKind = pFrameView->GetPageKind();
199 		mePageKindOnLoad = pFrameView->GetPageKindOnLoad();
200 		mnSelectedPage = pFrameView->GetSelectedPage();
201 		mnSelectedPageOnLoad = pFrameView->GetSelectedPageOnLoad();
202 		meStandardEditMode = pFrameView->GetViewShEditMode(PK_STANDARD);
203 		meNotesEditMode = pFrameView->GetViewShEditMode(PK_NOTES);
204 		meHandoutEditMode = pFrameView->GetViewShEditMode(PK_HANDOUT);
205 		SetViewShEditModeOnLoad(pFrameView->GetViewShEditModeOnLoad());
206 		mbLayerMode = pFrameView->IsLayerMode();
207 		mbQuickEdit = pFrameView->IsQuickEdit();
208 
209 		// #i26631#
210 		SetMasterPagePaintCaching( pFrameView->IsMasterPagePaintCaching() );
211 
212 		SetDragWithCopy( pFrameView->IsDragWithCopy() );
213 		mbBigHandles 		 = pFrameView->IsBigHandles();
214 		mbDoubleClickTextEdit = pFrameView->IsDoubleClickTextEdit();
215 		mbClickChangeRotation = pFrameView->IsClickChangeRotation();
216 		mnSlidesPerRow = pFrameView->GetSlidesPerRow();
217 		mnDrawMode = pFrameView->GetDrawMode();
218 		mnTabCtrlPercent = pFrameView->GetTabCtrlPercent();
219         mbIsNavigatorShowingAllShapes = pFrameView->IsNavigatorShowingAllShapes();
220         SetPreviousViewShellType (pFrameView->GetPreviousViewShellType());
221         SetViewShellTypeOnLoad (pFrameView->GetViewShellTypeOnLoad());
222 	}
223 	else
224 	{
225 		/**********************************************************************
226 		* FrameView mit den Applikationsdaten initialisieren
227 		**********************************************************************/
228 		maVisibleLayers.SetAll();
229 		maPrintableLayers.SetAll();
230 		SetGridCoarse( Size( 1000, 1000 ) );
231 		SetSnapGridWidth(Fraction(1000, 1), Fraction(1000, 1));
232 		SetActiveLayer( String( SdResId(STR_LAYER_LAYOUT) ) );
233 		mbNoColors = sal_True;
234 		mbNoAttribs = sal_False;
235 		maVisArea = Rectangle( Point(), Size(0, 0) );
236 		mePageKind = PK_STANDARD;
237 		mePageKindOnLoad = PK_STANDARD;
238 		mnSelectedPage = 0;
239 		mnSelectedPageOnLoad = 0;
240 		meStandardEditMode = EM_PAGE;
241 		meNotesEditMode = EM_PAGE;
242 		meHandoutEditMode = EM_MASTERPAGE;
243         SetViewShEditModeOnLoad(EM_PAGE);
244 		mbLayerMode = sal_False;
245 		SetEliminatePolyPoints(sal_False);
246 		mbBigHandles = sal_False;
247 		mbDoubleClickTextEdit = sal_False;
248 		mbClickChangeRotation = sal_False;
249 		mnSlidesPerRow = 4;
250 
251 		{
252 			bool bUseContrast = Application::GetSettings().GetStyleSettings().GetHighContrastMode();
253 			mnDrawMode = bUseContrast ? OUTPUT_DRAWMODE_CONTRAST : OUTPUT_DRAWMODE_COLOR;
254 		}
255 		mnTabCtrlPercent = 0.0;
256         mbIsNavigatorShowingAllShapes = false;
257         SetPreviousViewShellType (ViewShell::ST_NONE);
258         SetViewShellTypeOnLoad (ViewShell::ST_IMPRESS);
259 
260 		// get default for design mode
261 		sal_Bool bInitDesignMode = pDrawDoc->GetOpenInDesignMode();
262 		if( pDrawDoc->OpenInDesignModeIsDefaulted() )
263 		{
264 			bInitDesignMode = sal_True;
265 		}
266 
267 		SfxObjectShell* pObjShell = pDrawDoc->GetObjectShell();
268 		if( pObjShell && pObjShell->IsReadOnly() )
269 			bInitDesignMode = sal_False;
270 		SetDesignMode( bInitDesignMode );
271 
272 		Update( SD_MOD()->GetSdOptions(pDrawDoc->GetDocumentType()) );
273 	}
274 
275 }
276 
277 /*************************************************************************
278 |*
279 |* Dtor
280 |*
281 \************************************************************************/
282 
283 FrameView::~FrameView()
284 {
285 }
286 
287 
288 /*************************************************************************
289 |*
290 |* Verbindung herstellen
291 |*
292 \************************************************************************/
293 
294 void FrameView::Connect()
295 {
296 	mnRefCount++;
297 }
298 
299 
300 /*************************************************************************
301 |*
302 |* Verbindung loesen
303 |*
304 \************************************************************************/
305 
306 void FrameView::Disconnect()
307 {
308 	if (mnRefCount > 0)
309 	{
310 		mnRefCount--;
311 	}
312 
313 	if (mnRefCount == 0)
314 	{
315 		delete this;
316 	}
317 }
318 
319 /*************************************************************************
320 |*
321 |* Update mit Daten der SdOptions
322 |*
323 \************************************************************************/
324 
325 void FrameView::Update(SdOptions* pOptions)
326 {
327 	if (pOptions)
328 	{
329 		mbRuler = pOptions->IsRulerVisible();
330 		SetGridVisible( pOptions->IsGridVisible() );
331 		SetSnapAngle( pOptions->GetAngle() );
332 		SetGridSnap( pOptions->IsUseGridSnap() );
333 		SetBordSnap( pOptions->IsSnapBorder()  );
334 		SetHlplSnap( pOptions->IsSnapHelplines() );
335 		SetOFrmSnap( pOptions->IsSnapFrame() );
336 		SetOPntSnap( pOptions->IsSnapPoints() );
337 		SetHlplVisible( pOptions->IsHelplines() );
338 		SetDragStripes( pOptions->IsDragStripes() );
339 		SetPlusHandlesAlwaysVisible( pOptions->IsHandlesBezier() );
340 		SetSnapMagneticPixel( pOptions->GetSnapArea() );
341 		SetMarkedHitMovesAlways( pOptions->IsMarkedHitMovesAlways() );
342 		SetMoveOnlyDragging( pOptions->IsMoveOnlyDragging() );
343 		SetSlantButShear( pOptions->IsMoveOnlyDragging() );
344 		SetNoDragXorPolys ( !pOptions->IsMoveOutline() );
345 		SetCrookNoContortion( pOptions->IsCrookNoContortion() );
346 		SetAngleSnapEnabled( pOptions->IsRotate() );
347 		SetBigOrtho( pOptions->IsBigOrtho() );
348 		SetOrtho( pOptions->IsOrtho() );
349 		SetEliminatePolyPointLimitAngle( pOptions->GetEliminatePolyPointLimitAngle() );
350 // #110094#-7
351 //		SetMasterPagePaintCaching( pOptions->IsMasterPagePaintCaching() );
352 		GetModel()->SetPickThroughTransparentTextFrames( pOptions->IsPickThrough() );
353 
354 		SetSolidMarkHdl( pOptions->IsSolidMarkHdl() );
355 		SetSolidDragging( pOptions->IsSolidDragging() );
356 
357 		SetGridCoarse( Size( pOptions->GetFldDrawX(), pOptions->GetFldDrawY() ) );
358 		SetGridFine( Size( pOptions->GetFldDivisionX(), pOptions->GetFldDivisionY() ) );
359 		Fraction aFractX(pOptions->GetFldDrawX(), pOptions->GetFldDrawX() / ( pOptions->GetFldDivisionX() ? pOptions->GetFldDivisionX() : 1 ));
360 		Fraction aFractY(pOptions->GetFldDrawY(), pOptions->GetFldDrawY() / ( pOptions->GetFldDivisionY() ? pOptions->GetFldDivisionY() : 1 ));
361 		SetSnapGridWidth(aFractX, aFractY);
362 		SetQuickEdit(pOptions->IsQuickEdit());
363 
364 		// #i26631#
365 		SetMasterPagePaintCaching( pOptions->IsMasterPagePaintCaching() );
366 
367 		SetDragWithCopy(pOptions->IsDragWithCopy());
368 		SetBigHandles( pOptions->IsBigHandles() );
369 		SetDoubleClickTextEdit( pOptions->IsDoubleClickTextEdit() );
370 		SetClickChangeRotation( pOptions->IsClickChangeRotation() );
371 	}
372 }
373 
374 
375 /*************************************************************************
376 |*
377 |* EditMode (Page oder MasterPage) des Arbeitsmodus setzen
378 |*
379 \************************************************************************/
380 
381 void FrameView::SetViewShEditMode(EditMode eMode, PageKind eKind)
382 {
383 	if (eKind == PK_STANDARD)
384 	{
385 		meStandardEditMode = eMode;
386 	}
387 	else if (eKind == PK_NOTES)
388 	{
389 		meNotesEditMode = eMode;
390 	}
391 	else if (eKind == PK_HANDOUT)
392 	{
393 		meHandoutEditMode = eMode;
394 	}
395 }
396 
397 
398 /*************************************************************************
399 |*
400 |* EditMode (Page oder MasterPage) des Arbeitsmodus zurueckgeben
401 |*
402 \************************************************************************/
403 
404 EditMode FrameView::GetViewShEditMode(PageKind eKind)
405 {
406 	EditMode eMode = EM_PAGE;
407 
408 	if (eKind == PK_STANDARD)
409 	{
410 		eMode = meStandardEditMode;
411 	}
412 	else if (eKind == PK_NOTES)
413 	{
414 		eMode = meNotesEditMode;
415 	}
416 	else if (eKind == PK_HANDOUT)
417 	{
418 		eMode = meHandoutEditMode;
419 	}
420 
421 	return (eMode);
422 }
423 
424 
425 
426 
427 void FrameView::SetViewShEditModeOnLoad (EditMode eMode)
428 {
429     meEditModeOnLoad = eMode;
430 }
431 
432 
433 
434 
435 EditMode FrameView::GetViewShEditModeOnLoad (void) const
436 {
437     return meEditModeOnLoad;
438 }
439 
440 
441 
442 
443 static OUString createHelpLinesString( const SdrHelpLineList& rHelpLines )
444 {
445 	::rtl::OUStringBuffer aLines;
446 
447 	const sal_uInt16 nCount = rHelpLines.GetCount();
448 	for( sal_uInt16 nHlpLine = 0; nHlpLine < nCount; nHlpLine++ )
449 	{
450 		const SdrHelpLine& rHelpLine = rHelpLines[nHlpLine];
451 		const Point& rPos = rHelpLine.GetPos();
452 
453 		switch( rHelpLine.GetKind() )
454 		{
455 			case SDRHELPLINE_POINT:
456 				aLines.append( (sal_Unicode)'P' );
457 				aLines.append( (sal_Int32)rPos.X() );
458 				aLines.append( (sal_Unicode)',' );
459 				aLines.append( (sal_Int32)rPos.Y() );
460 				break;
461 			case SDRHELPLINE_VERTICAL:
462 				aLines.append( (sal_Unicode)'V' );
463 				aLines.append( (sal_Int32)rPos.X() );
464 				break;
465 			case SDRHELPLINE_HORIZONTAL:
466 				aLines.append( (sal_Unicode)'H' );
467 				aLines.append( (sal_Int32)rPos.Y() );
468 				break;
469 			default:
470 				DBG_ERROR( "Unsupported helpline Kind!" );
471 		}
472 	}
473 
474 	return aLines.makeStringAndClear();
475 }
476 
477 #define addValue( n, v ) push_back( std::pair< OUString, Any >( OUString( RTL_CONSTASCII_USTRINGPARAM( n ) ), v ) )
478 void FrameView::WriteUserDataSequence ( ::com::sun::star::uno::Sequence < ::com::sun::star::beans::PropertyValue >& rValues, sal_Bool )
479 {
480 	std::vector< std::pair< OUString, Any > > aUserData;
481 
482 	aUserData.addValue( sUNO_View_GridIsVisible, makeAny( (sal_Bool)IsGridVisible() ) );
483 	aUserData.addValue( sUNO_View_GridIsFront, makeAny( (sal_Bool)IsGridFront() ) );
484 	aUserData.addValue( sUNO_View_IsSnapToGrid, makeAny( (sal_Bool)IsGridSnap() ) );
485 	aUserData.addValue( sUNO_View_IsSnapToPageMargins, makeAny( (sal_Bool)IsBordSnap() ) );
486 	aUserData.addValue( sUNO_View_IsSnapToSnapLines, makeAny( (sal_Bool)IsHlplSnap() ) );
487 	aUserData.addValue( sUNO_View_IsSnapToObjectFrame, makeAny( (sal_Bool)IsOFrmSnap() ) );
488 	aUserData.addValue( sUNO_View_IsSnapToObjectPoints, makeAny( (sal_Bool)IsOPntSnap() ) );
489 
490 //	pValue->Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( sUNO_View_IsSnapLinesVisible ) );
491 //	pValue->Value <<= (sal_Bool)IsHlplVisible();
492 //  pValue++;nIndex++;
493 
494 //	pValue->Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( sUNO_View_IsDragStripes ) );
495 //	pValue->Value <<= (sal_Bool)IsDragStripes();
496 //  pValue++;nIndex++;
497 
498 	aUserData.addValue( sUNO_View_IsPlusHandlesAlwaysVisible, makeAny( (sal_Bool)IsPlusHandlesAlwaysVisible() ) );
499 	aUserData.addValue( sUNO_View_IsFrameDragSingles, makeAny( (sal_Bool)IsFrameDragSingles() ) );
500 
501 //	pValue->Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( sUNO_View_IsMarkedHitMovesAlways ) );
502 //	pValue->Value <<= (sal_Bool)IsMarkedHitMovesAlways();
503 //  pValue++;nIndex++;
504 
505 	aUserData.addValue( sUNO_View_EliminatePolyPointLimitAngle, makeAny( (sal_Int32)GetEliminatePolyPointLimitAngle() ) );
506 	aUserData.addValue( sUNO_View_IsEliminatePolyPoints, makeAny( (sal_Bool)IsEliminatePolyPoints() ) );
507 
508 //	pValue->Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( sUNO_View_IsLineDraft ) );
509 //	pValue->Value <<= (sal_Bool)IsLineDraft();
510 //  pValue++;nIndex++;
511 
512 //	pValue->Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( sUNO_View_IsFillDraft ) );
513 //	pValue->Value <<= (sal_Bool)IsFillDraft();
514 //  pValue++;nIndex++;
515 
516 //	pValue->Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( sUNO_View_IsTextDraft ) );
517 //	pValue->Value <<= (sal_Bool)IsTextDraft();
518 //  pValue++;nIndex++;
519 
520 //	pValue->Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( sUNO_View_IsGrafDraft ) );
521 //	pValue->Value <<= (sal_Bool)IsGrafDraft();
522 //  pValue++;nIndex++;
523 
524 	Any aAny;
525 	GetVisibleLayers().QueryValue( aAny );
526 	aUserData.addValue( sUNO_View_VisibleLayers, aAny );
527 
528 	GetPrintableLayers().QueryValue( aAny );
529 	aUserData.addValue( sUNO_View_PrintableLayers, aAny );
530 
531 	GetLockedLayers().QueryValue( aAny );
532 	aUserData.addValue( sUNO_View_LockedLayers, aAny );
533 
534 	aUserData.addValue( sUNO_View_NoAttribs, makeAny( (sal_Bool)IsNoAttribs() ) );
535 	aUserData.addValue( sUNO_View_NoColors, makeAny( (sal_Bool)IsNoColors() ) );
536 
537 	if( GetStandardHelpLines().GetCount() )
538 		aUserData.addValue( sUNO_View_SnapLinesDrawing, makeAny( createHelpLinesString( GetStandardHelpLines() ) ) );
539 
540 	if( GetNotesHelpLines().GetCount() )
541 		aUserData.addValue( sUNO_View_SnapLinesNotes, makeAny( createHelpLinesString( GetNotesHelpLines() ) ) );
542 
543 	if( GetHandoutHelpLines().GetCount() )
544 		aUserData.addValue( sUNO_View_SnapLinesHandout, makeAny( createHelpLinesString( GetHandoutHelpLines() ) ) );
545 
546 	aUserData.addValue( sUNO_View_RulerIsVisible, makeAny( (sal_Bool)HasRuler() ) );
547 	aUserData.addValue( sUNO_View_PageKind, makeAny( (sal_Int16)GetPageKind() ) );
548 	aUserData.addValue( sUNO_View_SelectedPage, makeAny( (sal_Int16)GetSelectedPage() ) );
549 	aUserData.addValue( sUNO_View_IsLayerMode, makeAny( (sal_Bool)IsLayerMode() ) );
550 
551 //	pValue->Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( sUNO_View_IsQuickEdit ) );
552 //	pValue->Value <<= (sal_Bool)IsQuickEdit();
553 //  pValue++;nIndex++;
554 
555 	aUserData.addValue( sUNO_View_IsBigHandles, makeAny( (sal_Bool)IsBigHandles() ) );
556 	aUserData.addValue( sUNO_View_IsDoubleClickTextEdit,  makeAny( (sal_Bool)IsDoubleClickTextEdit() ) );
557 	aUserData.addValue( sUNO_View_IsClickChangeRotation, makeAny( (sal_Bool)IsClickChangeRotation() ) );
558 
559 //	pValue->Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( sUNO_View_IsDragWithCopy ) );
560 //	pValue->Value <<= (sal_Bool)IsDragWithCopy();
561 //  pValue++;nIndex++;
562 
563 	aUserData.addValue( sUNO_View_SlidesPerRow, makeAny( (sal_Int16)GetSlidesPerRow() ) );
564 /* #107128# Product managment decided to not make this persistent
565 	aUserData.addValue( sUNO_View_DrawMode, makeAny( (sal_Int32)GetDrawMode() ) );
566 	aUserData.addValue( sUNO_View_PreviewDrawMode, makeAny( (sal_Int32)GetPreviewDrawMode() ) );
567 */
568     aUserData.addValue( sUNO_View_EditModeStandard, makeAny( (sal_Int32)GetViewShEditMode( PK_STANDARD ) ) );
569 	aUserData.addValue( sUNO_View_EditModeNotes, makeAny( (sal_Int32)GetViewShEditMode( PK_NOTES ) ) );
570 	aUserData.addValue( sUNO_View_EditModeHandout, makeAny( (sal_Int32)GetViewShEditMode( PK_HANDOUT ) ) );
571 
572 	{
573 		const Rectangle aVisArea = GetVisArea();
574 
575 		aUserData.addValue( sUNO_View_VisibleAreaTop, makeAny( (sal_Int32)aVisArea.Top() ) );
576 		aUserData.addValue( sUNO_View_VisibleAreaLeft, makeAny( (sal_Int32)aVisArea.Left() ) );
577 		aUserData.addValue( sUNO_View_VisibleAreaWidth, makeAny( (sal_Int32)aVisArea.GetWidth() ) );
578 		aUserData.addValue( sUNO_View_VisibleAreaHeight, makeAny( (sal_Int32)aVisArea.GetHeight() ) );
579 	}
580 
581 	aUserData.addValue( sUNO_View_GridCoarseWidth, makeAny( (sal_Int32)GetGridCoarse().Width() ) );
582 	aUserData.addValue( sUNO_View_GridCoarseHeight, makeAny( (sal_Int32)GetGridCoarse().Height() ) );
583 	aUserData.addValue( sUNO_View_GridFineWidth, makeAny( (sal_Int32)GetGridFine().Width() ) );
584 	aUserData.addValue( sUNO_View_GridFineHeight, makeAny( (sal_Int32)GetGridFine().Height() ) );
585 	aUserData.addValue( sUNO_View_GridSnapWidthXNumerator, makeAny( (sal_Int32)GetSnapGridWidthX().GetNumerator() ) );
586 	aUserData.addValue( sUNO_View_GridSnapWidthXDenominator, makeAny( (sal_Int32)GetSnapGridWidthX().GetDenominator() ) );
587 	aUserData.addValue( sUNO_View_GridSnapWidthYNumerator, makeAny( (sal_Int32)GetSnapGridWidthY().GetNumerator() ) );
588 	aUserData.addValue( sUNO_View_GridSnapWidthYDenominator, makeAny( (sal_Int32)GetSnapGridWidthY().GetDenominator() ) );
589 	aUserData.addValue( sUNO_View_IsAngleSnapEnabled, makeAny( (sal_Bool)IsAngleSnapEnabled() ) );
590     aUserData.addValue( sUNO_View_SnapAngle, makeAny( (sal_Int32)GetSnapAngle() ) );
591 
592 	const sal_Int32 nOldLength = rValues.getLength();
593 	rValues.realloc( nOldLength + aUserData.size() );
594 
595 	PropertyValue* pValue = &(rValues.getArray()[nOldLength]);
596 
597 	std::vector< std::pair< OUString, Any > >::iterator aIter( aUserData.begin() );
598 	for( ; aIter != aUserData.end(); aIter++, pValue++ )
599 	{
600 		pValue->Name = (*aIter).first;
601 		pValue->Value = (*aIter).second;
602 	}
603 }
604 #undef addValue
605 
606 static void createHelpLinesFromString( const rtl::OUString& rLines, SdrHelpLineList& rHelpLines )
607 {
608 	const sal_Unicode * pStr = rLines.getStr();
609 	SdrHelpLine aNewHelpLine;
610 	rtl::OUStringBuffer sBuffer;
611 
612 	while( *pStr )
613 	{
614 		Point aPoint;
615 
616 		switch( *pStr )
617 		{
618 		case (sal_Unicode)'P':
619 			aNewHelpLine.SetKind( SDRHELPLINE_POINT );
620 			break;
621 		case (sal_Unicode)'V':
622 			aNewHelpLine.SetKind( SDRHELPLINE_VERTICAL );
623 			break;
624 		case (sal_Unicode)'H':
625 			aNewHelpLine.SetKind( SDRHELPLINE_HORIZONTAL );
626 			break;
627 		default:
628 			DBG_ERROR( "syntax error in snap lines settings string" );
629 			return;
630 		}
631 
632 		pStr++;
633 
634 		while( (*pStr >= sal_Unicode('0') && *pStr <= sal_Unicode('9')) || (*pStr == '+') || (*pStr == '-') )
635 		{
636 			sBuffer.append( *pStr++ );
637 		}
638 
639 		sal_Int32 nValue = sBuffer.makeStringAndClear().toInt32();
640 
641 		if( aNewHelpLine.GetKind() == SDRHELPLINE_HORIZONTAL )
642 		{
643 			aPoint.Y() = nValue;
644 		}
645 		else
646 		{
647 			aPoint.X() = nValue;
648 
649 			if( aNewHelpLine.GetKind() == SDRHELPLINE_POINT )
650 			{
651 				if( *pStr++ != ',' )
652 					return;
653 
654 				while( (*pStr >= sal_Unicode('0') && *pStr <= sal_Unicode('9')) || (*pStr == '+') || (*pStr == '-')  )
655 				{
656 					sBuffer.append( *pStr++ );
657 				}
658 
659 				aPoint.Y() = sBuffer.makeStringAndClear().toInt32();
660 
661 			}
662 		}
663 
664 		aNewHelpLine.SetPos( aPoint );
665 		rHelpLines.Insert( aNewHelpLine );
666 	}
667 }
668 
669 void FrameView::ReadUserDataSequence ( const ::com::sun::star::uno::Sequence < ::com::sun::star::beans::PropertyValue >& rSequence, sal_Bool )
670 {
671 	const sal_Int32 nLength = rSequence.getLength();
672     if (nLength)
673     {
674 		const bool bImpress = dynamic_cast< SdDrawDocument* >(GetModel())->GetDocumentType() == DOCUMENT_TYPE_IMPRESS;
675 
676 		sal_Bool bBool = sal_False;
677 		sal_Int32 nInt32 = 0;
678 		sal_Int16 nInt16 = 0;
679 		rtl::OUString aString;
680 
681 		sal_Int32 aSnapGridWidthXNum = GetSnapGridWidthX().GetNumerator();
682 		sal_Int32 aSnapGridWidthXDom = GetSnapGridWidthX().GetDenominator();
683 
684 		sal_Int32 aSnapGridWidthYNum = GetSnapGridWidthY().GetNumerator();
685 		sal_Int32 aSnapGridWidthYDom = GetSnapGridWidthY().GetDenominator();
686 
687         EditMode eStandardEditMode;
688         EditMode eNotesEditMode;
689         EditMode eHandoutEditMode;
690 
691         const com::sun::star::beans::PropertyValue *pValue = rSequence.getConstArray();
692         for (sal_Int16 i = 0 ; i < nLength; i++, pValue++ )
693         {
694             if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_ViewId ) ) )
695             {
696             }
697 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_SnapLinesDrawing ) ) )
698 			{
699 				if( pValue->Value >>= aString )
700 				{
701 					SdrHelpLineList aHelpLines;
702 					createHelpLinesFromString( aString, aHelpLines );
703 					SetStandardHelpLines( aHelpLines );
704 				}
705 			}
706 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_SnapLinesNotes ) ) )
707 			{
708 				if( pValue->Value >>= aString )
709 				{
710 					SdrHelpLineList aHelpLines;
711 					createHelpLinesFromString( aString, aHelpLines );
712 					SetNotesHelpLines( aHelpLines );
713 				}
714 			}
715 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_SnapLinesHandout ) ) )
716 			{
717 				if( pValue->Value >>= aString )
718 				{
719 					SdrHelpLineList aHelpLines;
720 					createHelpLinesFromString( aString, aHelpLines );
721 					SetHandoutHelpLines( aHelpLines );
722 				}
723 			}
724 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_RulerIsVisible ) ) )
725 			{
726 				if( pValue->Value >>= bBool )
727 				{
728 					SetRuler( bBool );
729 				}
730 			}
731 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_PageKind ) ) )
732 			{
733 				if( pValue->Value >>= nInt16 )
734 				{
735 					SdDrawDocument* pDoc = dynamic_cast< SdDrawDocument* >( GetModel() );
736 					if( pDoc && pDoc->GetDocSh() && ( SFX_CREATE_MODE_EMBEDDED == pDoc->GetDocSh()->GetCreateMode() ) )
737                         SetPageKind( (PageKind)nInt16 );
738 
739 					SetPageKindOnLoad( (PageKind)nInt16 );
740 				}
741 			}
742 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_SelectedPage ) ) )
743 			{
744 				if( pValue->Value >>= nInt16 )
745 				{
746 					SdDrawDocument* pDoc = dynamic_cast< SdDrawDocument* >( GetModel() );
747 					if( pDoc && pDoc->GetDocSh() && ( SFX_CREATE_MODE_EMBEDDED == pDoc->GetDocSh()->GetCreateMode() ) )
748 						SetSelectedPage( (sal_uInt16)nInt16 );
749 
750 					SetSelectedPageOnLoad( (sal_uInt16)nInt16 );
751 				}
752 			}
753 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_IsLayerMode ) ) )
754 			{
755 				if( pValue->Value >>= bBool )
756 				{
757 					SetLayerMode( bBool );
758 				}
759 			}
760 /*			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_IsQuickEdit ) ) )
761 			{
762 				if( pValue->Value >>= bBool )
763 				{
764 					SetQuickEdit( bBool );
765 				}
766 			}
767 */			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_IsBigHandles ) ) )
768 			{
769 				if( pValue->Value >>= bBool )
770 				{
771 					SetBigHandles( bBool );
772 				}
773 			}
774 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_IsDoubleClickTextEdit ) ) )
775 			{
776 				if( pValue->Value >>= bBool )
777 				{
778 					SetDoubleClickTextEdit( bBool );
779 				}
780 			}
781 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_IsClickChangeRotation ) ) )
782 			{
783 				if( pValue->Value >>= bBool )
784 				{
785 					SetClickChangeRotation( bBool );
786 				}
787 			}
788 /*			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_IsDragWithCopy ) ) )
789 			{
790 				if( pValue->Value >>= bBool )
791 				{
792 					SetDragWithCopy( bBool );
793 				}
794 			}
795 */			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_SlidesPerRow ) ) )
796 			{
797 				if( pValue->Value >>= nInt16 )
798 				{
799 					SetSlidesPerRow( (sal_uInt16)nInt16 );
800 				}
801 			}
802 /* #107128# Product managment decided to not make this persistent
803 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_DrawMode ) ) )
804 			{
805 				if( pValue->Value >>= nInt32 )
806 				{
807 					const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
808 					if( rStyleSettings.GetHighContrastMode() )
809 						continue;
810 					SetDrawMode( (sal_uLong)nInt32 );
811 				}
812 			}
813 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_PreviewDrawMode ) ) )
814 			{
815 				if( pValue->Value >>= nInt32 )
816 				{
817 					const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
818 					SvtAccessibilityOptions aAccOptions;
819 					if( rStyleSettings.GetHighContrastMode() && aAccOptions.GetIsForPagePreviews() )
820 						continue;
821 					SetPreviewDrawMode( (sal_uLong)nInt32 );
822 				}
823 			}
824 */
825 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_EditModeStandard ) ) )
826 			{
827 				if( pValue->Value >>= nInt32 )
828 				{
829 					SdDrawDocument* pDoc = dynamic_cast< SdDrawDocument* >( GetModel() );
830 					if( pDoc && pDoc->GetDocSh() && ( SFX_CREATE_MODE_EMBEDDED == pDoc->GetDocSh()->GetCreateMode() ) )
831                         SetViewShEditMode( (EditMode)nInt32, PK_STANDARD );
832 					eStandardEditMode = (EditMode)nInt32;
833 				}
834 			}
835 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_EditModeNotes ) ) )
836 			{
837 				if( pValue->Value >>= nInt32 )
838 				{
839 					SdDrawDocument* pDoc = dynamic_cast< SdDrawDocument* >( GetModel() );
840 					if( pDoc && pDoc->GetDocSh() && ( SFX_CREATE_MODE_EMBEDDED == pDoc->GetDocSh()->GetCreateMode() ) )
841                         SetViewShEditMode( (EditMode)nInt32, PK_NOTES );
842 					eNotesEditMode = (EditMode)nInt32;
843 				}
844 			}
845 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_EditModeHandout ) ) )
846 			{
847 				if( pValue->Value >>= nInt32 )
848 				{
849 					SdDrawDocument* pDoc = dynamic_cast< SdDrawDocument* >( GetModel() );
850 					if( pDoc && pDoc->GetDocSh() && ( SFX_CREATE_MODE_EMBEDDED == pDoc->GetDocSh()->GetCreateMode() ) )
851                         SetViewShEditMode( (EditMode)nInt32, PK_HANDOUT );
852 					eHandoutEditMode = (EditMode)nInt32;
853 				}
854 			}
855 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_VisibleAreaTop ) ) )
856 			{
857 				sal_Int32 nTop = 0;
858 				if( pValue->Value >>= nTop )
859 				{
860 					Rectangle aVisArea( GetVisArea() );
861 					aVisArea.nBottom += nTop - aVisArea.nTop;
862 					aVisArea.nTop = nTop;
863 					SetVisArea( aVisArea );
864 				}
865 			}
866 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_VisibleAreaLeft ) ) )
867 			{
868 				sal_Int32 nLeft = 0;
869 				if( pValue->Value >>= nLeft )
870 				{
871 					Rectangle aVisArea( GetVisArea() );
872 					aVisArea.nRight += nLeft - aVisArea.nLeft;
873 					aVisArea.nLeft = nLeft;
874 					SetVisArea( aVisArea );
875 				}
876 			}
877 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_VisibleAreaWidth ) ) )
878 			{
879 				sal_Int32 nWidth = 0;
880 				if( pValue->Value >>= nWidth )
881 				{
882 					Rectangle aVisArea( GetVisArea() );
883 					aVisArea.nRight = aVisArea.nLeft + nWidth - 1;
884 					SetVisArea( aVisArea );
885 				}
886 			}
887 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_VisibleAreaHeight ) ) )
888 			{
889 				sal_Int32 nHeight = 0;
890 				if( pValue->Value >>= nHeight )
891 				{
892 					Rectangle aVisArea( GetVisArea() );
893 					aVisArea.nBottom = nHeight + aVisArea.nTop - 1;
894 					SetVisArea( aVisArea );
895 				}
896 			}
897 
898 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_GridIsVisible ) ) )
899 			{
900 				if( pValue->Value >>= bBool )
901 				{
902 					SetGridVisible( bBool );
903 				}
904 			}
905 
906 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_IsSnapToGrid ) ) )
907 			{
908 				if( pValue->Value >>= bBool )
909 				{
910 					SetGridSnap( bBool );
911 				}
912 			}
913 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_GridIsFront ) ) )
914 			{
915 				if( pValue->Value >>= bBool )
916 				{
917 					SetGridFront( bBool );
918 				}
919 			}
920 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_IsSnapToPageMargins ) ) )
921 			{
922 				if( pValue->Value >>= bBool )
923 				{
924 					SetBordSnap( bBool );
925 				}
926 			}
927 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_IsSnapToSnapLines ) ) )
928 			{
929 				if( pValue->Value >>= bBool )
930 				{
931 					SetHlplSnap( bBool );
932 				}
933 			}
934 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_IsSnapToObjectFrame ) ) )
935 			{
936 				if( pValue->Value >>= bBool )
937 				{
938 					SetOFrmSnap( bBool );
939 				}
940 			}
941 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_IsSnapToObjectPoints ) ) )
942 			{
943 				if( pValue->Value >>= bBool )
944 				{
945 					SetOPntSnap( bBool );
946 				}
947 			}
948 /*			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_IsSnapLinesVisible ) ) )
949 			{
950 				if( pValue->Value >>= bBool )
951 				{
952 					SetHlplVisible( bBool );
953 				}
954 			}
955 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_IsDragStripes ) ) )
956 			{
957 				if( pValue->Value >>= bBool )
958 				{
959 					SetDragStripes( bBool );
960 				}
961 			}
962 */			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_IsPlusHandlesAlwaysVisible ) ) )
963 			{
964 				if( pValue->Value >>= bBool )
965 				{
966 					SetPlusHandlesAlwaysVisible( bBool );
967 				}
968 			}
969 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_IsFrameDragSingles ) ) )
970 			{
971 				if( pValue->Value >>= bBool )
972 				{
973 					SetFrameDragSingles( bBool );
974 				}
975 			}
976 /*			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_IsMarkedHitMovesAlways ) ) )
977 			{
978 				if( pValue->Value >>= bBool )
979 				{
980 					SetMarkedHitMovesAlways( bBool );
981 				}
982 			}
983 */			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_EliminatePolyPointLimitAngle ) ) )
984 			{
985 				if( pValue->Value >>= nInt32 )
986 				{
987 					SetEliminatePolyPointLimitAngle( nInt32 );
988 				}
989 			}
990 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_IsEliminatePolyPoints ) ) )
991 			{
992 				if( pValue->Value >>= bBool )
993 				{
994 					SetEliminatePolyPoints( bBool );
995 				}
996 			}
997 /*
998 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_IsLineDraft ) ) )
999 			{
1000 				if( pValue->Value >>= bBool )
1001 				{
1002 					SetLineDraft( bBool );
1003 				}
1004 			}
1005 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_IsFillDraft ) ) )
1006 			{
1007 				if( pValue->Value >>= bBool )
1008 				{
1009 					SetFillDraft( bBool );
1010 				}
1011 			}
1012 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_IsTextDraft ) ) )
1013 			{
1014 				if( pValue->Value >>= bBool )
1015 				{
1016 					SetTextDraft( bBool );
1017 				}
1018 			}
1019 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_IsGrafDraft ) ) )
1020 			{
1021 				if( pValue->Value >>= bBool )
1022 				{
1023 					SetGrafDraft( bBool );
1024 				}
1025 			}
1026 */
1027 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_ActiveLayer ) ) )
1028 			{
1029 				if( pValue->Value >>= aString )
1030 				{
1031 					SetActiveLayer( aString );
1032 				}
1033 			}
1034 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_NoAttribs ) ) )
1035 			{
1036 				if( pValue->Value >>= bBool )
1037 				{
1038 					SetNoAttribs( bBool );
1039 				}
1040 			}
1041 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_NoColors ) ) )
1042 			{
1043 				if( pValue->Value >>= bBool )
1044 				{
1045 					SetNoColors( bBool );
1046 				}
1047 			}
1048 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_GridCoarseWidth ) ) )
1049 			{
1050 				if( pValue->Value >>= nInt32 )
1051 				{
1052 					const Size aCoarse( nInt32, GetGridCoarse().Height() );
1053 					SetGridCoarse( aCoarse );
1054 				}
1055 			}
1056 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_GridCoarseHeight ) ) )
1057 			{
1058 				if( pValue->Value >>= nInt32 )
1059 				{
1060 					const Size aCoarse( GetGridCoarse().Width(), nInt32 );
1061 					SetGridCoarse( aCoarse );
1062 				}
1063 			}
1064 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_GridFineWidth ) ) )
1065 			{
1066 				if( pValue->Value >>= nInt32 )
1067 				{
1068 					const Size aCoarse( nInt32, GetGridFine().Height() );
1069 					SetGridFine( aCoarse );
1070 				}
1071 			}
1072 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_GridFineHeight ) ) )
1073 			{
1074 				if( pValue->Value >>= nInt32 )
1075 				{
1076 					const Size aCoarse( GetGridFine().Width(), nInt32 );
1077 					SetGridFine( aCoarse );
1078 				}
1079 			}
1080 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_IsAngleSnapEnabled ) ) )
1081 			{
1082 				if( pValue->Value >>= bBool )
1083 				{
1084 					SetAngleSnapEnabled( bBool );
1085 				}
1086 			}
1087 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_SnapAngle ) ) )
1088 			{
1089 				if( pValue->Value >>= nInt32 )
1090 				{
1091 					SetSnapAngle( nInt32 );
1092 				}
1093 			}
1094 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_GridSnapWidthXNumerator ) ) )
1095 			{
1096 				pValue->Value >>= aSnapGridWidthXNum;
1097 			}
1098 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_GridSnapWidthXDenominator ) ) )
1099 			{
1100 				pValue->Value >>= aSnapGridWidthXDom;
1101 			}
1102 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_GridSnapWidthYNumerator ) ) )
1103 			{
1104 				pValue->Value >>= aSnapGridWidthYNum;
1105 			}
1106 			else if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_GridSnapWidthYDenominator ) ) )
1107 			{
1108 				pValue->Value >>= aSnapGridWidthYDom;
1109 			}
1110 			else if (!bImpress && pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_VisibleLayers ) ) )
1111 			{
1112 				SetOfByte aSetOfBytes;
1113 				aSetOfBytes.PutValue( pValue->Value );
1114 				SetVisibleLayers( aSetOfBytes );
1115 			}
1116 			else if (!bImpress && pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_PrintableLayers ) ) )
1117 			{
1118 				SetOfByte aSetOfBytes;
1119 				aSetOfBytes.PutValue( pValue->Value );
1120 				SetPrintableLayers( aSetOfBytes );
1121 			}
1122 			else if (!bImpress && pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_LockedLayers ) ) )
1123 			{
1124 				SetOfByte aSetOfBytes;
1125 				aSetOfBytes.PutValue( pValue->Value );
1126 				SetLockedLayers( aSetOfBytes );
1127 			}
1128 		}
1129 
1130         switch (GetPageKindOnLoad())
1131         {
1132             case PK_STANDARD: SetViewShEditModeOnLoad(meStandardEditMode); break;
1133             case PK_NOTES: SetViewShEditModeOnLoad(meNotesEditMode); break;
1134             case PK_HANDOUT: SetViewShEditModeOnLoad(meHandoutEditMode); break;
1135             default: SetViewShEditModeOnLoad(EM_PAGE); break;
1136         }
1137 
1138 		const Fraction aSnapGridWidthX( aSnapGridWidthXNum, aSnapGridWidthXDom );
1139 		const Fraction aSnapGridWidthY( aSnapGridWidthYNum, aSnapGridWidthYDom );
1140 
1141 		SetSnapGridWidth( aSnapGridWidthX, aSnapGridWidthY );
1142 	}
1143 }
1144 
1145 
1146 
1147 
1148 void FrameView::SetPreviousViewShellType (ViewShell::ShellType eType)
1149 {
1150     mePreviousViewShellType = eType;
1151 }
1152 
1153 
1154 
1155 
1156 ViewShell::ShellType FrameView::GetPreviousViewShellType (void) const
1157 {
1158     return mePreviousViewShellType;
1159 }
1160 
1161 
1162 
1163 
1164 void FrameView::SetViewShellTypeOnLoad (ViewShell::ShellType eType)
1165 {
1166     meViewShellTypeOnLoad = eType;
1167 }
1168 
1169 
1170 
1171 
1172 ViewShell::ShellType FrameView::GetViewShellTypeOnLoad (void) const
1173 {
1174     return meViewShellTypeOnLoad;
1175 }
1176 
1177 
1178 
1179 
1180 void FrameView::SetSelectedPage(sal_uInt16 nPage)
1181 {
1182     mnSelectedPage = nPage;
1183 }
1184 
1185 
1186 
1187 
1188 sal_uInt16 FrameView::GetSelectedPage (void) const
1189 {
1190     return mnSelectedPage;
1191 }
1192 
1193 
1194 
1195 
1196 void FrameView::SetIsNavigatorShowingAllShapes (const bool bIsNavigatorShowingAllShapes)
1197 {
1198     mbIsNavigatorShowingAllShapes = bIsNavigatorShowingAllShapes;
1199 }
1200 
1201 
1202 
1203 
1204 bool FrameView::IsNavigatorShowingAllShapes (void) const
1205 {
1206     return mbIsNavigatorShowingAllShapes;
1207 }
1208 
1209 
1210 } // end of namespace sd
1211