diff options
Diffstat (limited to 'sd/source/ui/view/drviews5.cxx')
-rw-r--r-- | sd/source/ui/view/drviews5.cxx | 742 |
1 files changed, 0 insertions, 742 deletions
diff --git a/sd/source/ui/view/drviews5.cxx b/sd/source/ui/view/drviews5.cxx deleted file mode 100644 index 5c73e80c0..000000000 --- a/sd/source/ui/view/drviews5.cxx +++ /dev/null @@ -1,742 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_sd.hxx" - -#include "DrawViewShell.hxx" -#include "PresentationViewShell.hxx" -#include <editeng/outliner.hxx> -#include <svx/svxids.hrc> -#include <sfx2/request.hxx> -#include <sfx2/dispatch.hxx> -#include <svx/svdpagv.hxx> -#include <vcl/scrbar.hxx> -#include <tools/poly.hxx> -#include <svx/fmshell.hxx> -#include <editeng/eeitem.hxx> -#include <svtools/colorcfg.hxx> -#include "AccessibleDrawDocumentView.hxx" - -#include <sfx2/viewfrm.hxx> -#include "LayerTabBar.hxx" - -#include "strings.hrc" -#include "res_bmp.hrc" -#include "glob.hrc" -#include "app.hrc" -#include "helpids.h" -#include "optsitem.hxx" -#include "app.hxx" -#include "FrameView.hxx" -#include "sdattr.hxx" -#include "futext.hxx" -#include "sdpage.hxx" -#include "stlpool.hxx" -#include "prntopts.hxx" -#include "sdresid.hxx" -#include "Window.hxx" -#include "drawview.hxx" -#include "drawdoc.hxx" -#include "DrawDocShell.hxx" -#include "Outliner.hxx" -#include "Client.hxx" -#include "slideshow.hxx" -#include "unokywds.hxx" -#include "SdUnoDrawView.hxx" -#include "ViewShellBase.hxx" -#include "FormShellManager.hxx" -#include "LayerDialogContent.hxx" -#include "DrawController.hxx" - -namespace sd { - -static const int TABCONTROL_INITIAL_SIZE = 350; -static const int PAPER_SHADOW_EXT_PIXEL = 2; - - -/************************************************************************* -|* -|* Wird gerufen, wenn sich das Model aendert -|* -\************************************************************************/ - -void DrawViewShell::ModelHasChanged() -{ - Invalidate(); - // Damit der Navigator auch einen aktuellen Status bekommt - GetViewFrame()->GetBindings().Invalidate( SID_NAVIGATOR_STATE, sal_True, sal_False ); - - SfxBoolItem aItem( SID_3D_STATE, sal_True ); - GetViewFrame()->GetDispatcher()->Execute( - SID_3D_STATE, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD, &aItem, 0L ); - - // jetzt den von der Drawing Engine neu erzeugten TextEditOutliner - // initialisieren - ::Outliner* pOutliner = mpDrawView->GetTextEditOutliner(); - if (pOutliner) - { - SfxStyleSheetPool* pSPool = (SfxStyleSheetPool*) GetDocSh()->GetStyleSheetPool(); - pOutliner->SetStyleSheetPool(pSPool); - } -} - - - - -void DrawViewShell::Resize (void) -{ - ViewShell::Resize(); - - if ( GetDocSh()->GetCreateMode() == SFX_CREATE_MODE_EMBEDDED ) - { - SetZoomRect( GetDocSh()->GetVisArea(ASPECT_CONTENT) ); - } - - rtl::Reference< sd::SlideShow > xSlideshow( SlideShow::GetSlideShow( GetViewShellBase() ) ); - if( xSlideshow.is() && xSlideshow->isRunning() && !xSlideshow->isFullScreen() ) - { - xSlideshow->resize(maViewSize); - } -} - - - - -void DrawViewShell::ArrangeGUIElements (void) -{ - // Retrieve the current size (thickness) of the scroll bars. That is - // the width of the vertical and the height of the horizontal scroll - // bar. - int nScrollBarSize = - GetParentWindow()->GetSettings().GetStyleSettings().GetScrollBarSize(); - maScrBarWH = Size (nScrollBarSize, nScrollBarSize); - - Point aHPos = maViewPos; - aHPos.Y() += maViewSize.Height(); - - - ViewShell::ArrangeGUIElements (); - - maTabControl.Hide(); - - OSL_ASSERT (GetViewShell()!=NULL); - Client* pIPClient = static_cast<Client*>(GetViewShell()->GetIPClient()); - sal_Bool bClientActive = sal_False; - if ( pIPClient && pIPClient->IsObjectInPlaceActive() ) - bClientActive = sal_True; - - sal_Bool bInPlaceActive = GetViewFrame()->GetFrame().IsInPlace(); - - if ( mbZoomOnPage && !bInPlaceActive && !bClientActive ) - { - // bei Split immer erstes Fenster resizen - //af pWindow = mpContentWindow.get(); - SfxRequest aReq(SID_SIZE_PAGE, 0, GetDoc()->GetItemPool()); - ExecuteSlot( aReq ); - } -} - -/************************************************************************* -|* -|* Daten der FrameView auf die aktuelle View uebertragen -|* -\************************************************************************/ - -void DrawViewShell::ReadFrameViewData(FrameView* pView) -{ - ModifyGuard aGuard( GetDoc() ); - - // Diese Option wird am Model eingestellt - GetDoc()->SetPickThroughTransparentTextFrames( - SD_MOD()->GetSdOptions(GetDoc()->GetDocumentType())->IsPickThrough()); - - // Initialisierungen der Zeichen-(Bildschirm-)Attribute - if (HasRuler() != pView->HasRuler()) - SetRuler( pView->HasRuler() ); - - if (mpDrawView->GetGridCoarse() != pView->GetGridCoarse()) - mpDrawView->SetGridCoarse( pView->GetGridCoarse() ); - - if (mpDrawView->GetGridFine() != pView->GetGridFine()) - mpDrawView->SetGridFine( pView->GetGridFine() ); - - if (mpDrawView->GetSnapGridWidthX() != pView->GetSnapGridWidthX() || mpDrawView->GetSnapGridWidthY() != pView->GetSnapGridWidthY()) - mpDrawView->SetSnapGridWidth(pView->GetSnapGridWidthX(), pView->GetSnapGridWidthY()); - - if (mpDrawView->IsGridVisible() != pView->IsGridVisible()) - mpDrawView->SetGridVisible( pView->IsGridVisible() ); - - if (mpDrawView->IsGridFront() != pView->IsGridFront()) - mpDrawView->SetGridFront( pView->IsGridFront() ); - - if (mpDrawView->GetSnapAngle() != pView->GetSnapAngle()) - mpDrawView->SetSnapAngle( pView->GetSnapAngle() ); - - if (mpDrawView->IsGridSnap() != pView->IsGridSnap() ) - mpDrawView->SetGridSnap( pView->IsGridSnap() ); - - if (mpDrawView->IsBordSnap() != pView->IsBordSnap() ) - mpDrawView->SetBordSnap( pView->IsBordSnap() ); - - if (mpDrawView->IsHlplSnap() != pView->IsHlplSnap() ) - mpDrawView->SetHlplSnap( pView->IsHlplSnap() ); - - if (mpDrawView->IsOFrmSnap() != pView->IsOFrmSnap() ) - mpDrawView->SetOFrmSnap( pView->IsOFrmSnap() ); - - if (mpDrawView->IsOPntSnap() != pView->IsOPntSnap() ) - mpDrawView->SetOPntSnap( pView->IsOPntSnap() ); - - if (mpDrawView->IsOConSnap() != pView->IsOConSnap() ) - mpDrawView->SetOConSnap( pView->IsOConSnap() ); - - if (mpDrawView->IsHlplVisible() != pView->IsHlplVisible() ) - mpDrawView->SetHlplVisible( pView->IsHlplVisible() ); - - if (mpDrawView->IsDragStripes() != pView->IsDragStripes() ) - mpDrawView->SetDragStripes( pView->IsDragStripes() ); - - if (mpDrawView->IsPlusHandlesAlwaysVisible() != pView->IsPlusHandlesAlwaysVisible() ) - mpDrawView->SetPlusHandlesAlwaysVisible( pView->IsPlusHandlesAlwaysVisible() ); - - if (mpDrawView->GetSnapMagneticPixel() != pView->GetSnapMagneticPixel() ) - mpDrawView->SetSnapMagneticPixel( pView->GetSnapMagneticPixel() ); - - if (mpDrawView->IsMarkedHitMovesAlways() != pView->IsMarkedHitMovesAlways() ) - mpDrawView->SetMarkedHitMovesAlways( pView->IsMarkedHitMovesAlways() ); - - if (mpDrawView->IsMoveOnlyDragging() != pView->IsMoveOnlyDragging() ) - mpDrawView->SetMoveOnlyDragging( pView->IsMoveOnlyDragging() ); - - if (mpDrawView->IsNoDragXorPolys() != pView->IsNoDragXorPolys() ) - mpDrawView->SetNoDragXorPolys( pView->IsNoDragXorPolys() ); - - if (mpDrawView->IsCrookNoContortion() != pView->IsCrookNoContortion() ) - mpDrawView->SetCrookNoContortion( pView->IsCrookNoContortion() ); - - if (mpDrawView->IsAngleSnapEnabled() != pView->IsAngleSnapEnabled() ) - mpDrawView->SetAngleSnapEnabled( pView->IsAngleSnapEnabled() ); - - if (mpDrawView->IsBigOrtho() != pView->IsBigOrtho() ) - mpDrawView->SetBigOrtho( pView->IsBigOrtho() ); - - if (mpDrawView->IsOrtho() != pView->IsOrtho() ) - mpDrawView->SetOrtho( pView->IsOrtho() ); - - if (mpDrawView->GetEliminatePolyPointLimitAngle() != pView->GetEliminatePolyPointLimitAngle() ) - mpDrawView->SetEliminatePolyPointLimitAngle( pView->GetEliminatePolyPointLimitAngle() ); - - if (mpDrawView->IsEliminatePolyPoints() != pView->IsEliminatePolyPoints() ) - mpDrawView->SetEliminatePolyPoints( pView->IsEliminatePolyPoints() ); - - if (mpDrawView->IsSolidMarkHdl() != pView->IsSolidMarkHdl() ) - mpDrawView->SetSolidMarkHdl( pView->IsSolidMarkHdl() ); - - if (mpDrawView->IsSolidDragging() != pView->IsSolidDragging() ) - mpDrawView->SetSolidDragging( pView->IsSolidDragging() ); - - if (mpDrawView->IsQuickTextEditMode() != pView->IsQuickEdit()) - mpDrawView->SetQuickTextEditMode( pView->IsQuickEdit() ); - - // #i26631# - if (mpDrawView->IsMasterPagePaintCaching() != pView->IsMasterPagePaintCaching()) - mpDrawView->SetMasterPagePaintCaching( pView->IsMasterPagePaintCaching() ); - - // Definition: - // grosse Handles: 9 - // kleine Handles: 7 - sal_uInt16 nTmp = mpDrawView->GetMarkHdlSizePixel(); - //DBG_ASSERT(nTmp != 7, "HandleSize != 7 oder 9"); - if( nTmp == 9 && !pView->IsBigHandles() ) - mpDrawView->SetMarkHdlSizePixel( 7 ); - else if( nTmp == 7 && pView->IsBigHandles() ) - mpDrawView->SetMarkHdlSizePixel( 9 ); - - - SdrPageView* pPageView = mpDrawView->GetSdrPageView(); - if (pPageView) - { - if ( pPageView->GetVisibleLayers() != pView->GetVisibleLayers() ) - pPageView->SetVisibleLayers( pView->GetVisibleLayers() ); - - if ( pPageView->GetPrintableLayers() != pView->GetPrintableLayers() ) - pPageView->SetPrintableLayers( pView->GetPrintableLayers() ); - - if ( pPageView->GetLockedLayers() != pView->GetLockedLayers() ) - pPageView->SetLockedLayers( pView->GetLockedLayers() ); - - if (mePageKind == PK_NOTES) - { - if (pPageView->GetHelpLines() != pView->GetNotesHelpLines()) - pPageView->SetHelpLines( pView->GetNotesHelpLines() ); - } - else if (mePageKind == PK_HANDOUT) - { - if (pPageView->GetHelpLines() != pView->GetHandoutHelpLines()) - pPageView->SetHelpLines( pView->GetHandoutHelpLines() ); - } - else - { - if (pPageView->GetHelpLines() != pView->GetStandardHelpLines()) - pPageView->SetHelpLines( pView->GetStandardHelpLines() ); - } - } - - if ( mpDrawView->GetActiveLayer() != pView->GetActiveLayer() ) - mpDrawView->SetActiveLayer( pView->GetActiveLayer() ); - - sal_uInt16 nSelectedPage = 0; - - if (mePageKind != PK_HANDOUT) - { - nSelectedPage = pView->GetSelectedPage(); - } - - EditMode eNewEditMode = pView->GetViewShEditMode(mePageKind); - sal_Bool bNewLayerMode = pView->IsLayerMode(); - ChangeEditMode(eNewEditMode, bNewLayerMode); - SwitchPage(nSelectedPage); - - // DrawMode fuer 'Normales' Fenster wiederherstellen - if(GetActiveWindow()->GetDrawMode() != pView->GetDrawMode()) - GetActiveWindow()->SetDrawMode(pView->GetDrawMode()); - - if ( mpDrawView->IsDesignMode() != pView->IsDesignMode() ) - { - SfxBoolItem aDesignModeItem( SID_FM_DESIGN_MODE, pView->IsDesignMode() ); - GetViewFrame()->GetDispatcher()->Execute( SID_FM_DESIGN_MODE, SFX_CALLMODE_SYNCHRON | SFX_CALLMODE_RECORD, &aDesignModeItem, 0L ); - } - - // Muss am Ende gerufen werden, da ein WriteFrameViewData() ausgeloest wird - if (mpDrawView->IsFrameDragSingles() != pView->IsFrameDragSingles() ) - mpDrawView->SetFrameDragSingles( pView->IsFrameDragSingles() ); -} - -/************************************************************************* -|* -|* Daten der aktuellen View auf die FrameView uebertragen -|* -\************************************************************************/ - -void DrawViewShell::WriteFrameViewData() -{ - // Zeichen-(Bildschirm-)Attribute an FrameView merken - mpFrameView->SetRuler( HasRuler() ); - mpFrameView->SetGridCoarse( mpDrawView->GetGridCoarse() ); - mpFrameView->SetGridFine( mpDrawView->GetGridFine() ); - mpFrameView->SetSnapGridWidth(mpDrawView->GetSnapGridWidthX(), mpDrawView->GetSnapGridWidthY()); - mpFrameView->SetGridVisible( mpDrawView->IsGridVisible() ); - mpFrameView->SetGridFront( mpDrawView->IsGridFront() ); - mpFrameView->SetSnapAngle( mpDrawView->GetSnapAngle() ); - mpFrameView->SetGridSnap( mpDrawView->IsGridSnap() ); - mpFrameView->SetBordSnap( mpDrawView->IsBordSnap() ); - mpFrameView->SetHlplSnap( mpDrawView->IsHlplSnap() ); - mpFrameView->SetOFrmSnap( mpDrawView->IsOFrmSnap() ); - mpFrameView->SetOPntSnap( mpDrawView->IsOPntSnap() ); - mpFrameView->SetOConSnap( mpDrawView->IsOConSnap() ); - mpFrameView->SetHlplVisible( mpDrawView->IsHlplVisible() ); - mpFrameView->SetDragStripes( mpDrawView->IsDragStripes() ); - mpFrameView->SetPlusHandlesAlwaysVisible( mpDrawView->IsPlusHandlesAlwaysVisible() ); - mpFrameView->SetFrameDragSingles( mpDrawView->IsFrameDragSingles() ); - mpFrameView->SetMarkedHitMovesAlways( mpDrawView->IsMarkedHitMovesAlways() ); - mpFrameView->SetMoveOnlyDragging( mpDrawView->IsMoveOnlyDragging() ); - mpFrameView->SetNoDragXorPolys( mpDrawView->IsNoDragXorPolys() ); - mpFrameView->SetCrookNoContortion( mpDrawView->IsCrookNoContortion() ); - mpFrameView->SetBigOrtho( mpDrawView->IsBigOrtho() ); - mpFrameView->SetEliminatePolyPointLimitAngle( mpDrawView->GetEliminatePolyPointLimitAngle() ); - mpFrameView->SetEliminatePolyPoints( mpDrawView->IsEliminatePolyPoints() ); - - mpFrameView->SetSolidMarkHdl( mpDrawView->IsSolidMarkHdl() ); - mpFrameView->SetSolidDragging( mpDrawView->IsSolidDragging() ); - mpFrameView->SetQuickEdit( mpDrawView->IsQuickTextEditMode() ); - - mpFrameView->SetDesignMode( mpDrawView->IsDesignMode() ); - - Size aVisSizePixel = GetActiveWindow()->GetOutputSizePixel(); - Rectangle aVisArea = GetActiveWindow()->PixelToLogic( Rectangle( Point(0,0), aVisSizePixel) ); - mpFrameView->SetVisArea(aVisArea); - - if( mePageKind == PK_HANDOUT ) - mpFrameView->SetSelectedPage(0); - else - { - mpFrameView->SetSelectedPage( maTabControl.GetCurPageId() - 1 ); - } - - mpFrameView->SetViewShEditMode(meEditMode, mePageKind); - mpFrameView->SetLayerMode(IsLayerModeActive()); - - SdrPageView* pPageView = mpDrawView->GetSdrPageView(); - - if (pPageView) - { - if ( mpFrameView->GetVisibleLayers() != pPageView->GetVisibleLayers() ) - mpFrameView->SetVisibleLayers( pPageView->GetVisibleLayers() ); - - if ( mpFrameView->GetPrintableLayers() != pPageView->GetPrintableLayers() ) - mpFrameView->SetPrintableLayers( pPageView->GetPrintableLayers() ); - - if ( mpFrameView->GetLockedLayers() != pPageView->GetLockedLayers() ) - mpFrameView->SetLockedLayers( pPageView->GetLockedLayers() ); - - if (mePageKind == PK_NOTES) - { - mpFrameView->SetNotesHelpLines( pPageView->GetHelpLines() ); - } - else if (mePageKind == PK_HANDOUT) - { - mpFrameView->SetHandoutHelpLines( pPageView->GetHelpLines() ); - } - else - { - mpFrameView->SetStandardHelpLines( pPageView->GetHelpLines() ); - } - } - - if ( mpFrameView->GetActiveLayer() != mpDrawView->GetActiveLayer() ) - mpFrameView->SetActiveLayer( mpDrawView->GetActiveLayer() ); - - // DrawMode fuer 'Normales' Fenster merken - if(mpFrameView->GetDrawMode() != GetActiveWindow()->GetDrawMode()) - mpFrameView->SetDrawMode(GetActiveWindow()->GetDrawMode()); -} - - - -/************************************************************************* -|* -|* PrePaint-Method -|* -\************************************************************************/ - -void DrawViewShell::PrePaint() -{ - mpDrawView->PrePaint(); -} - -/************************************************************************* -|* -|* Paint-Methode: das Ereignis wird vom Fenster pWin an -|* die Viewshell und die aktuelle Funktion weitergeleitet -|* -|* Anmerkung: pWin==NULL, wenn Paint() vom ShowWindow gerufen wird! -|* -\************************************************************************/ - -void DrawViewShell::Paint(const Rectangle& rRect, ::sd::Window* pWin) -{ - // Fill var FillColor here to have it available on later call - svtools::ColorConfig aColorConfig; - Color aFillColor; - - if(DOCUMENT_TYPE_IMPRESS == GetDoc()->GetDocumentType()) - { - aFillColor = Color( aColorConfig.GetColorValue( svtools::APPBACKGROUND ).nColor ); - } - else - { - aFillColor = Color( aColorConfig.GetColorValue( svtools::DOCCOLOR ).nColor ); - } - - /* This is done before each text edit, so why not do it before every paint. - The default language is only used if the outliner only contains one - character in a symbol font */ - GetDoc()->GetDrawOutliner( NULL ).SetDefaultLanguage( GetDoc()->GetLanguage( EE_CHAR_LANGUAGE ) ); - - // Set Application Background color for usage in SdrPaintView(s) - mpDrawView->SetApplicationBackgroundColor(aFillColor); - - /* This is done before each text edit, so why not do it before every paint. - The default language is only used if the outliner only contains one - character in a symbol font */ - GetDoc()->GetDrawOutliner( NULL ).SetDefaultLanguage( Application::GetSettings().GetLanguage() ); - - mpDrawView->CompleteRedraw( pWin, Region( rRect ) ); - - if( pWin ) - { - if( GetDocSh()->GetDocShellFunction().is() ) - GetDocSh()->GetDocShellFunction()->Paint( rRect, pWin ); - - if( HasCurrentFunction() ) - GetCurrentFunction()->Paint( rRect, pWin ); - } -} - -/************************************************************************* -|* -|* Zoom-Faktor fuer InPlace einstellen -|* -\************************************************************************/ - -void DrawViewShell::SetZoomFactor(const Fraction& rZoomX, const Fraction& rZoomY) -{ - ViewShell::SetZoomFactor(rZoomX, rZoomY); - mbZoomOnPage = sal_False; - Point aOrigin = GetActiveWindow()->GetViewOrigin(); - GetActiveWindow()->SetWinViewPos(aOrigin); -} - -/************************************************************************* -|* -|* Optimale Groesse zurueckgeben -|* -\************************************************************************/ - -Size DrawViewShell::GetOptimalSizePixel() const -{ - Size aSize; - - SdrPageView* pPV = mpDrawView->GetSdrPageView(); - if (pPV) - { - SdPage* pPage = (SdPage*) pPV->GetPage(); - - if (pPage) - { - if (!mbZoomOnPage) - { - // Gegenwaertigen MapMode beruecksichtigen - aSize = GetActiveWindow()->LogicToPixel( pPage->GetSize() ); - } - else - { - // 1:1 Darstellung - MapMode aMapMode(MAP_100TH_MM); - aSize = GetActiveWindow()->LogicToPixel( pPage->GetSize(), aMapMode ); - const_cast< DrawViewShell* >(this)->mbZoomOnPage = sal_True; - } - } - } - - return(aSize); -} - - -/************************************************************************* -|* -|* Seite wird gehided -|* -\************************************************************************/ - -void DrawViewShell::HidePage() -{ - FmFormShell* pFormShell = GetViewShellBase().GetFormShellManager()->GetFormShell(); - if (pFormShell != NULL) - pFormShell->PrepareClose (sal_False); -} - - - -void DrawViewShell::WriteUserDataSequence ( ::com::sun::star::uno::Sequence < ::com::sun::star::beans::PropertyValue >& rSequence, sal_Bool bBrowse ) -{ - WriteFrameViewData(); - - ViewShell::WriteUserDataSequence( rSequence, bBrowse ); - - const sal_Int32 nIndex = rSequence.getLength(); - rSequence.realloc( nIndex + 1 ); - rSequence[nIndex].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( sUNO_View_ZoomOnPage ) ); - rSequence[nIndex].Value <<= (sal_Bool)mbZoomOnPage; -} - -void DrawViewShell::ReadUserDataSequence ( const ::com::sun::star::uno::Sequence < ::com::sun::star::beans::PropertyValue >& rSequence, sal_Bool bBrowse ) -{ - WriteFrameViewData(); - - ViewShell::ReadUserDataSequence( rSequence, bBrowse ); - - const sal_Int32 nLength = rSequence.getLength(); - const com::sun::star::beans::PropertyValue *pValue = rSequence.getConstArray(); - for (sal_Int16 i = 0 ; i < nLength; i++, pValue++ ) - { - if (pValue->Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( sUNO_View_ZoomOnPage ) ) ) - { - sal_Bool bZoomPage = sal_False; - if( pValue->Value >>= bZoomPage ) - { - mbZoomOnPage = bZoomPage; - } - } - } - - if( mpFrameView->GetPageKind() != mePageKind ) - { - mePageKind = mpFrameView->GetPageKind(); - - if (mePageKind == PK_NOTES) - { - SetHelpId( SID_NOTESMODE ); - GetActiveWindow()->SetHelpId( CMD_SID_NOTESMODE ); - GetActiveWindow()->SetUniqueId( CMD_SID_NOTESMODE ); - } - else if (mePageKind == PK_HANDOUT) - { - SetHelpId( SID_HANDOUTMODE ); - GetActiveWindow()->SetHelpId( CMD_SID_HANDOUTMODE ); - GetActiveWindow()->SetUniqueId( CMD_SID_HANDOUTMODE ); - } - else - { - SetHelpId( SD_IF_SDDRAWVIEWSHELL ); - GetActiveWindow()->SetHelpId( HID_SDDRAWVIEWSHELL ); - GetActiveWindow()->SetUniqueId( HID_SDDRAWVIEWSHELL ); - } - } - - ReadFrameViewData( mpFrameView ); - - if( !mbZoomOnPage ) - { - const Rectangle aVisArea( mpFrameView->GetVisArea() ); - - if ( GetDocSh()->GetCreateMode() == SFX_CREATE_MODE_EMBEDDED ) - { - GetDocSh()->SetVisArea(aVisArea); - } - - VisAreaChanged(aVisArea); - - ::sd::View* pView = GetView(); - - if (pView) - { - pView->VisAreaChanged(GetActiveWindow()); - } - - SetZoomRect(aVisArea); - } - - ChangeEditMode (meEditMode, ! IsLayerModeActive()); - ChangeEditMode (meEditMode, ! IsLayerModeActive()); - ResetActualLayer(); -} - -void DrawViewShell::VisAreaChanged(const Rectangle& rRect) -{ - ViewShell::VisAreaChanged( rRect ); - - DrawController& rController = GetViewShellBase().GetDrawController(); - rController.FireVisAreaChanged (rRect); -} - - - - -/** If there is a valid controller then create a new instance of - <type>AccessibleDrawDocumentView</type>. Otherwise return an empty - reference. -*/ -::com::sun::star::uno::Reference< - ::com::sun::star::accessibility::XAccessible> - DrawViewShell::CreateAccessibleDocumentView (::sd::Window* pWindow) -{ - if (GetViewShellBase().GetController() != NULL) - { - accessibility::AccessibleDrawDocumentView* pDocumentView = - new accessibility::AccessibleDrawDocumentView ( - pWindow, - this, - GetViewShellBase().GetController(), - pWindow->GetAccessibleParentWindow()->GetAccessible()); - pDocumentView->Init(); - return ::com::sun::star::uno::Reference< - ::com::sun::star::accessibility::XAccessible> - (static_cast< ::com::sun::star::uno::XWeak*>(pDocumentView), - ::com::sun::star::uno::UNO_QUERY); - } - - OSL_TRACE ("DrawViewShell::CreateAccessibleDocumentView: no controller"); - return ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible>(); -} - - - - -int DrawViewShell::GetActiveTabLayerIndex (void) const -{ - const LayerTabBar* pBar - = const_cast<DrawViewShell*>(this)->GetLayerTabControl (); - if (pBar != NULL) - return pBar->GetPagePos (pBar->GetCurPageId()); - else - return -1; -} - - - - -void DrawViewShell::SetActiveTabLayerIndex (int nIndex) -{ - LayerTabBar* pBar = GetLayerTabControl (); - if (pBar != NULL) - { - // Ignore invalid indices silently. - if (nIndex>=0 && nIndex<pBar->GetPageCount()) - { - // Tell the draw view and the tab control of the new active layer. - mpDrawView->SetActiveLayer (pBar->GetPageText (pBar->GetPageId ((sal_uInt16)nIndex))); - pBar->SetCurPageId (pBar->GetPageId ((sal_uInt16)nIndex)); - } - } -} - - - - -TabControl* DrawViewShell::GetPageTabControl (void) -{ - return &maTabControl; -} - - - - -LayerTabBar* DrawViewShell::GetLayerTabControl (void) -{ - return mpLayerTabBar.get(); -} - - - - -int DrawViewShell::GetTabLayerCount (void) const -{ - const LayerTabBar* pBar - = const_cast<DrawViewShell*>(this)->GetLayerTabControl (); - if (pBar != NULL) - return pBar->GetPageCount(); - else - return 0; -} - - -} // end of namespace sd - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |