1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir 28*cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 29*cdf0e10cSrcweir #include "precompiled_sd.hxx" 30*cdf0e10cSrcweir 31*cdf0e10cSrcweir #include "DrawViewShell.hxx" 32*cdf0e10cSrcweir #include "PresentationViewShell.hxx" 33*cdf0e10cSrcweir #include <editeng/outliner.hxx> 34*cdf0e10cSrcweir #ifndef _SVXIDS_HXX 35*cdf0e10cSrcweir #include <svx/svxids.hrc> 36*cdf0e10cSrcweir #endif 37*cdf0e10cSrcweir #include <sfx2/request.hxx> 38*cdf0e10cSrcweir #include <sfx2/dispatch.hxx> 39*cdf0e10cSrcweir #include <svx/svdpagv.hxx> 40*cdf0e10cSrcweir #include <vcl/scrbar.hxx> 41*cdf0e10cSrcweir #include <tools/poly.hxx> 42*cdf0e10cSrcweir #include <svx/fmshell.hxx> 43*cdf0e10cSrcweir #include <editeng/eeitem.hxx> 44*cdf0e10cSrcweir #include <svtools/colorcfg.hxx> 45*cdf0e10cSrcweir #include "AccessibleDrawDocumentView.hxx" 46*cdf0e10cSrcweir 47*cdf0e10cSrcweir #include <sfx2/viewfrm.hxx> 48*cdf0e10cSrcweir #include "LayerTabBar.hxx" 49*cdf0e10cSrcweir 50*cdf0e10cSrcweir #include "strings.hrc" 51*cdf0e10cSrcweir #include "res_bmp.hrc" 52*cdf0e10cSrcweir #include "glob.hrc" 53*cdf0e10cSrcweir #include "app.hrc" 54*cdf0e10cSrcweir #include "helpids.h" 55*cdf0e10cSrcweir #include "optsitem.hxx" 56*cdf0e10cSrcweir #include "app.hxx" 57*cdf0e10cSrcweir #include "FrameView.hxx" 58*cdf0e10cSrcweir #include "sdattr.hxx" 59*cdf0e10cSrcweir #include "futext.hxx" 60*cdf0e10cSrcweir #include "sdpage.hxx" 61*cdf0e10cSrcweir #include "stlpool.hxx" 62*cdf0e10cSrcweir #include "prntopts.hxx" 63*cdf0e10cSrcweir #include "sdresid.hxx" 64*cdf0e10cSrcweir #include "Window.hxx" 65*cdf0e10cSrcweir #include "drawview.hxx" 66*cdf0e10cSrcweir #include "drawdoc.hxx" 67*cdf0e10cSrcweir #include "DrawDocShell.hxx" 68*cdf0e10cSrcweir #include "Outliner.hxx" 69*cdf0e10cSrcweir #include "Client.hxx" 70*cdf0e10cSrcweir #include "slideshow.hxx" 71*cdf0e10cSrcweir #include "unokywds.hxx" 72*cdf0e10cSrcweir #include "SdUnoDrawView.hxx" 73*cdf0e10cSrcweir #include "ViewShellBase.hxx" 74*cdf0e10cSrcweir #include "FormShellManager.hxx" 75*cdf0e10cSrcweir #include "LayerDialogContent.hxx" 76*cdf0e10cSrcweir #include "DrawController.hxx" 77*cdf0e10cSrcweir 78*cdf0e10cSrcweir namespace sd { 79*cdf0e10cSrcweir 80*cdf0e10cSrcweir static const int TABCONTROL_INITIAL_SIZE = 350; 81*cdf0e10cSrcweir static const int PAPER_SHADOW_EXT_PIXEL = 2; 82*cdf0e10cSrcweir 83*cdf0e10cSrcweir 84*cdf0e10cSrcweir /************************************************************************* 85*cdf0e10cSrcweir |* 86*cdf0e10cSrcweir |* Wird gerufen, wenn sich das Model aendert 87*cdf0e10cSrcweir |* 88*cdf0e10cSrcweir \************************************************************************/ 89*cdf0e10cSrcweir 90*cdf0e10cSrcweir void DrawViewShell::ModelHasChanged() 91*cdf0e10cSrcweir { 92*cdf0e10cSrcweir Invalidate(); 93*cdf0e10cSrcweir // Damit der Navigator auch einen aktuellen Status bekommt 94*cdf0e10cSrcweir GetViewFrame()->GetBindings().Invalidate( SID_NAVIGATOR_STATE, sal_True, sal_False ); 95*cdf0e10cSrcweir 96*cdf0e10cSrcweir //Update3DWindow(); 97*cdf0e10cSrcweir SfxBoolItem aItem( SID_3D_STATE, sal_True ); 98*cdf0e10cSrcweir GetViewFrame()->GetDispatcher()->Execute( 99*cdf0e10cSrcweir SID_3D_STATE, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD, &aItem, 0L ); 100*cdf0e10cSrcweir 101*cdf0e10cSrcweir // jetzt den von der Drawing Engine neu erzeugten TextEditOutliner 102*cdf0e10cSrcweir // initialisieren 103*cdf0e10cSrcweir ::Outliner* pOutliner = mpDrawView->GetTextEditOutliner(); 104*cdf0e10cSrcweir if (pOutliner) 105*cdf0e10cSrcweir { 106*cdf0e10cSrcweir SfxStyleSheetPool* pSPool = (SfxStyleSheetPool*) GetDocSh()->GetStyleSheetPool(); 107*cdf0e10cSrcweir pOutliner->SetStyleSheetPool(pSPool); 108*cdf0e10cSrcweir } 109*cdf0e10cSrcweir } 110*cdf0e10cSrcweir 111*cdf0e10cSrcweir 112*cdf0e10cSrcweir 113*cdf0e10cSrcweir 114*cdf0e10cSrcweir void DrawViewShell::Resize (void) 115*cdf0e10cSrcweir { 116*cdf0e10cSrcweir ViewShell::Resize(); 117*cdf0e10cSrcweir 118*cdf0e10cSrcweir if ( GetDocSh()->GetCreateMode() == SFX_CREATE_MODE_EMBEDDED ) 119*cdf0e10cSrcweir { 120*cdf0e10cSrcweir SetZoomRect( GetDocSh()->GetVisArea(ASPECT_CONTENT) ); 121*cdf0e10cSrcweir } 122*cdf0e10cSrcweir 123*cdf0e10cSrcweir rtl::Reference< sd::SlideShow > xSlideshow( SlideShow::GetSlideShow( GetViewShellBase() ) ); 124*cdf0e10cSrcweir if( xSlideshow.is() && xSlideshow->isRunning() && !xSlideshow->isFullScreen() ) 125*cdf0e10cSrcweir { 126*cdf0e10cSrcweir xSlideshow->resize(maViewSize); 127*cdf0e10cSrcweir } 128*cdf0e10cSrcweir } 129*cdf0e10cSrcweir 130*cdf0e10cSrcweir 131*cdf0e10cSrcweir 132*cdf0e10cSrcweir 133*cdf0e10cSrcweir void DrawViewShell::ArrangeGUIElements (void) 134*cdf0e10cSrcweir { 135*cdf0e10cSrcweir // Retrieve the current size (thickness) of the scroll bars. That is 136*cdf0e10cSrcweir // the width of the vertical and the height of the horizontal scroll 137*cdf0e10cSrcweir // bar. 138*cdf0e10cSrcweir int nScrollBarSize = 139*cdf0e10cSrcweir GetParentWindow()->GetSettings().GetStyleSettings().GetScrollBarSize(); 140*cdf0e10cSrcweir maScrBarWH = Size (nScrollBarSize, nScrollBarSize); 141*cdf0e10cSrcweir 142*cdf0e10cSrcweir Point aHPos = maViewPos; 143*cdf0e10cSrcweir aHPos.Y() += maViewSize.Height(); 144*cdf0e10cSrcweir 145*cdf0e10cSrcweir 146*cdf0e10cSrcweir ViewShell::ArrangeGUIElements (); 147*cdf0e10cSrcweir 148*cdf0e10cSrcweir maTabControl.Hide(); 149*cdf0e10cSrcweir 150*cdf0e10cSrcweir OSL_ASSERT (GetViewShell()!=NULL); 151*cdf0e10cSrcweir Client* pIPClient = static_cast<Client*>(GetViewShell()->GetIPClient()); 152*cdf0e10cSrcweir sal_Bool bClientActive = sal_False; 153*cdf0e10cSrcweir if ( pIPClient && pIPClient->IsObjectInPlaceActive() ) 154*cdf0e10cSrcweir bClientActive = sal_True; 155*cdf0e10cSrcweir 156*cdf0e10cSrcweir sal_Bool bInPlaceActive = GetViewFrame()->GetFrame().IsInPlace(); 157*cdf0e10cSrcweir 158*cdf0e10cSrcweir if ( mbZoomOnPage && !bInPlaceActive && !bClientActive ) 159*cdf0e10cSrcweir { 160*cdf0e10cSrcweir // bei Split immer erstes Fenster resizen 161*cdf0e10cSrcweir //af pWindow = mpContentWindow.get(); 162*cdf0e10cSrcweir SfxRequest aReq(SID_SIZE_PAGE, 0, GetDoc()->GetItemPool()); 163*cdf0e10cSrcweir ExecuteSlot( aReq ); 164*cdf0e10cSrcweir } 165*cdf0e10cSrcweir } 166*cdf0e10cSrcweir 167*cdf0e10cSrcweir /************************************************************************* 168*cdf0e10cSrcweir |* 169*cdf0e10cSrcweir |* Daten der FrameView auf die aktuelle View uebertragen 170*cdf0e10cSrcweir |* 171*cdf0e10cSrcweir \************************************************************************/ 172*cdf0e10cSrcweir 173*cdf0e10cSrcweir void DrawViewShell::ReadFrameViewData(FrameView* pView) 174*cdf0e10cSrcweir { 175*cdf0e10cSrcweir ModifyGuard aGuard( GetDoc() ); 176*cdf0e10cSrcweir 177*cdf0e10cSrcweir // Diese Option wird am Model eingestellt 178*cdf0e10cSrcweir GetDoc()->SetPickThroughTransparentTextFrames( 179*cdf0e10cSrcweir SD_MOD()->GetSdOptions(GetDoc()->GetDocumentType())->IsPickThrough()); 180*cdf0e10cSrcweir 181*cdf0e10cSrcweir // Initialisierungen der Zeichen-(Bildschirm-)Attribute 182*cdf0e10cSrcweir if (HasRuler() != pView->HasRuler()) 183*cdf0e10cSrcweir SetRuler( pView->HasRuler() ); 184*cdf0e10cSrcweir 185*cdf0e10cSrcweir if (mpDrawView->GetGridCoarse() != pView->GetGridCoarse()) 186*cdf0e10cSrcweir mpDrawView->SetGridCoarse( pView->GetGridCoarse() ); 187*cdf0e10cSrcweir 188*cdf0e10cSrcweir if (mpDrawView->GetGridFine() != pView->GetGridFine()) 189*cdf0e10cSrcweir mpDrawView->SetGridFine( pView->GetGridFine() ); 190*cdf0e10cSrcweir 191*cdf0e10cSrcweir if (mpDrawView->GetSnapGridWidthX() != pView->GetSnapGridWidthX() || mpDrawView->GetSnapGridWidthY() != pView->GetSnapGridWidthY()) 192*cdf0e10cSrcweir mpDrawView->SetSnapGridWidth(pView->GetSnapGridWidthX(), pView->GetSnapGridWidthY()); 193*cdf0e10cSrcweir 194*cdf0e10cSrcweir if (mpDrawView->IsGridVisible() != pView->IsGridVisible()) 195*cdf0e10cSrcweir mpDrawView->SetGridVisible( pView->IsGridVisible() ); 196*cdf0e10cSrcweir 197*cdf0e10cSrcweir if (mpDrawView->IsGridFront() != pView->IsGridFront()) 198*cdf0e10cSrcweir mpDrawView->SetGridFront( pView->IsGridFront() ); 199*cdf0e10cSrcweir 200*cdf0e10cSrcweir if (mpDrawView->GetSnapAngle() != pView->GetSnapAngle()) 201*cdf0e10cSrcweir mpDrawView->SetSnapAngle( pView->GetSnapAngle() ); 202*cdf0e10cSrcweir 203*cdf0e10cSrcweir if (mpDrawView->IsGridSnap() != pView->IsGridSnap() ) 204*cdf0e10cSrcweir mpDrawView->SetGridSnap( pView->IsGridSnap() ); 205*cdf0e10cSrcweir 206*cdf0e10cSrcweir if (mpDrawView->IsBordSnap() != pView->IsBordSnap() ) 207*cdf0e10cSrcweir mpDrawView->SetBordSnap( pView->IsBordSnap() ); 208*cdf0e10cSrcweir 209*cdf0e10cSrcweir if (mpDrawView->IsHlplSnap() != pView->IsHlplSnap() ) 210*cdf0e10cSrcweir mpDrawView->SetHlplSnap( pView->IsHlplSnap() ); 211*cdf0e10cSrcweir 212*cdf0e10cSrcweir if (mpDrawView->IsOFrmSnap() != pView->IsOFrmSnap() ) 213*cdf0e10cSrcweir mpDrawView->SetOFrmSnap( pView->IsOFrmSnap() ); 214*cdf0e10cSrcweir 215*cdf0e10cSrcweir if (mpDrawView->IsOPntSnap() != pView->IsOPntSnap() ) 216*cdf0e10cSrcweir mpDrawView->SetOPntSnap( pView->IsOPntSnap() ); 217*cdf0e10cSrcweir 218*cdf0e10cSrcweir if (mpDrawView->IsOConSnap() != pView->IsOConSnap() ) 219*cdf0e10cSrcweir mpDrawView->SetOConSnap( pView->IsOConSnap() ); 220*cdf0e10cSrcweir 221*cdf0e10cSrcweir if (mpDrawView->IsHlplVisible() != pView->IsHlplVisible() ) 222*cdf0e10cSrcweir mpDrawView->SetHlplVisible( pView->IsHlplVisible() ); 223*cdf0e10cSrcweir 224*cdf0e10cSrcweir if (mpDrawView->IsDragStripes() != pView->IsDragStripes() ) 225*cdf0e10cSrcweir mpDrawView->SetDragStripes( pView->IsDragStripes() ); 226*cdf0e10cSrcweir 227*cdf0e10cSrcweir if (mpDrawView->IsPlusHandlesAlwaysVisible() != pView->IsPlusHandlesAlwaysVisible() ) 228*cdf0e10cSrcweir mpDrawView->SetPlusHandlesAlwaysVisible( pView->IsPlusHandlesAlwaysVisible() ); 229*cdf0e10cSrcweir 230*cdf0e10cSrcweir if (mpDrawView->GetSnapMagneticPixel() != pView->GetSnapMagneticPixel() ) 231*cdf0e10cSrcweir mpDrawView->SetSnapMagneticPixel( pView->GetSnapMagneticPixel() ); 232*cdf0e10cSrcweir 233*cdf0e10cSrcweir if (mpDrawView->IsMarkedHitMovesAlways() != pView->IsMarkedHitMovesAlways() ) 234*cdf0e10cSrcweir mpDrawView->SetMarkedHitMovesAlways( pView->IsMarkedHitMovesAlways() ); 235*cdf0e10cSrcweir 236*cdf0e10cSrcweir if (mpDrawView->IsMoveOnlyDragging() != pView->IsMoveOnlyDragging() ) 237*cdf0e10cSrcweir mpDrawView->SetMoveOnlyDragging( pView->IsMoveOnlyDragging() ); 238*cdf0e10cSrcweir 239*cdf0e10cSrcweir // mpDrawView->SetSlantButShear( pView->IsSlantButShear() ); 240*cdf0e10cSrcweir 241*cdf0e10cSrcweir if (mpDrawView->IsNoDragXorPolys() != pView->IsNoDragXorPolys() ) 242*cdf0e10cSrcweir mpDrawView->SetNoDragXorPolys( pView->IsNoDragXorPolys() ); 243*cdf0e10cSrcweir 244*cdf0e10cSrcweir if (mpDrawView->IsCrookNoContortion() != pView->IsCrookNoContortion() ) 245*cdf0e10cSrcweir mpDrawView->SetCrookNoContortion( pView->IsCrookNoContortion() ); 246*cdf0e10cSrcweir 247*cdf0e10cSrcweir if (mpDrawView->IsAngleSnapEnabled() != pView->IsAngleSnapEnabled() ) 248*cdf0e10cSrcweir mpDrawView->SetAngleSnapEnabled( pView->IsAngleSnapEnabled() ); 249*cdf0e10cSrcweir 250*cdf0e10cSrcweir if (mpDrawView->IsBigOrtho() != pView->IsBigOrtho() ) 251*cdf0e10cSrcweir mpDrawView->SetBigOrtho( pView->IsBigOrtho() ); 252*cdf0e10cSrcweir 253*cdf0e10cSrcweir if (mpDrawView->IsOrtho() != pView->IsOrtho() ) 254*cdf0e10cSrcweir mpDrawView->SetOrtho( pView->IsOrtho() ); 255*cdf0e10cSrcweir 256*cdf0e10cSrcweir if (mpDrawView->GetEliminatePolyPointLimitAngle() != pView->GetEliminatePolyPointLimitAngle() ) 257*cdf0e10cSrcweir mpDrawView->SetEliminatePolyPointLimitAngle( pView->GetEliminatePolyPointLimitAngle() ); 258*cdf0e10cSrcweir 259*cdf0e10cSrcweir if (mpDrawView->IsEliminatePolyPoints() != pView->IsEliminatePolyPoints() ) 260*cdf0e10cSrcweir mpDrawView->SetEliminatePolyPoints( pView->IsEliminatePolyPoints() ); 261*cdf0e10cSrcweir 262*cdf0e10cSrcweir if (mpDrawView->IsSolidMarkHdl() != pView->IsSolidMarkHdl() ) 263*cdf0e10cSrcweir mpDrawView->SetSolidMarkHdl( pView->IsSolidMarkHdl() ); 264*cdf0e10cSrcweir 265*cdf0e10cSrcweir if (mpDrawView->IsSolidDragging() != pView->IsSolidDragging() ) 266*cdf0e10cSrcweir mpDrawView->SetSolidDragging( pView->IsSolidDragging() ); 267*cdf0e10cSrcweir 268*cdf0e10cSrcweir if (mpDrawView->IsQuickTextEditMode() != pView->IsQuickEdit()) 269*cdf0e10cSrcweir mpDrawView->SetQuickTextEditMode( pView->IsQuickEdit() ); 270*cdf0e10cSrcweir 271*cdf0e10cSrcweir // #i26631# 272*cdf0e10cSrcweir if (mpDrawView->IsMasterPagePaintCaching() != pView->IsMasterPagePaintCaching()) 273*cdf0e10cSrcweir mpDrawView->SetMasterPagePaintCaching( pView->IsMasterPagePaintCaching() ); 274*cdf0e10cSrcweir 275*cdf0e10cSrcweir // Definition: 276*cdf0e10cSrcweir // grosse Handles: 9 277*cdf0e10cSrcweir // kleine Handles: 7 278*cdf0e10cSrcweir sal_uInt16 nTmp = mpDrawView->GetMarkHdlSizePixel(); 279*cdf0e10cSrcweir //DBG_ASSERT(nTmp != 7, "HandleSize != 7 oder 9"); 280*cdf0e10cSrcweir if( nTmp == 9 && !pView->IsBigHandles() ) 281*cdf0e10cSrcweir mpDrawView->SetMarkHdlSizePixel( 7 ); 282*cdf0e10cSrcweir else if( nTmp == 7 && pView->IsBigHandles() ) 283*cdf0e10cSrcweir mpDrawView->SetMarkHdlSizePixel( 9 ); 284*cdf0e10cSrcweir 285*cdf0e10cSrcweir 286*cdf0e10cSrcweir SdrPageView* pPageView = mpDrawView->GetSdrPageView(); 287*cdf0e10cSrcweir if (pPageView) 288*cdf0e10cSrcweir { 289*cdf0e10cSrcweir if ( pPageView->GetVisibleLayers() != pView->GetVisibleLayers() ) 290*cdf0e10cSrcweir pPageView->SetVisibleLayers( pView->GetVisibleLayers() ); 291*cdf0e10cSrcweir 292*cdf0e10cSrcweir if ( pPageView->GetPrintableLayers() != pView->GetPrintableLayers() ) 293*cdf0e10cSrcweir pPageView->SetPrintableLayers( pView->GetPrintableLayers() ); 294*cdf0e10cSrcweir 295*cdf0e10cSrcweir if ( pPageView->GetLockedLayers() != pView->GetLockedLayers() ) 296*cdf0e10cSrcweir pPageView->SetLockedLayers( pView->GetLockedLayers() ); 297*cdf0e10cSrcweir 298*cdf0e10cSrcweir if (mePageKind == PK_NOTES) 299*cdf0e10cSrcweir { 300*cdf0e10cSrcweir if (pPageView->GetHelpLines() != pView->GetNotesHelpLines()) 301*cdf0e10cSrcweir pPageView->SetHelpLines( pView->GetNotesHelpLines() ); 302*cdf0e10cSrcweir } 303*cdf0e10cSrcweir else if (mePageKind == PK_HANDOUT) 304*cdf0e10cSrcweir { 305*cdf0e10cSrcweir if (pPageView->GetHelpLines() != pView->GetHandoutHelpLines()) 306*cdf0e10cSrcweir pPageView->SetHelpLines( pView->GetHandoutHelpLines() ); 307*cdf0e10cSrcweir } 308*cdf0e10cSrcweir else 309*cdf0e10cSrcweir { 310*cdf0e10cSrcweir if (pPageView->GetHelpLines() != pView->GetStandardHelpLines()) 311*cdf0e10cSrcweir pPageView->SetHelpLines( pView->GetStandardHelpLines() ); 312*cdf0e10cSrcweir } 313*cdf0e10cSrcweir } 314*cdf0e10cSrcweir 315*cdf0e10cSrcweir if ( mpDrawView->GetActiveLayer() != pView->GetActiveLayer() ) 316*cdf0e10cSrcweir mpDrawView->SetActiveLayer( pView->GetActiveLayer() ); 317*cdf0e10cSrcweir 318*cdf0e10cSrcweir sal_uInt16 nSelectedPage = 0; 319*cdf0e10cSrcweir 320*cdf0e10cSrcweir if (mePageKind != PK_HANDOUT) 321*cdf0e10cSrcweir { 322*cdf0e10cSrcweir nSelectedPage = pView->GetSelectedPage(); 323*cdf0e10cSrcweir } 324*cdf0e10cSrcweir 325*cdf0e10cSrcweir EditMode eNewEditMode = pView->GetViewShEditMode(mePageKind); 326*cdf0e10cSrcweir sal_Bool bNewLayerMode = pView->IsLayerMode(); 327*cdf0e10cSrcweir ChangeEditMode(eNewEditMode, bNewLayerMode); 328*cdf0e10cSrcweir SwitchPage(nSelectedPage); 329*cdf0e10cSrcweir 330*cdf0e10cSrcweir // DrawMode fuer 'Normales' Fenster wiederherstellen 331*cdf0e10cSrcweir if(GetActiveWindow()->GetDrawMode() != pView->GetDrawMode()) 332*cdf0e10cSrcweir GetActiveWindow()->SetDrawMode(pView->GetDrawMode()); 333*cdf0e10cSrcweir 334*cdf0e10cSrcweir if ( mpDrawView->IsDesignMode() != pView->IsDesignMode() ) 335*cdf0e10cSrcweir { 336*cdf0e10cSrcweir SfxBoolItem aDesignModeItem( SID_FM_DESIGN_MODE, pView->IsDesignMode() ); 337*cdf0e10cSrcweir GetViewFrame()->GetDispatcher()->Execute( SID_FM_DESIGN_MODE, SFX_CALLMODE_SYNCHRON | SFX_CALLMODE_RECORD, &aDesignModeItem, 0L ); 338*cdf0e10cSrcweir } 339*cdf0e10cSrcweir 340*cdf0e10cSrcweir // Muss am Ende gerufen werden, da ein WriteFrameViewData() ausgeloest wird 341*cdf0e10cSrcweir if (mpDrawView->IsFrameDragSingles() != pView->IsFrameDragSingles() ) 342*cdf0e10cSrcweir mpDrawView->SetFrameDragSingles( pView->IsFrameDragSingles() ); 343*cdf0e10cSrcweir } 344*cdf0e10cSrcweir 345*cdf0e10cSrcweir /************************************************************************* 346*cdf0e10cSrcweir |* 347*cdf0e10cSrcweir |* Daten der aktuellen View auf die FrameView uebertragen 348*cdf0e10cSrcweir |* 349*cdf0e10cSrcweir \************************************************************************/ 350*cdf0e10cSrcweir 351*cdf0e10cSrcweir void DrawViewShell::WriteFrameViewData() 352*cdf0e10cSrcweir { 353*cdf0e10cSrcweir // Zeichen-(Bildschirm-)Attribute an FrameView merken 354*cdf0e10cSrcweir mpFrameView->SetRuler( HasRuler() ); 355*cdf0e10cSrcweir mpFrameView->SetGridCoarse( mpDrawView->GetGridCoarse() ); 356*cdf0e10cSrcweir mpFrameView->SetGridFine( mpDrawView->GetGridFine() ); 357*cdf0e10cSrcweir mpFrameView->SetSnapGridWidth(mpDrawView->GetSnapGridWidthX(), mpDrawView->GetSnapGridWidthY()); 358*cdf0e10cSrcweir mpFrameView->SetGridVisible( mpDrawView->IsGridVisible() ); 359*cdf0e10cSrcweir mpFrameView->SetGridFront( mpDrawView->IsGridFront() ); 360*cdf0e10cSrcweir mpFrameView->SetSnapAngle( mpDrawView->GetSnapAngle() ); 361*cdf0e10cSrcweir mpFrameView->SetGridSnap( mpDrawView->IsGridSnap() ); 362*cdf0e10cSrcweir mpFrameView->SetBordSnap( mpDrawView->IsBordSnap() ); 363*cdf0e10cSrcweir mpFrameView->SetHlplSnap( mpDrawView->IsHlplSnap() ); 364*cdf0e10cSrcweir mpFrameView->SetOFrmSnap( mpDrawView->IsOFrmSnap() ); 365*cdf0e10cSrcweir mpFrameView->SetOPntSnap( mpDrawView->IsOPntSnap() ); 366*cdf0e10cSrcweir mpFrameView->SetOConSnap( mpDrawView->IsOConSnap() ); 367*cdf0e10cSrcweir mpFrameView->SetHlplVisible( mpDrawView->IsHlplVisible() ); 368*cdf0e10cSrcweir mpFrameView->SetDragStripes( mpDrawView->IsDragStripes() ); 369*cdf0e10cSrcweir mpFrameView->SetPlusHandlesAlwaysVisible( mpDrawView->IsPlusHandlesAlwaysVisible() ); 370*cdf0e10cSrcweir mpFrameView->SetFrameDragSingles( mpDrawView->IsFrameDragSingles() ); 371*cdf0e10cSrcweir mpFrameView->SetMarkedHitMovesAlways( mpDrawView->IsMarkedHitMovesAlways() ); 372*cdf0e10cSrcweir mpFrameView->SetMoveOnlyDragging( mpDrawView->IsMoveOnlyDragging() ); 373*cdf0e10cSrcweir mpFrameView->SetNoDragXorPolys( mpDrawView->IsNoDragXorPolys() ); 374*cdf0e10cSrcweir mpFrameView->SetCrookNoContortion( mpDrawView->IsCrookNoContortion() ); 375*cdf0e10cSrcweir mpFrameView->SetBigOrtho( mpDrawView->IsBigOrtho() ); 376*cdf0e10cSrcweir mpFrameView->SetEliminatePolyPointLimitAngle( mpDrawView->GetEliminatePolyPointLimitAngle() ); 377*cdf0e10cSrcweir mpFrameView->SetEliminatePolyPoints( mpDrawView->IsEliminatePolyPoints() ); 378*cdf0e10cSrcweir 379*cdf0e10cSrcweir mpFrameView->SetSolidMarkHdl( mpDrawView->IsSolidMarkHdl() ); 380*cdf0e10cSrcweir mpFrameView->SetSolidDragging( mpDrawView->IsSolidDragging() ); 381*cdf0e10cSrcweir mpFrameView->SetQuickEdit( mpDrawView->IsQuickTextEditMode() ); 382*cdf0e10cSrcweir 383*cdf0e10cSrcweir mpFrameView->SetDesignMode( mpDrawView->IsDesignMode() ); 384*cdf0e10cSrcweir 385*cdf0e10cSrcweir Size aVisSizePixel = GetActiveWindow()->GetOutputSizePixel(); 386*cdf0e10cSrcweir Rectangle aVisArea = GetActiveWindow()->PixelToLogic( Rectangle( Point(0,0), aVisSizePixel) ); 387*cdf0e10cSrcweir mpFrameView->SetVisArea(aVisArea); 388*cdf0e10cSrcweir 389*cdf0e10cSrcweir if( mePageKind == PK_HANDOUT ) 390*cdf0e10cSrcweir mpFrameView->SetSelectedPage(0); 391*cdf0e10cSrcweir else 392*cdf0e10cSrcweir { 393*cdf0e10cSrcweir mpFrameView->SetSelectedPage( maTabControl.GetCurPageId() - 1 ); 394*cdf0e10cSrcweir } 395*cdf0e10cSrcweir 396*cdf0e10cSrcweir mpFrameView->SetViewShEditMode(meEditMode, mePageKind); 397*cdf0e10cSrcweir mpFrameView->SetLayerMode(IsLayerModeActive()); 398*cdf0e10cSrcweir 399*cdf0e10cSrcweir SdrPageView* pPageView = mpDrawView->GetSdrPageView(); 400*cdf0e10cSrcweir 401*cdf0e10cSrcweir if (pPageView) 402*cdf0e10cSrcweir { 403*cdf0e10cSrcweir if ( mpFrameView->GetVisibleLayers() != pPageView->GetVisibleLayers() ) 404*cdf0e10cSrcweir mpFrameView->SetVisibleLayers( pPageView->GetVisibleLayers() ); 405*cdf0e10cSrcweir 406*cdf0e10cSrcweir if ( mpFrameView->GetPrintableLayers() != pPageView->GetPrintableLayers() ) 407*cdf0e10cSrcweir mpFrameView->SetPrintableLayers( pPageView->GetPrintableLayers() ); 408*cdf0e10cSrcweir 409*cdf0e10cSrcweir if ( mpFrameView->GetLockedLayers() != pPageView->GetLockedLayers() ) 410*cdf0e10cSrcweir mpFrameView->SetLockedLayers( pPageView->GetLockedLayers() ); 411*cdf0e10cSrcweir 412*cdf0e10cSrcweir if (mePageKind == PK_NOTES) 413*cdf0e10cSrcweir { 414*cdf0e10cSrcweir mpFrameView->SetNotesHelpLines( pPageView->GetHelpLines() ); 415*cdf0e10cSrcweir } 416*cdf0e10cSrcweir else if (mePageKind == PK_HANDOUT) 417*cdf0e10cSrcweir { 418*cdf0e10cSrcweir mpFrameView->SetHandoutHelpLines( pPageView->GetHelpLines() ); 419*cdf0e10cSrcweir } 420*cdf0e10cSrcweir else 421*cdf0e10cSrcweir { 422*cdf0e10cSrcweir mpFrameView->SetStandardHelpLines( pPageView->GetHelpLines() ); 423*cdf0e10cSrcweir } 424*cdf0e10cSrcweir } 425*cdf0e10cSrcweir 426*cdf0e10cSrcweir if ( mpFrameView->GetActiveLayer() != mpDrawView->GetActiveLayer() ) 427*cdf0e10cSrcweir mpFrameView->SetActiveLayer( mpDrawView->GetActiveLayer() ); 428*cdf0e10cSrcweir 429*cdf0e10cSrcweir // DrawMode fuer 'Normales' Fenster merken 430*cdf0e10cSrcweir if(mpFrameView->GetDrawMode() != GetActiveWindow()->GetDrawMode()) 431*cdf0e10cSrcweir mpFrameView->SetDrawMode(GetActiveWindow()->GetDrawMode()); 432*cdf0e10cSrcweir } 433*cdf0e10cSrcweir 434*cdf0e10cSrcweir 435*cdf0e10cSrcweir 436*cdf0e10cSrcweir /************************************************************************* 437*cdf0e10cSrcweir |* 438*cdf0e10cSrcweir |* PrePaint-Method 439*cdf0e10cSrcweir |* 440*cdf0e10cSrcweir \************************************************************************/ 441*cdf0e10cSrcweir 442*cdf0e10cSrcweir void DrawViewShell::PrePaint() 443*cdf0e10cSrcweir { 444*cdf0e10cSrcweir mpDrawView->PrePaint(); 445*cdf0e10cSrcweir } 446*cdf0e10cSrcweir 447*cdf0e10cSrcweir /************************************************************************* 448*cdf0e10cSrcweir |* 449*cdf0e10cSrcweir |* Paint-Methode: das Ereignis wird vom Fenster pWin an 450*cdf0e10cSrcweir |* die Viewshell und die aktuelle Funktion weitergeleitet 451*cdf0e10cSrcweir |* 452*cdf0e10cSrcweir |* Anmerkung: pWin==NULL, wenn Paint() vom ShowWindow gerufen wird! 453*cdf0e10cSrcweir |* 454*cdf0e10cSrcweir \************************************************************************/ 455*cdf0e10cSrcweir 456*cdf0e10cSrcweir void DrawViewShell::Paint(const Rectangle& rRect, ::sd::Window* pWin) 457*cdf0e10cSrcweir { 458*cdf0e10cSrcweir // #103834# Fill var FillColor here to have it available on later call 459*cdf0e10cSrcweir svtools::ColorConfig aColorConfig; 460*cdf0e10cSrcweir Color aFillColor; 461*cdf0e10cSrcweir 462*cdf0e10cSrcweir if(DOCUMENT_TYPE_IMPRESS == GetDoc()->GetDocumentType()) 463*cdf0e10cSrcweir { 464*cdf0e10cSrcweir aFillColor = Color( aColorConfig.GetColorValue( svtools::APPBACKGROUND ).nColor ); 465*cdf0e10cSrcweir } 466*cdf0e10cSrcweir else 467*cdf0e10cSrcweir { 468*cdf0e10cSrcweir aFillColor = Color( aColorConfig.GetColorValue( svtools::DOCCOLOR ).nColor ); 469*cdf0e10cSrcweir } 470*cdf0e10cSrcweir 471*cdf0e10cSrcweir /* #97517# This is done before each text edit, so why not do it before every paint. 472*cdf0e10cSrcweir The default language is only used if the outliner only contains one 473*cdf0e10cSrcweir character in a symbol font */ 474*cdf0e10cSrcweir GetDoc()->GetDrawOutliner( NULL ).SetDefaultLanguage( GetDoc()->GetLanguage( EE_CHAR_LANGUAGE ) ); 475*cdf0e10cSrcweir 476*cdf0e10cSrcweir // #103834# Set Application Background color for usage in SdrPaintView(s) 477*cdf0e10cSrcweir mpDrawView->SetApplicationBackgroundColor(aFillColor); 478*cdf0e10cSrcweir 479*cdf0e10cSrcweir /* #97517# This is done before each text edit, so why not do it before every paint. 480*cdf0e10cSrcweir The default language is only used if the outliner only contains one 481*cdf0e10cSrcweir character in a symbol font */ 482*cdf0e10cSrcweir GetDoc()->GetDrawOutliner( NULL ).SetDefaultLanguage( Application::GetSettings().GetLanguage() ); 483*cdf0e10cSrcweir 484*cdf0e10cSrcweir mpDrawView->CompleteRedraw( pWin, Region( rRect ) ); 485*cdf0e10cSrcweir 486*cdf0e10cSrcweir if( pWin ) 487*cdf0e10cSrcweir { 488*cdf0e10cSrcweir if( GetDocSh()->GetDocShellFunction().is() ) 489*cdf0e10cSrcweir GetDocSh()->GetDocShellFunction()->Paint( rRect, pWin ); 490*cdf0e10cSrcweir 491*cdf0e10cSrcweir if( HasCurrentFunction() ) 492*cdf0e10cSrcweir GetCurrentFunction()->Paint( rRect, pWin ); 493*cdf0e10cSrcweir } 494*cdf0e10cSrcweir } 495*cdf0e10cSrcweir 496*cdf0e10cSrcweir /************************************************************************* 497*cdf0e10cSrcweir |* 498*cdf0e10cSrcweir |* Zoom-Faktor fuer InPlace einstellen 499*cdf0e10cSrcweir |* 500*cdf0e10cSrcweir \************************************************************************/ 501*cdf0e10cSrcweir 502*cdf0e10cSrcweir void DrawViewShell::SetZoomFactor(const Fraction& rZoomX, const Fraction& rZoomY) 503*cdf0e10cSrcweir { 504*cdf0e10cSrcweir ViewShell::SetZoomFactor(rZoomX, rZoomY); 505*cdf0e10cSrcweir mbZoomOnPage = sal_False; 506*cdf0e10cSrcweir Point aOrigin = GetActiveWindow()->GetViewOrigin(); 507*cdf0e10cSrcweir GetActiveWindow()->SetWinViewPos(aOrigin); 508*cdf0e10cSrcweir } 509*cdf0e10cSrcweir 510*cdf0e10cSrcweir /************************************************************************* 511*cdf0e10cSrcweir |* 512*cdf0e10cSrcweir |* Optimale Groesse zurueckgeben 513*cdf0e10cSrcweir |* 514*cdf0e10cSrcweir \************************************************************************/ 515*cdf0e10cSrcweir 516*cdf0e10cSrcweir Size DrawViewShell::GetOptimalSizePixel() const 517*cdf0e10cSrcweir { 518*cdf0e10cSrcweir Size aSize; 519*cdf0e10cSrcweir 520*cdf0e10cSrcweir SdrPageView* pPV = mpDrawView->GetSdrPageView(); 521*cdf0e10cSrcweir if (pPV) 522*cdf0e10cSrcweir { 523*cdf0e10cSrcweir SdPage* pPage = (SdPage*) pPV->GetPage(); 524*cdf0e10cSrcweir 525*cdf0e10cSrcweir if (pPage) 526*cdf0e10cSrcweir { 527*cdf0e10cSrcweir if (!mbZoomOnPage) 528*cdf0e10cSrcweir { 529*cdf0e10cSrcweir // Gegenwaertigen MapMode beruecksichtigen 530*cdf0e10cSrcweir aSize = GetActiveWindow()->LogicToPixel( pPage->GetSize() ); 531*cdf0e10cSrcweir } 532*cdf0e10cSrcweir else 533*cdf0e10cSrcweir { 534*cdf0e10cSrcweir // 1:1 Darstellung 535*cdf0e10cSrcweir MapMode aMapMode(MAP_100TH_MM); 536*cdf0e10cSrcweir aSize = GetActiveWindow()->LogicToPixel( pPage->GetSize(), aMapMode ); 537*cdf0e10cSrcweir const_cast< DrawViewShell* >(this)->mbZoomOnPage = sal_True; 538*cdf0e10cSrcweir } 539*cdf0e10cSrcweir } 540*cdf0e10cSrcweir } 541*cdf0e10cSrcweir 542*cdf0e10cSrcweir return(aSize); 543*cdf0e10cSrcweir } 544*cdf0e10cSrcweir 545*cdf0e10cSrcweir 546*cdf0e10cSrcweir /************************************************************************* 547*cdf0e10cSrcweir |* 548*cdf0e10cSrcweir |* Seite wird gehided 549*cdf0e10cSrcweir |* 550*cdf0e10cSrcweir \************************************************************************/ 551*cdf0e10cSrcweir 552*cdf0e10cSrcweir void DrawViewShell::HidePage() 553*cdf0e10cSrcweir { 554*cdf0e10cSrcweir FmFormShell* pFormShell = GetViewShellBase().GetFormShellManager()->GetFormShell(); 555*cdf0e10cSrcweir if (pFormShell != NULL) 556*cdf0e10cSrcweir pFormShell->PrepareClose (sal_False); 557*cdf0e10cSrcweir } 558*cdf0e10cSrcweir 559*cdf0e10cSrcweir 560*cdf0e10cSrcweir 561*cdf0e10cSrcweir void DrawViewShell::WriteUserDataSequence ( ::com::sun::star::uno::Sequence < ::com::sun::star::beans::PropertyValue >& rSequence, sal_Bool bBrowse ) 562*cdf0e10cSrcweir { 563*cdf0e10cSrcweir WriteFrameViewData(); 564*cdf0e10cSrcweir 565*cdf0e10cSrcweir ViewShell::WriteUserDataSequence( rSequence, bBrowse ); 566*cdf0e10cSrcweir 567*cdf0e10cSrcweir const sal_Int32 nIndex = rSequence.getLength(); 568*cdf0e10cSrcweir rSequence.realloc( nIndex + 1 ); 569*cdf0e10cSrcweir rSequence[nIndex].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( sUNO_View_ZoomOnPage ) ); 570*cdf0e10cSrcweir rSequence[nIndex].Value <<= (sal_Bool)mbZoomOnPage; 571*cdf0e10cSrcweir } 572*cdf0e10cSrcweir 573*cdf0e10cSrcweir void DrawViewShell::ReadUserDataSequence ( const ::com::sun::star::uno::Sequence < ::com::sun::star::beans::PropertyValue >& rSequence, sal_Bool bBrowse ) 574*cdf0e10cSrcweir { 575*cdf0e10cSrcweir WriteFrameViewData(); 576*cdf0e10cSrcweir 577*cdf0e10cSrcweir ViewShell::ReadUserDataSequence( rSequence, bBrowse ); 578*cdf0e10cSrcweir 579*cdf0e10cSrcweir const sal_Int32 nLength = rSequence.getLength(); 580*cdf0e10cSrcweir const com::sun::star::beans::PropertyValue *pValue = rSequence.getConstArray(); 581*cdf0e10cSrcweir for (sal_Int16 i = 0 ; i < nLength; i++, pValue++ ) 582*cdf0e10cSrcweir { 583*cdf0e10cSrcweir if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_ZoomOnPage ) ) ) 584*cdf0e10cSrcweir { 585*cdf0e10cSrcweir sal_Bool bZoomPage = sal_False; 586*cdf0e10cSrcweir if( pValue->Value >>= bZoomPage ) 587*cdf0e10cSrcweir { 588*cdf0e10cSrcweir mbZoomOnPage = bZoomPage; 589*cdf0e10cSrcweir } 590*cdf0e10cSrcweir } 591*cdf0e10cSrcweir } 592*cdf0e10cSrcweir 593*cdf0e10cSrcweir if( mpFrameView->GetPageKind() != mePageKind ) 594*cdf0e10cSrcweir { 595*cdf0e10cSrcweir mePageKind = mpFrameView->GetPageKind(); 596*cdf0e10cSrcweir 597*cdf0e10cSrcweir if (mePageKind == PK_NOTES) 598*cdf0e10cSrcweir { 599*cdf0e10cSrcweir SetHelpId( SID_NOTESMODE ); 600*cdf0e10cSrcweir GetActiveWindow()->SetHelpId( CMD_SID_NOTESMODE ); 601*cdf0e10cSrcweir GetActiveWindow()->SetUniqueId( CMD_SID_NOTESMODE ); 602*cdf0e10cSrcweir } 603*cdf0e10cSrcweir else if (mePageKind == PK_HANDOUT) 604*cdf0e10cSrcweir { 605*cdf0e10cSrcweir SetHelpId( SID_HANDOUTMODE ); 606*cdf0e10cSrcweir GetActiveWindow()->SetHelpId( CMD_SID_HANDOUTMODE ); 607*cdf0e10cSrcweir GetActiveWindow()->SetUniqueId( CMD_SID_HANDOUTMODE ); 608*cdf0e10cSrcweir } 609*cdf0e10cSrcweir else 610*cdf0e10cSrcweir { 611*cdf0e10cSrcweir SetHelpId( SD_IF_SDDRAWVIEWSHELL ); 612*cdf0e10cSrcweir GetActiveWindow()->SetHelpId( HID_SDDRAWVIEWSHELL ); 613*cdf0e10cSrcweir GetActiveWindow()->SetUniqueId( HID_SDDRAWVIEWSHELL ); 614*cdf0e10cSrcweir } 615*cdf0e10cSrcweir } 616*cdf0e10cSrcweir 617*cdf0e10cSrcweir ReadFrameViewData( mpFrameView ); 618*cdf0e10cSrcweir 619*cdf0e10cSrcweir if( !mbZoomOnPage ) 620*cdf0e10cSrcweir { 621*cdf0e10cSrcweir const Rectangle aVisArea( mpFrameView->GetVisArea() ); 622*cdf0e10cSrcweir 623*cdf0e10cSrcweir if ( GetDocSh()->GetCreateMode() == SFX_CREATE_MODE_EMBEDDED ) 624*cdf0e10cSrcweir { 625*cdf0e10cSrcweir GetDocSh()->SetVisArea(aVisArea); 626*cdf0e10cSrcweir } 627*cdf0e10cSrcweir 628*cdf0e10cSrcweir VisAreaChanged(aVisArea); 629*cdf0e10cSrcweir 630*cdf0e10cSrcweir ::sd::View* pView = GetView(); 631*cdf0e10cSrcweir 632*cdf0e10cSrcweir if (pView) 633*cdf0e10cSrcweir { 634*cdf0e10cSrcweir pView->VisAreaChanged(GetActiveWindow()); 635*cdf0e10cSrcweir } 636*cdf0e10cSrcweir 637*cdf0e10cSrcweir SetZoomRect(aVisArea); 638*cdf0e10cSrcweir } 639*cdf0e10cSrcweir 640*cdf0e10cSrcweir ChangeEditMode (meEditMode, ! IsLayerModeActive()); 641*cdf0e10cSrcweir ChangeEditMode (meEditMode, ! IsLayerModeActive()); 642*cdf0e10cSrcweir } 643*cdf0e10cSrcweir 644*cdf0e10cSrcweir void DrawViewShell::VisAreaChanged(const Rectangle& rRect) 645*cdf0e10cSrcweir { 646*cdf0e10cSrcweir ViewShell::VisAreaChanged( rRect ); 647*cdf0e10cSrcweir 648*cdf0e10cSrcweir DrawController& rController = GetViewShellBase().GetDrawController(); 649*cdf0e10cSrcweir rController.FireVisAreaChanged (rRect); 650*cdf0e10cSrcweir } 651*cdf0e10cSrcweir 652*cdf0e10cSrcweir 653*cdf0e10cSrcweir 654*cdf0e10cSrcweir 655*cdf0e10cSrcweir /** If there is a valid controller then create a new instance of 656*cdf0e10cSrcweir <type>AccessibleDrawDocumentView</type>. Otherwise delegate this call 657*cdf0e10cSrcweir to the base class to return a default object (probably an empty 658*cdf0e10cSrcweir reference). 659*cdf0e10cSrcweir */ 660*cdf0e10cSrcweir ::com::sun::star::uno::Reference< 661*cdf0e10cSrcweir ::com::sun::star::accessibility::XAccessible> 662*cdf0e10cSrcweir DrawViewShell::CreateAccessibleDocumentView (::sd::Window* pWindow) 663*cdf0e10cSrcweir { 664*cdf0e10cSrcweir if (GetViewShellBase().GetController() != NULL) 665*cdf0e10cSrcweir { 666*cdf0e10cSrcweir accessibility::AccessibleDrawDocumentView* pDocumentView = 667*cdf0e10cSrcweir new accessibility::AccessibleDrawDocumentView ( 668*cdf0e10cSrcweir pWindow, 669*cdf0e10cSrcweir this, 670*cdf0e10cSrcweir GetViewShellBase().GetController(), 671*cdf0e10cSrcweir pWindow->GetAccessibleParentWindow()->GetAccessible()); 672*cdf0e10cSrcweir pDocumentView->Init(); 673*cdf0e10cSrcweir return ::com::sun::star::uno::Reference< 674*cdf0e10cSrcweir ::com::sun::star::accessibility::XAccessible> 675*cdf0e10cSrcweir (static_cast< ::com::sun::star::uno::XWeak*>(pDocumentView), 676*cdf0e10cSrcweir ::com::sun::star::uno::UNO_QUERY); 677*cdf0e10cSrcweir } 678*cdf0e10cSrcweir else 679*cdf0e10cSrcweir { 680*cdf0e10cSrcweir OSL_TRACE ("DrawViewShell::CreateAccessibleDocumentView: no controller"); 681*cdf0e10cSrcweir return ViewShell::CreateAccessibleDocumentView (pWindow); 682*cdf0e10cSrcweir } 683*cdf0e10cSrcweir } 684*cdf0e10cSrcweir 685*cdf0e10cSrcweir 686*cdf0e10cSrcweir 687*cdf0e10cSrcweir 688*cdf0e10cSrcweir int DrawViewShell::GetActiveTabLayerIndex (void) const 689*cdf0e10cSrcweir { 690*cdf0e10cSrcweir const LayerTabBar* pBar 691*cdf0e10cSrcweir = const_cast<DrawViewShell*>(this)->GetLayerTabControl (); 692*cdf0e10cSrcweir if (pBar != NULL) 693*cdf0e10cSrcweir return pBar->GetPagePos (pBar->GetCurPageId()); 694*cdf0e10cSrcweir else 695*cdf0e10cSrcweir return -1; 696*cdf0e10cSrcweir } 697*cdf0e10cSrcweir 698*cdf0e10cSrcweir 699*cdf0e10cSrcweir 700*cdf0e10cSrcweir 701*cdf0e10cSrcweir void DrawViewShell::SetActiveTabLayerIndex (int nIndex) 702*cdf0e10cSrcweir { 703*cdf0e10cSrcweir LayerTabBar* pBar = GetLayerTabControl (); 704*cdf0e10cSrcweir if (pBar != NULL) 705*cdf0e10cSrcweir { 706*cdf0e10cSrcweir // Ignore invalid indices silently. 707*cdf0e10cSrcweir if (nIndex>=0 && nIndex<pBar->GetPageCount()) 708*cdf0e10cSrcweir { 709*cdf0e10cSrcweir // Tell the draw view and the tab control of the new active layer. 710*cdf0e10cSrcweir mpDrawView->SetActiveLayer (pBar->GetPageText (pBar->GetPageId ((sal_uInt16)nIndex))); 711*cdf0e10cSrcweir pBar->SetCurPageId (pBar->GetPageId ((sal_uInt16)nIndex)); 712*cdf0e10cSrcweir } 713*cdf0e10cSrcweir } 714*cdf0e10cSrcweir } 715*cdf0e10cSrcweir 716*cdf0e10cSrcweir 717*cdf0e10cSrcweir 718*cdf0e10cSrcweir 719*cdf0e10cSrcweir TabControl* DrawViewShell::GetPageTabControl (void) 720*cdf0e10cSrcweir { 721*cdf0e10cSrcweir return &maTabControl; 722*cdf0e10cSrcweir } 723*cdf0e10cSrcweir 724*cdf0e10cSrcweir 725*cdf0e10cSrcweir 726*cdf0e10cSrcweir 727*cdf0e10cSrcweir LayerTabBar* DrawViewShell::GetLayerTabControl (void) 728*cdf0e10cSrcweir { 729*cdf0e10cSrcweir return mpLayerTabBar.get(); 730*cdf0e10cSrcweir } 731*cdf0e10cSrcweir 732*cdf0e10cSrcweir 733*cdf0e10cSrcweir 734*cdf0e10cSrcweir 735*cdf0e10cSrcweir int DrawViewShell::GetTabLayerCount (void) const 736*cdf0e10cSrcweir { 737*cdf0e10cSrcweir const LayerTabBar* pBar 738*cdf0e10cSrcweir = const_cast<DrawViewShell*>(this)->GetLayerTabControl (); 739*cdf0e10cSrcweir if (pBar != NULL) 740*cdf0e10cSrcweir return pBar->GetPageCount(); 741*cdf0e10cSrcweir else 742*cdf0e10cSrcweir return 0; 743*cdf0e10cSrcweir } 744*cdf0e10cSrcweir 745*cdf0e10cSrcweir 746*cdf0e10cSrcweir } // end of namespace sd 747