LCOV - code coverage report
Current view: top level - libreoffice/sd/source/ui/view - drviews2.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 1 465 0.2 %
Date: 2012-12-27 Functions: 2 8 25.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  *
       9             :  * This file incorporates work covered by the following license notice:
      10             :  *
      11             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12             :  *   contributor license agreements. See the NOTICE file distributed
      13             :  *   with this work for additional information regarding copyright
      14             :  *   ownership. The ASF licenses this file to you under the Apache
      15             :  *   License, Version 2.0 (the "License"); you may not use this file
      16             :  *   except in compliance with the License. You may obtain a copy of
      17             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18             :  */
      19             : 
      20             : #include "DrawViewShell.hxx"
      21             : #include "ViewShellImplementation.hxx"
      22             : #include <vcl/waitobj.hxx>
      23             : #include <svx/svdograf.hxx>
      24             : #include <svx/svxids.hrc>
      25             : #include <svx/svdpagv.hxx>
      26             : #include <svx/svdundo.hxx>
      27             : #include <sfx2/zoomitem.hxx>
      28             : #include <editeng/editdata.hxx>
      29             : #include <basic/sberrors.hxx>
      30             : #include <vcl/msgbox.hxx>
      31             : #include <sfx2/request.hxx>
      32             : #include <sfx2/dispatch.hxx>
      33             : #include <svx/xfillit0.hxx>
      34             : #include <svx/xflclit.hxx>
      35             : #include <svl/aeitem.hxx>
      36             : #include <editeng/eeitem.hxx>
      37             : #include <basic/sbstar.hxx>
      38             : #include <editeng/flditem.hxx>
      39             : #include <svx/xlineit0.hxx>
      40             : #include <svx/graphichelper.hxx>
      41             : #include <svx/compressgraphicdialog.hxx>
      42             : #include <svx/extedit.hxx>
      43             : #include <svx/svdoutl.hxx>
      44             : #include <svx/xlnwtit.hxx>
      45             : #include <svx/svdoattr.hxx>
      46             : #include <svx/xlnstwit.hxx>
      47             : #include <svx/sdtmfitm.hxx>
      48             : #include <svx/sdtagitm.hxx>
      49             : #include <svx/xlnedwit.hxx>
      50             : #include <svx/fontworkbar.hxx>
      51             : 
      52             : #include <svx/svxdlg.hxx>
      53             : #include <svx/dialogs.hrc>
      54             : 
      55             : #include <sfx2/viewfrm.hxx>
      56             : #include "sdgrffilter.hxx"
      57             : 
      58             : #include "app.hrc"
      59             : #include "glob.hrc"
      60             : #include "helpids.h"
      61             : #include "sdattr.hxx"
      62             : #include "drawview.hxx"
      63             : #include "Window.hxx"
      64             : #include "drawdoc.hxx"
      65             : #include "DrawDocShell.hxx"
      66             : #include "sdpage.hxx"
      67             : #include "fuscale.hxx"
      68             : #include "sdresid.hxx"
      69             : #include "GraphicViewShell.hxx"
      70             : #include "unmodpg.hxx"
      71             : #include "slideshow.hxx"
      72             : #include "fuvect.hxx"
      73             : #include "stlpool.hxx"
      74             : 
      75             : #include "optsitem.hxx"
      76             : #include "sdabstdlg.hxx"
      77             : #include <com/sun/star/drawing/XMasterPagesSupplier.hpp>
      78             : #include <com/sun/star/drawing/XDrawPages.hpp>
      79             : 
      80             : #include <strings.hrc>
      81             : 
      82             : using namespace ::com::sun::star;
      83             : using namespace ::com::sun::star::uno;
      84             : 
      85             : namespace sd {
      86             : 
      87           0 : class SdExternalToolEdit : public ExternalToolEdit
      88             : {
      89             :     FmFormView* m_pView;
      90             :     SdrObject*  m_pObj;
      91             : 
      92             : public:
      93           0 :     SdExternalToolEdit ( FmFormView* pView, SdrObject* pObj ) :
      94             :         m_pView   (pView),
      95           0 :         m_pObj (pObj)
      96           0 :     {}
      97             : 
      98           0 :     virtual void Update( Graphic& aGraphic )
      99             :     {
     100           0 :         SdrPageView* pPageView = m_pView->GetSdrPageView();
     101           0 :         if( pPageView )
     102             :         {
     103           0 :             SdrGrafObj* pNewObj = (SdrGrafObj*) m_pObj->Clone();
     104           0 :             String      aStr( m_pView->GetDescriptionOfMarkedObjects() );
     105           0 :             aStr.Append( sal_Unicode(' ') );
     106           0 :             aStr.Append( String( "External Edit" ) );
     107           0 :             m_pView->BegUndo( aStr );
     108           0 :             pNewObj->SetGraphicObject( aGraphic );
     109           0 :             m_pView->ReplaceObjectAtView( m_pObj, *pPageView, pNewObj );
     110           0 :             m_pView->EndUndo();
     111             :         }
     112           0 :     }
     113             : };
     114             : 
     115             : /*************************************************************************
     116             : |*
     117             : |* SfxRequests fuer temporaere Funktionen
     118             : |*
     119             : \************************************************************************/
     120             : 
     121           0 : void DrawViewShell::FuTemporary(SfxRequest& rReq)
     122             : {
     123             :     // Waehrend einer Native-Diashow wird nichts ausgefuehrt!
     124           0 :     if(SlideShow::IsRunning( GetViewShellBase() ) && (rReq.GetSlot() != SID_NAVIGATOR))
     125           0 :         return;
     126             : 
     127             :     DBG_ASSERT( mpDrawView, "sd::DrawViewShell::FuTemporary(), no draw view!" );
     128           0 :     if( !mpDrawView )
     129           0 :         return;
     130             : 
     131           0 :     CheckLineTo (rReq);
     132             : 
     133           0 :     DeactivateCurrentFunction();
     134             : 
     135           0 :     sal_uInt16 nSId = rReq.GetSlot();
     136             : 
     137             :     // Slot wird gemapped (ToolboxImages/-Slots)
     138           0 :     MapSlot( nSId );
     139             : 
     140           0 :     switch ( nSId )
     141             :     {
     142             :         case SID_OUTLINE_TEXT_AUTOFIT:
     143             :         {
     144           0 :             ::svl::IUndoManager* pUndoManager = GetDocSh()->GetUndoManager();
     145           0 :             SdrObject* pObj = NULL;
     146           0 :             const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
     147           0 :             if( rMarkList.GetMarkCount() == 1 )
     148             :             {
     149           0 :                 pUndoManager->EnterListAction( String(), String() );
     150           0 :                 mpDrawView->BegUndo();
     151             : 
     152           0 :                 pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
     153           0 :                 bool bSet = ((const SdrTextFitToSizeTypeItem*)pObj->GetMergedItemSet().GetItem(SDRATTR_TEXT_FITTOSIZE))->GetValue() != SDRTEXTFIT_NONE;
     154             : 
     155           0 :                 mpDrawView->AddUndo(GetDoc()->GetSdrUndoFactory().CreateUndoAttrObject(*pObj));
     156             : 
     157           0 :                 pObj->SetMergedItem(SdrTextFitToSizeTypeItem(bSet ? SDRTEXTFIT_NONE : SDRTEXTFIT_AUTOFIT));
     158             : 
     159           0 :                 mpDrawView->EndUndo();
     160           0 :                 pUndoManager->LeaveListAction();
     161             :             }
     162           0 :             Cancel();
     163           0 :             rReq.Done();
     164             :         }
     165           0 :         break;
     166             : 
     167             :         // Flaechen und Linien-Attribute:
     168             :         // Sollten (wie StateMethode) eine eigene
     169             :         // Execute-Methode besitzen
     170             :         case SID_ATTR_FILL_STYLE:
     171             :         case SID_ATTR_FILL_COLOR:
     172             :         case SID_ATTR_FILL_GRADIENT:
     173             :         case SID_ATTR_FILL_HATCH:
     174             :         case SID_ATTR_FILL_BITMAP:
     175             :         case SID_ATTR_FILL_SHADOW:
     176             : 
     177             :         case SID_ATTR_LINE_STYLE:
     178             :         case SID_ATTR_LINE_DASH:
     179             :         case SID_ATTR_LINE_WIDTH:
     180             :         case SID_ATTR_LINE_COLOR:
     181             :         case SID_ATTR_LINEEND_STYLE:
     182             : 
     183             :         case SID_ATTR_TEXT_FITTOSIZE:
     184             :         {
     185           0 :             if( rReq.GetArgs() )
     186             :             {
     187           0 :                 sal_Bool bMergeUndo = sal_False;
     188           0 :                 ::svl::IUndoManager* pUndoManager = GetDocSh()->GetUndoManager();
     189             : 
     190             :                 // Anpassungen Start/EndWidth
     191           0 :                 if(nSId == SID_ATTR_LINE_WIDTH)
     192             :                 {
     193           0 :                     SdrObject* pObj = NULL;
     194           0 :                     const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
     195           0 :                     sal_uLong nCount = rMarkList.GetMarkCount();
     196             : 
     197           0 :                     sal_Int32 nNewLineWidth = ((const XLineWidthItem&)rReq.GetArgs()->Get(XATTR_LINEWIDTH)).GetValue();
     198             : 
     199           0 :                     for (sal_uLong i=0; i<nCount; i++)
     200             :                     {
     201           0 :                         SfxItemSet aAttr(GetDoc()->GetPool());
     202           0 :                         pObj = rMarkList.GetMark(i)->GetMarkedSdrObj();
     203           0 :                         aAttr.Put(pObj->GetMergedItemSet());
     204             : 
     205           0 :                         sal_Int32 nActLineWidth = ((const XLineWidthItem&)aAttr.Get(XATTR_LINEWIDTH)).GetValue();
     206             : 
     207           0 :                         if(nActLineWidth != nNewLineWidth)
     208             :                         {
     209           0 :                             sal_Bool bSetItemSet(sal_False);
     210             : 
     211             :                             // do this for SFX_ITEM_DEFAULT and for SFX_ITEM_SET
     212           0 :                             if(SFX_ITEM_DONTCARE != aAttr.GetItemState(XATTR_LINESTARTWIDTH))
     213             :                             {
     214           0 :                                 sal_Int32 nValAct = ((const XLineStartWidthItem&)aAttr.Get(XATTR_LINESTARTWIDTH)).GetValue();
     215           0 :                                 sal_Int32 nValNew = nValAct + (((nNewLineWidth - nActLineWidth) * 15) / 10);
     216           0 :                                 if(nValNew < 0)
     217           0 :                                     nValNew = 0;
     218           0 :                                 bSetItemSet = sal_True;
     219           0 :                                 aAttr.Put(XLineStartWidthItem(nValNew));
     220             :                             }
     221             : 
     222             :                             // do this for SFX_ITEM_DEFAULT and for SFX_ITEM_SET
     223           0 :                             if(SFX_ITEM_DONTCARE != aAttr.GetItemState(XATTR_LINEENDWIDTH))
     224             :                             {
     225           0 :                                 sal_Int32 nValAct = ((const XLineEndWidthItem&)aAttr.Get(XATTR_LINEENDWIDTH)).GetValue();
     226           0 :                                 sal_Int32 nValNew = nValAct + (((nNewLineWidth - nActLineWidth) * 15) / 10);
     227           0 :                                 if(nValNew < 0)
     228           0 :                                     nValNew = 0;
     229           0 :                                 bSetItemSet = sal_True;
     230           0 :                                 aAttr.Put(XLineEndWidthItem(nValNew));
     231             :                             }
     232             : 
     233           0 :                             if(bSetItemSet)
     234           0 :                                 pObj->SetMergedItemSet(aAttr);
     235             :                         }
     236           0 :                     }
     237             :                 }
     238             : 
     239           0 :                 if (nSId == SID_ATTR_FILL_SHADOW)
     240             :                 {
     241             :                     // Ggf. werden transparente Objekte wei?gefuellt
     242           0 :                     SdrObject* pObj = NULL;
     243           0 :                     const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
     244           0 :                     sal_uLong nCount = rMarkList.GetMarkCount();
     245             : 
     246           0 :                     const bool bUndo = mpDrawView->IsUndoEnabled();
     247             : 
     248           0 :                     for (sal_uLong i=0; i<nCount; i++)
     249             :                     {
     250           0 :                         SfxItemSet aAttr(GetDoc()->GetPool());
     251           0 :                         pObj = rMarkList.GetMark(i)->GetMarkedSdrObj();
     252             : 
     253             :                         // #i25616#
     254           0 :                         if(!pObj->ISA(SdrGrafObj))
     255             :                         {
     256           0 :                             aAttr.Put(pObj->GetMergedItemSet());
     257             : 
     258             :                             const XFillStyleItem& rFillStyle =
     259           0 :                             (const XFillStyleItem&) aAttr.Get(XATTR_FILLSTYLE);
     260             : 
     261           0 :                             if (rFillStyle.GetValue() == XFILL_NONE)
     262             :                             {
     263           0 :                                 if( bUndo )
     264             :                                 {
     265             :                                     // Vorlage hat keine Fuellung,
     266             :                                     // daher hart attributieren: Fuellung setzen
     267           0 :                                     if (!bMergeUndo)
     268             :                                     {
     269           0 :                                         bMergeUndo = sal_True;
     270           0 :                                         pUndoManager->EnterListAction( String(), String() );
     271           0 :                                         mpDrawView->BegUndo();
     272             :                                     }
     273             : 
     274           0 :                                     mpDrawView->AddUndo(GetDoc()->GetSdrUndoFactory().CreateUndoAttrObject(*pObj));
     275             :                                 }
     276             : 
     277           0 :                                 aAttr.Put(XFillStyleItem(XFILL_SOLID));
     278           0 :                                 aAttr.Put(XFillColorItem(String(), COL_WHITE));
     279             : 
     280           0 :                                 pObj->SetMergedItemSet(aAttr);
     281             :                             }
     282             :                         }
     283           0 :                     }
     284             : 
     285           0 :                     if (bMergeUndo)
     286             :                     {
     287           0 :                         mpDrawView->EndUndo();
     288             :                     }
     289             :                 }
     290             : 
     291           0 :                 mpDrawView->SetAttributes(*rReq.GetArgs());
     292             : 
     293           0 :                 if (bMergeUndo)
     294             :                 {
     295           0 :                     pUndoManager->LeaveListAction();
     296             :                 }
     297             : 
     298           0 :                 rReq.Done();
     299             :             }
     300             :             else
     301             :             {
     302           0 :                 switch( rReq.GetSlot() )
     303             :                 {
     304             :                     case SID_ATTR_FILL_SHADOW:
     305             :                     case SID_ATTR_FILL_STYLE:
     306             :                     case SID_ATTR_FILL_COLOR:
     307             :                     case SID_ATTR_FILL_GRADIENT:
     308             :                     case SID_ATTR_FILL_HATCH:
     309             :                     case SID_ATTR_FILL_BITMAP:
     310           0 :                         GetViewFrame()->GetDispatcher()->Execute( SID_ATTRIBUTES_AREA, SFX_CALLMODE_ASYNCHRON );
     311           0 :                         break;
     312             :                     case SID_ATTR_LINE_STYLE:
     313             :                     case SID_ATTR_LINE_DASH:
     314             :                     case SID_ATTR_LINE_WIDTH:
     315             :                     case SID_ATTR_LINE_COLOR:
     316           0 :                         GetViewFrame()->GetDispatcher()->Execute( SID_ATTRIBUTES_LINE, SFX_CALLMODE_ASYNCHRON );
     317           0 :                         break;
     318             :                     case SID_ATTR_TEXT_FITTOSIZE:
     319           0 :                         GetViewFrame()->GetDispatcher()->Execute( SID_TEXTATTR_DLG, SFX_CALLMODE_ASYNCHRON );
     320           0 :                         break;
     321             :                 }
     322             :             }
     323           0 :             Cancel();
     324             :         }
     325           0 :         break;
     326             : 
     327             :         case SID_HYPHENATION:
     328             :         {
     329             :             // const SfxPoolItem* pItem = rReq.GetArg( SID_HYPHENATION );
     330             :             //  ^-- Soll so nicht benutzt werden (Defaults sind falsch) !
     331           0 :             SFX_REQUEST_ARG( rReq, pItem, SfxBoolItem, SID_HYPHENATION, sal_False);
     332             : 
     333           0 :             if( pItem )
     334             :             {
     335           0 :                 SfxItemSet aSet( GetPool(), EE_PARA_HYPHENATE, EE_PARA_HYPHENATE );
     336           0 :                 sal_Bool bValue = ( (const SfxBoolItem*) pItem)->GetValue();
     337           0 :                 aSet.Put( SfxBoolItem( EE_PARA_HYPHENATE, bValue ) );
     338           0 :                 mpDrawView->SetAttributes( aSet );
     339             :             }
     340             :             else // nur zum Test
     341             :             {
     342             :                 OSL_FAIL(" Kein Wert fuer Silbentrennung!");
     343           0 :                 SfxItemSet aSet( GetPool(), EE_PARA_HYPHENATE, EE_PARA_HYPHENATE );
     344           0 :                 sal_Bool bValue = sal_True;
     345           0 :                 aSet.Put( SfxBoolItem( EE_PARA_HYPHENATE, bValue ) );
     346           0 :                 mpDrawView->SetAttributes( aSet );
     347             :             }
     348           0 :             rReq.Done();
     349           0 :             Cancel();
     350             :         }
     351           0 :         break;
     352             : 
     353             :         case SID_INSERTPAGE:
     354             :         case SID_INSERTPAGE_QUICK:
     355             :         case SID_DUPLICATE_PAGE:
     356             :         {
     357           0 :             SdPage* pNewPage = CreateOrDuplicatePage (rReq, mePageKind, GetActualPage());
     358           0 :             Cancel();
     359           0 :             if(HasCurrentFunction(SID_BEZIER_EDIT) )
     360           0 :                 GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON);
     361           0 :             if (pNewPage != NULL)
     362           0 :                 SwitchPage((pNewPage->GetPageNum()-1)/2);
     363           0 :             rReq.Done ();
     364             :         }
     365           0 :         break;
     366             : 
     367             :         case SID_INSERT_MASTER_PAGE:
     368             :         {
     369             :             // Use the API to create a new page.
     370             :             Reference<drawing::XMasterPagesSupplier> xMasterPagesSupplier (
     371           0 :                 GetDoc()->getUnoModel(), UNO_QUERY);
     372           0 :             if (xMasterPagesSupplier.is())
     373             :             {
     374             :                 Reference<drawing::XDrawPages> xMasterPages (
     375           0 :                     xMasterPagesSupplier->getMasterPages());
     376           0 :                 if (xMasterPages.is())
     377             :                 {
     378           0 :                     sal_uInt16 nIndex = GetCurPageId();
     379           0 :                     xMasterPages->insertNewByIndex (nIndex);
     380             : 
     381             :                     // Create shapes for the default layout.
     382             :                     SdPage* pMasterPage = GetDoc()->GetMasterSdPage(
     383           0 :                         nIndex, PK_STANDARD);
     384           0 :                     pMasterPage->CreateTitleAndLayout (sal_True,sal_True);
     385           0 :                 }
     386             :             }
     387             : 
     388           0 :             Cancel();
     389           0 :             if(HasCurrentFunction(SID_BEZIER_EDIT))
     390             :                 GetViewFrame()->GetDispatcher()->Execute(
     391           0 :                     SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON);
     392           0 :             rReq.Done ();
     393             :         }
     394           0 :         break;
     395             : 
     396             :         case SID_MODIFYPAGE:
     397             :         {
     398           0 :             if (mePageKind==PK_STANDARD || mePageKind==PK_NOTES ||
     399             :                 (mePageKind==PK_HANDOUT && meEditMode==EM_MASTERPAGE) )
     400             :             {
     401           0 :                 if ( mpDrawView->IsTextEdit() )
     402             :                 {
     403           0 :                     mpDrawView->SdrEndTextEdit();
     404             :                 }
     405           0 :                 sal_uInt16 nPage = maTabControl.GetCurPageId() - 1;
     406           0 :                 mpActualPage = GetDoc()->GetSdPage(nPage, mePageKind);
     407             :                 ::sd::ViewShell::mpImpl->ProcessModifyPageSlot (
     408             :                     rReq,
     409             :                     mpActualPage,
     410           0 :                     mePageKind);
     411             :             }
     412             : 
     413           0 :             Cancel();
     414           0 :             rReq.Done ();
     415             :         }
     416           0 :         break;
     417             : 
     418             :         case SID_ASSIGN_LAYOUT:
     419             :         {
     420           0 :             if (mePageKind==PK_STANDARD || mePageKind==PK_NOTES || (mePageKind==PK_HANDOUT && meEditMode==EM_MASTERPAGE))
     421             :             {
     422           0 :                 if ( mpDrawView->IsTextEdit() )
     423           0 :                     mpDrawView->SdrEndTextEdit();
     424             : 
     425           0 :                 ::sd::ViewShell::mpImpl->AssignLayout(rReq, mePageKind);
     426             :             }
     427           0 :             Cancel();
     428           0 :             rReq.Done ();
     429             :         }
     430           0 :         break;
     431             : 
     432             :         case SID_RENAMEPAGE:
     433             :         case SID_RENAME_MASTER_PAGE:
     434             :         {
     435           0 :             if (mePageKind==PK_STANDARD || mePageKind==PK_NOTES )
     436             :             {
     437           0 :                 if ( mpDrawView->IsTextEdit() )
     438             :                 {
     439           0 :                     mpDrawView->SdrEndTextEdit();
     440             :                 }
     441             : 
     442           0 :                 sal_uInt16 nPageId = maTabControl.GetCurPageId();
     443           0 :                 SdPage* pCurrentPage = ( GetEditMode() == EM_PAGE )
     444           0 :                     ? GetDoc()->GetSdPage( nPageId - 1, GetPageKind() )
     445           0 :                     : GetDoc()->GetMasterSdPage( nPageId - 1, GetPageKind() );
     446             : 
     447           0 :                 String aTitle( SdResId( STR_TITLE_RENAMESLIDE ) );
     448           0 :                 String aDescr( SdResId( STR_DESC_RENAMESLIDE ) );
     449           0 :                 String aPageName = pCurrentPage->GetName();
     450             : 
     451           0 :                 SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
     452             :                 DBG_ASSERT(pFact, "Dialogdiet fail!");
     453           0 :                 AbstractSvxNameDialog* aNameDlg = pFact->CreateSvxNameDialog( GetActiveWindow(), aPageName, aDescr );
     454             :                 DBG_ASSERT(aNameDlg, "Dialogdiet fail!");
     455           0 :                 aNameDlg->SetText( aTitle );
     456           0 :                 aNameDlg->SetCheckNameHdl( LINK( this, DrawViewShell, RenameSlideHdl ), true );
     457           0 :                 aNameDlg->SetEditHelpId( HID_SD_NAMEDIALOG_PAGE );
     458             : 
     459           0 :                 if( aNameDlg->Execute() == RET_OK )
     460             :                 {
     461           0 :                     String aNewName;
     462           0 :                     aNameDlg->GetName( aNewName );
     463           0 :                     if( ! aNewName.Equals( aPageName ) )
     464             :                     {
     465             : #ifdef DBG_UTIL
     466             :                         bool bResult =
     467             : #endif
     468           0 :                             RenameSlide( nPageId, aNewName );
     469             :                         DBG_ASSERT( bResult, "Couldn't rename slide" );
     470           0 :                     }
     471             :                 }
     472           0 :                 delete aNameDlg;
     473             :             }
     474             : 
     475           0 :             Cancel();
     476           0 :             rReq.Ignore ();
     477             :         }
     478           0 :         break;
     479             : 
     480             :         case SID_RENAMEPAGE_QUICK:
     481             :         {
     482           0 :             if (mePageKind==PK_STANDARD || mePageKind==PK_NOTES )
     483             :             {
     484           0 :                 if ( mpDrawView->IsTextEdit() )
     485             :                 {
     486           0 :                     mpDrawView->SdrEndTextEdit();
     487             :                 }
     488             : 
     489           0 :                 maTabControl.StartEditMode( maTabControl.GetCurPageId() );
     490             :             }
     491             : 
     492           0 :             Cancel();
     493           0 :             rReq.Ignore ();
     494             :         }
     495           0 :         break;
     496             : 
     497             :         case SID_PAGESIZE :  // entweder dieses (kein menueeintrag o. ae. !!)
     498             :         {
     499           0 :             const SfxItemSet *pArgs = rReq.GetArgs ();
     500             : 
     501           0 :             if (pArgs)
     502           0 :                 if (pArgs->Count () == 3)
     503             :                 {
     504           0 :                     SFX_REQUEST_ARG (rReq, pWidth, SfxUInt32Item, ID_VAL_PAGEWIDTH, sal_False);
     505           0 :                     SFX_REQUEST_ARG (rReq, pHeight, SfxUInt32Item, ID_VAL_PAGEHEIGHT, sal_False);
     506           0 :                     SFX_REQUEST_ARG (rReq, pScaleAll, SfxBoolItem, ID_VAL_SCALEOBJECTS, sal_False);
     507             : 
     508           0 :                     Size aSize (pWidth->GetValue (), pHeight->GetValue ());
     509             : 
     510           0 :                     SetupPage (aSize, 0, 0, 0, 0, sal_True, sal_False, pScaleAll->GetValue ());
     511           0 :                     rReq.Ignore ();
     512             :                     break;
     513             :                 }
     514             : #ifndef DISABLE_SCRIPTING
     515           0 :             StarBASIC::FatalError (SbERR_WRONG_ARGS);
     516             : #endif
     517           0 :             rReq.Ignore ();
     518           0 :             break;
     519             :         }
     520             : 
     521             :         case SID_PAGEMARGIN :  // oder dieses (kein menueeintrag o. ae. !!)
     522             :         {
     523           0 :             const SfxItemSet *pArgs = rReq.GetArgs ();
     524             : 
     525           0 :             if (pArgs)
     526           0 :                 if (pArgs->Count () == 5)
     527             :                 {
     528           0 :                     SFX_REQUEST_ARG (rReq, pLeft, SfxUInt32Item, ID_VAL_PAGELEFT, sal_False);
     529           0 :                     SFX_REQUEST_ARG (rReq, pRight, SfxUInt32Item, ID_VAL_PAGERIGHT, sal_False);
     530           0 :                     SFX_REQUEST_ARG (rReq, pUpper, SfxUInt32Item, ID_VAL_PAGETOP, sal_False);
     531           0 :                     SFX_REQUEST_ARG (rReq, pLower, SfxUInt32Item, ID_VAL_PAGEBOTTOM, sal_False);
     532           0 :                     SFX_REQUEST_ARG (rReq, pScaleAll, SfxBoolItem, ID_VAL_SCALEOBJECTS, sal_False);
     533             : 
     534           0 :                     Size aEmptySize (0, 0);
     535             : 
     536           0 :                     SetupPage (aEmptySize, pLeft->GetValue (), pRight->GetValue (),
     537           0 :                                pUpper->GetValue (), pLower->GetValue (),
     538           0 :                                sal_False, sal_True, pScaleAll->GetValue ());
     539           0 :                     rReq.Ignore ();
     540             :                     break;
     541             :                 }
     542             : #ifndef DISABLE_SCRIPTING
     543           0 :             StarBASIC::FatalError (SbERR_WRONG_ARGS);
     544             : #endif
     545           0 :             rReq.Ignore ();
     546           0 :             break;
     547             :         }
     548             : 
     549             :         case SID_ATTR_ZOOMSLIDER:
     550             :         {
     551           0 :             const SfxItemSet* pArgs = rReq.GetArgs();
     552             : 
     553           0 :             if (pArgs && pArgs->Count () == 1 )
     554             :             {
     555           0 :                 SFX_REQUEST_ARG (rReq, pScale, SfxUInt16Item, SID_ATTR_ZOOMSLIDER, sal_False);
     556           0 :                 if (CHECK_RANGE (5, pScale->GetValue (), 3000))
     557             :                 {
     558           0 :                     SetZoom (pScale->GetValue ());
     559             : 
     560           0 :                     SfxBindings& rBindings = GetViewFrame()->GetBindings();
     561           0 :                     rBindings.Invalidate( SID_ATTR_ZOOM );
     562           0 :                     rBindings.Invalidate( SID_ZOOM_IN );
     563           0 :                     rBindings.Invalidate( SID_ZOOM_OUT );
     564           0 :                     rBindings.Invalidate( SID_ATTR_ZOOMSLIDER );
     565             : 
     566             :                 }
     567             :             }
     568             : 
     569           0 :             Cancel();
     570           0 :             rReq.Done ();
     571           0 :             break;
     572             :         }
     573             :         case SID_ZOOMING :  // kein Menueintrag, sondern aus dem Zoomdialog generiert
     574             :         {
     575           0 :             const SfxItemSet* pArgs = rReq.GetArgs();
     576             : 
     577           0 :             if (pArgs)
     578           0 :                 if (pArgs->Count () == 1)
     579             :                 {
     580           0 :                     SFX_REQUEST_ARG (rReq, pScale, SfxUInt32Item, ID_VAL_ZOOM, sal_False);
     581           0 :                     if (CHECK_RANGE (10, pScale->GetValue (), 1000))
     582             :                     {
     583           0 :                         SetZoom (pScale->GetValue ());
     584             : 
     585           0 :                         SfxBindings& rBindings = GetViewFrame()->GetBindings();
     586           0 :                         rBindings.Invalidate( SID_ATTR_ZOOM );
     587           0 :                         rBindings.Invalidate( SID_ZOOM_IN );
     588           0 :                         rBindings.Invalidate( SID_ZOOM_OUT );
     589           0 :                         rBindings.Invalidate( SID_ATTR_ZOOMSLIDER );
     590             :                     }
     591             : #ifndef DISABLE_SCRIPTING
     592           0 :                     else StarBASIC::FatalError (SbERR_BAD_PROP_VALUE);
     593             : #endif
     594           0 :                     rReq.Ignore ();
     595           0 :                     break;
     596             :                 }
     597             : #ifndef DISABLE_SCRIPTING
     598           0 :             StarBASIC::FatalError (SbERR_WRONG_ARGS);
     599             : #endif
     600           0 :             rReq.Ignore ();
     601           0 :             break;
     602             :         }
     603             : 
     604             :         case SID_ATTR_ZOOM:
     605             :         {
     606           0 :             const SfxItemSet* pArgs = rReq.GetArgs();
     607           0 :             mbZoomOnPage = sal_False;
     608             : 
     609           0 :             if ( pArgs )
     610             :             {
     611             :                 SvxZoomType eZT = ( ( const SvxZoomItem& ) pArgs->
     612           0 :                                             Get( SID_ATTR_ZOOM ) ).GetType();
     613           0 :                 switch( eZT )
     614             :                 {
     615             :                     case SVX_ZOOM_PERCENT:
     616             :                         SetZoom( (long) ( ( const SvxZoomItem& ) pArgs->
     617           0 :                                             Get( SID_ATTR_ZOOM ) ).GetValue() );
     618           0 :                         break;
     619             : 
     620             :                     case SVX_ZOOM_OPTIMAL:
     621             :                         GetViewFrame()->GetDispatcher()->Execute( SID_SIZE_ALL,
     622           0 :                                     SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD );
     623           0 :                         break;
     624             : 
     625             :                     case SVX_ZOOM_PAGEWIDTH:
     626             :                         GetViewFrame()->GetDispatcher()->Execute( SID_SIZE_PAGE_WIDTH,
     627           0 :                                     SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD );
     628           0 :                         break;
     629             : 
     630             :                     case SVX_ZOOM_WHOLEPAGE:
     631             :                         GetViewFrame()->GetDispatcher()->Execute( SID_SIZE_PAGE,
     632           0 :                                     SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD );
     633           0 :                         break;
     634             :                     case SVX_ZOOM_PAGEWIDTH_NOBORDER:
     635             :                         OSL_FAIL("sd::DrawViewShell::FuTemporary(), SVX_ZOOM_PAGEWIDTH_NOBORDER not handled!" );
     636           0 :                         break;
     637             :                 }
     638           0 :                 rReq.Ignore ();
     639             :             }
     640             :             else
     641             :             {
     642             :                 // hier den Zoom-Dialog oeffnen
     643           0 :                 SetCurrentFunction( FuScale::Create( this, GetActiveWindow(), mpDrawView, GetDoc(), rReq ) );
     644             :             }
     645           0 :             Cancel();
     646             :         }
     647           0 :         break;
     648             : 
     649             :         case SID_CHANGEBEZIER:
     650             :         case SID_CHANGEPOLYGON:
     651           0 :             if ( mpDrawView->IsTextEdit() )
     652             :             {
     653           0 :                 mpDrawView->SdrEndTextEdit();
     654           0 :                 GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON);
     655             :             }
     656             : 
     657           0 :             if ( mpDrawView->IsPresObjSelected() )
     658             :             {
     659           0 :                 ::sd::Window* pWindow = GetActiveWindow();
     660           0 :                 InfoBox(pWindow, String(SdResId(STR_ACTION_NOTPOSSIBLE) ) ).Execute();
     661             :             }
     662             :             else
     663             :             {
     664           0 :                 if( rReq.GetSlot() == SID_CHANGEBEZIER )
     665             :                 {
     666           0 :                     WaitObject aWait( (Window*)GetActiveWindow() );
     667           0 :                     mpDrawView->ConvertMarkedToPathObj(sal_False);
     668             :                 }
     669             :                 else
     670             :                 {
     671           0 :                     if( mpDrawView->IsVectorizeAllowed() )
     672             :                     {
     673           0 :                         SetCurrentFunction( FuVectorize::Create( this, GetActiveWindow(), mpDrawView, GetDoc(), rReq ) );
     674             :                     }
     675             :                     else
     676             :                     {
     677           0 :                         WaitObject aWait( (Window*)GetActiveWindow() );
     678           0 :                         mpDrawView->ConvertMarkedToPolyObj(sal_False);
     679             :                     }
     680             :                 }
     681             : 
     682           0 :                 Invalidate(SID_CHANGEBEZIER);
     683           0 :                 Invalidate(SID_CHANGEPOLYGON);
     684             :             }
     685           0 :             Cancel();
     686             : 
     687           0 :             if( HasCurrentFunction(SID_BEZIER_EDIT) )
     688             :             {   // ggf. die richtige Editfunktion aktivieren
     689             :                 GetViewFrame()->GetDispatcher()->Execute(SID_SWITCH_POINTEDIT,
     690           0 :                                         SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
     691             :             }
     692           0 :             rReq.Ignore ();
     693           0 :             break;
     694             : 
     695             :         case SID_CONVERT_TO_CONTOUR:
     696           0 :             if ( mpDrawView->IsTextEdit() )
     697             :             {
     698           0 :                 mpDrawView->SdrEndTextEdit();
     699           0 :                 GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON);
     700             :             }
     701             : 
     702           0 :             if ( mpDrawView->IsPresObjSelected() )
     703             :             {
     704           0 :                 ::sd::Window* pWindow = GetActiveWindow();
     705           0 :                 InfoBox(pWindow, String(SdResId(STR_ACTION_NOTPOSSIBLE) ) ).Execute();
     706             :             }
     707             :             else
     708             :             {
     709           0 :                 WaitObject aWait( (Window*)GetActiveWindow() );
     710           0 :                 mpDrawView->ConvertMarkedToPathObj(sal_True);
     711             : 
     712           0 :                 Invalidate(SID_CONVERT_TO_CONTOUR);
     713             :             }
     714           0 :             Cancel();
     715             : 
     716           0 :             rReq.Ignore ();
     717           0 :             break;
     718             : 
     719             :         case SID_CONVERT_TO_METAFILE:
     720             :         case SID_CONVERT_TO_BITMAP:
     721             :         {
     722             :             // End text edit mode when it is active because the metafile or
     723             :             // bitmap that will be created does not support it.
     724           0 :             if ( mpDrawView->IsTextEdit() )
     725             :             {
     726           0 :                 mpDrawView->SdrEndTextEdit();
     727           0 :                 GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON);
     728             :             }
     729             : 
     730           0 :             if ( mpDrawView->IsPresObjSelected(true,true,true) )
     731             :             {
     732           0 :                 ::sd::Window* pWindow = GetActiveWindow();
     733           0 :                 InfoBox(pWindow, String(SdResId(STR_ACTION_NOTPOSSIBLE) ) ).Execute();
     734             :             }
     735             :             else
     736             :             {
     737           0 :                 WaitObject aWait( (Window*)GetActiveWindow() );
     738             : 
     739             :                 // create SdrGrafObj from metafile/bitmap
     740           0 :                 Graphic aGraphic;
     741           0 :                 switch (nSId)
     742             :                 {
     743             :                     case SID_CONVERT_TO_METAFILE:
     744             :                     {
     745             :                         // switch on undo for the next operations
     746           0 :                         mpDrawView->BegUndo( String( SdResId( STR_UNDO_CONVERT_TO_METAFILE )));
     747           0 :                         GDIMetaFile aMetaFile(mpDrawView->GetMarkedObjMetaFile());
     748           0 :                         aGraphic = Graphic(aMetaFile);
     749             :                     }
     750           0 :                     break;
     751             :                     case SID_CONVERT_TO_BITMAP:
     752             :                     {
     753             :                         // switch on undo for the next operations
     754           0 :                         mpDrawView->BegUndo( String( SdResId( STR_UNDO_CONVERT_TO_BITMAP )));
     755           0 :                         bool bDone(false);
     756             : 
     757             :                         // I have to get the image here directly since GetMarkedObjBitmapEx works
     758             :                         // based on Bitmaps, but not on BitmapEx, thus throwing away the alpha
     759             :                         // channel. Argh! GetMarkedObjBitmapEx itself is too widely used to safely
     760             :                         // change that, e.g. in the exchange formats. For now I can only add this
     761             :                         // exception to get good results for Svgs. This is how the code gets more
     762             :                         // and more crowded, at last I made a remark for myself to change this
     763             :                         // as one of the next tasks.
     764           0 :                         if(1 == mpDrawView->GetMarkedObjectCount())
     765             :                         {
     766           0 :                             const SdrGrafObj* pSdrGrafObj = dynamic_cast< const SdrGrafObj* >(mpDrawView->GetMarkedObjectByIndex(0));
     767             : 
     768           0 :                             if(pSdrGrafObj && pSdrGrafObj->isEmbeddedSvg())
     769             :                             {
     770           0 :                                 aGraphic = Graphic(pSdrGrafObj->GetGraphic().getSvgData()->getReplacement());
     771           0 :                                 bDone = true;
     772             :                             }
     773             :                         }
     774             : 
     775           0 :                         if(!bDone)
     776             :                         {
     777           0 :                             aGraphic = Graphic(mpDrawView->GetMarkedObjBitmapEx());
     778             :                         }
     779             :                     }
     780           0 :                     break;
     781             :                 }
     782             : 
     783             :                 // create new object
     784           0 :                 SdrGrafObj* pGraphicObj = new SdrGrafObj (aGraphic);
     785             : 
     786             :                 // get some necessary info and ensure it
     787           0 :                 const SdrMarkList& rMarkList(mpDrawView->GetMarkedObjectList());
     788           0 :                 const sal_uInt32 nMarkCount(rMarkList.GetMarkCount());
     789           0 :                 SdrPageView* pPageView = mpDrawView->GetSdrPageView();
     790             :                 OSL_ENSURE(nMarkCount, "DrawViewShell::FuTemporary: SID_CONVERT_TO_BITMAP with empty selection (!)");
     791             :                 OSL_ENSURE(pPageView, "DrawViewShell::FuTemporary: SID_CONVERT_TO_BITMAP without SdrPageView (!)");
     792             : 
     793             :                 // fit rectangle of new graphic object to selection's mark rect
     794           0 :                 Rectangle aAllMarkedRect;
     795           0 :                 rMarkList.TakeBoundRect(pPageView, aAllMarkedRect);
     796           0 :                 pGraphicObj->SetLogicRect(aAllMarkedRect);
     797             : 
     798             :                 // #i71540# to keep the order, it is necessary to replace the lowest object
     799             :                 // of the selection with the new object. This also means that with multi
     800             :                 // selection, all other objects need to be deleted first
     801           0 :                 SdrMark* pFirstMark = rMarkList.GetMark(0L);
     802           0 :                 SdrObject* pReplacementCandidate = pFirstMark->GetMarkedSdrObj();
     803             : 
     804           0 :                 if(nMarkCount > 1L)
     805             :                 {
     806             :                     // take first object out of selection
     807           0 :                     mpDrawView->MarkObj(pReplacementCandidate, pPageView, true, true);
     808             : 
     809             :                     // clear remaining selection
     810           0 :                     mpDrawView->DeleteMarkedObj();
     811             :                 }
     812             : 
     813             :                 // now replace lowest object with new one
     814           0 :                 mpDrawView->ReplaceObjectAtView(pReplacementCandidate, *pPageView, pGraphicObj);
     815             : 
     816             :                 // switch off undo
     817           0 :                 mpDrawView->EndUndo();
     818             :             }
     819             :         }
     820             : 
     821           0 :         Cancel();
     822             : 
     823           0 :         rReq.Done ();
     824           0 :         break;
     825             : 
     826             :         case SID_SET_DEFAULT:
     827             :         {
     828           0 :             SfxItemSet* pSet = NULL;
     829             : 
     830           0 :             if (mpDrawView->IsTextEdit())
     831             :             {
     832           0 :                 ::Outliner* pOutl = mpDrawView->GetTextEditOutliner();
     833           0 :                 if (pOutl)
     834             :                 {
     835           0 :                     pOutl->RemoveFields(sal_True, (TypeId) SvxURLField::StaticType());
     836             :                 }
     837             : 
     838           0 :                 pSet = new SfxItemSet( GetPool(), EE_ITEMS_START, EE_ITEMS_END );
     839           0 :                 mpDrawView->SetAttributes( *pSet, sal_True );
     840             :             }
     841             :             else
     842             :             {
     843           0 :                 const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
     844           0 :                 sal_uLong nCount = rMarkList.GetMarkCount();
     845             : 
     846             :                 // In diese Liste werden fuer jedes Praesentationsobjekt ein SfxItemSet
     847             :                 // der harten Attribute sowie der UserCall eingetragen, da diese beim nachfolgenden
     848             :                 // mpDrawView->SetAttributes( *pSet, sal_True ) verloren gehen und spaeter restauriert
     849             :                 // werden muessen
     850           0 :                 std::vector<std::pair<SfxItemSet*,SdrObjUserCall*> > aAttrList;
     851           0 :                 SdPage* pPresPage = (SdPage*) mpDrawView->GetSdrPageView()->GetPage();
     852             :                 sal_uLong i;
     853             : 
     854           0 :                 for ( i = 0; i < nCount; i++ )
     855             :                 {
     856           0 :                     SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj();
     857             : 
     858           0 :                     if( pPresPage->IsPresObj( pObj ) )
     859             :                     {
     860           0 :                         SfxItemSet* pNewSet = new SfxItemSet( GetDoc()->GetPool(), SDRATTR_TEXT_MINFRAMEHEIGHT, SDRATTR_TEXT_AUTOGROWHEIGHT, 0 );
     861           0 :                         pNewSet->Put(pObj->GetMergedItemSet());
     862           0 :                         aAttrList.push_back(std::make_pair(pNewSet, pObj->GetUserCall()));
     863             :                     }
     864             :                 }
     865             : 
     866           0 :                 pSet = new SfxItemSet( GetPool() );
     867           0 :                 mpDrawView->SetAttributes( *pSet, sal_True );
     868             : 
     869           0 :                 sal_uLong j = 0;
     870             : 
     871           0 :                 for ( i = 0; i < nCount; i++ )
     872             :                 {
     873           0 :                     SfxStyleSheet* pSheet = NULL;
     874           0 :                     SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj();
     875             : 
     876           0 :                     if (pObj->GetObjIdentifier() == OBJ_TITLETEXT)
     877             :                     {
     878           0 :                         pSheet = mpActualPage->GetStyleSheetForPresObj(PRESOBJ_TITLE);
     879           0 :                         if (pSheet)
     880           0 :                             pObj->SetStyleSheet(pSheet, sal_False);
     881             :                     }
     882           0 :                     else if(pObj->GetObjIdentifier() == OBJ_OUTLINETEXT)
     883             :                     {
     884           0 :                         for (sal_uInt16 nLevel = 1; nLevel < 10; nLevel++)
     885             :                         {
     886           0 :                             pSheet = mpActualPage->GetStyleSheetForPresObj( PRESOBJ_OUTLINE );
     887             :                             DBG_ASSERT(pSheet, "Vorlage fuer Gliederungsobjekt nicht gefunden");
     888           0 :                             if (pSheet)
     889             :                             {
     890           0 :                                 pObj->StartListening(*pSheet);
     891             : 
     892           0 :                                 if( nLevel == 1 )
     893             :                                     // Textrahmen hoert auf StyleSheet der Ebene1
     894           0 :                                     pObj->NbcSetStyleSheet(pSheet, sal_False);
     895             : 
     896             :                             }
     897             :                         }
     898             :                     }
     899             : 
     900           0 :                     if( pPresPage->IsPresObj( pObj ) )
     901             :                     {
     902           0 :                         std::pair<SfxItemSet*,SdrObjUserCall*> &rAttr = aAttrList[j++];
     903             : 
     904           0 :                         SfxItemSet* pNewSet = rAttr.first;
     905           0 :                         SdrObjUserCall* pUserCall = rAttr.second;
     906             : 
     907           0 :                         if ( pNewSet && pNewSet->GetItemState( SDRATTR_TEXT_MINFRAMEHEIGHT ) == SFX_ITEM_ON )
     908             :                         {
     909           0 :                             pObj->SetMergedItem(pNewSet->Get(SDRATTR_TEXT_MINFRAMEHEIGHT));
     910             :                         }
     911             : 
     912           0 :                         if ( pNewSet && pNewSet->GetItemState( SDRATTR_TEXT_AUTOGROWHEIGHT ) == SFX_ITEM_ON )
     913             :                         {
     914           0 :                             pObj->SetMergedItem(pNewSet->Get(SDRATTR_TEXT_AUTOGROWHEIGHT));
     915             :                         }
     916             : 
     917           0 :                         if( pUserCall )
     918           0 :                             pObj->SetUserCall( pUserCall );
     919             : 
     920           0 :                         delete pNewSet;
     921             :                     }
     922           0 :                 }
     923             :             }
     924             : 
     925           0 :             delete pSet;
     926           0 :             Cancel();
     927             :         }
     928           0 :         break;
     929             : 
     930             :         case SID_DELETE_SNAPITEM:
     931             :         {
     932             :             SdrPageView* pPV;
     933           0 :             Point   aMPos = GetActiveWindow()->PixelToLogic( maMousePos );
     934           0 :             sal_uInt16  nHitLog = (sal_uInt16) GetActiveWindow()->PixelToLogic( Size(
     935           0 :                 FuPoor::HITPIX, 0 ) ).Width();
     936             :             sal_uInt16  nHelpLine;
     937             : 
     938           0 :             mbMousePosFreezed = sal_False;
     939             : 
     940           0 :             if( mpDrawView->PickHelpLine( aMPos, nHitLog, *GetActiveWindow(), nHelpLine, pPV) )
     941             :             {
     942           0 :                 pPV->DeleteHelpLine( nHelpLine );
     943             :             }
     944           0 :             Cancel();
     945           0 :             rReq.Ignore ();
     946             :         }
     947           0 :         break;
     948             : 
     949             :         case SID_DELETE_PAGE:
     950             :         case SID_DELETE_MASTER_PAGE:
     951           0 :             DeleteActualPage();
     952           0 :             Cancel();
     953           0 :             rReq.Ignore ();
     954           0 :         break;
     955             : 
     956             :         case SID_DELETE_LAYER:
     957           0 :             DeleteActualLayer();
     958           0 :             Cancel();
     959           0 :             rReq.Ignore ();
     960           0 :         break;
     961             : 
     962             :         case SID_ORIGINAL_SIZE:
     963           0 :             mpDrawView->SetMarkedOriginalSize();
     964           0 :             Cancel();
     965           0 :             rReq.Done();
     966           0 :         break;
     967             : 
     968             :         case SID_DRAW_FONTWORK:
     969             :         case SID_DRAW_FONTWORK_VERTICAL:
     970             :         {
     971           0 :             svx::FontworkBar::execute( mpView, rReq, GetViewFrame()->GetBindings() );       // SJ: can be removed  (I think)
     972           0 :             Cancel();
     973           0 :             rReq.Done();
     974             :         }
     975           0 :         break;
     976             : 
     977             :         case SID_SAVE_GRAPHIC:
     978             :         {
     979           0 :             const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
     980           0 :             if( rMarkList.GetMarkCount() == 1 )
     981             :             {
     982           0 :                 SdrObject* pObj = rMarkList.GetMark( 0 )->GetMarkedSdrObj();
     983           0 :                 if( pObj && pObj->ISA( SdrGrafObj ) && ( (SdrGrafObj*) pObj )->GetGraphicType() == GRAPHIC_BITMAP )
     984             :                 {
     985           0 :                     GraphicObject aGraphicObject( ( (SdrGrafObj*) pObj )->GetGraphicObject() );
     986             :                     {
     987           0 :                         GraphicHelper::ExportGraphic( aGraphicObject.GetGraphic(), String("") );
     988           0 :                     }
     989             :                 }
     990             :             }
     991           0 :             Cancel();
     992           0 :             rReq.Ignore();
     993             :         }
     994           0 :         break;
     995             : 
     996             :         case SID_EXTERNAL_EDIT:
     997             :         {
     998           0 :             const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
     999           0 :             if( rMarkList.GetMarkCount() == 1 )
    1000             :             {
    1001           0 :                 SdrObject* pObj = rMarkList.GetMark( 0 )->GetMarkedSdrObj();
    1002           0 :                 if( pObj && pObj->ISA( SdrGrafObj ) && ( (SdrGrafObj*) pObj )->GetGraphicType() == GRAPHIC_BITMAP )
    1003             :                 {
    1004           0 :                     GraphicObject aGraphicObject( ( (SdrGrafObj*) pObj )->GetGraphicObject() );
    1005           0 :                     SdExternalToolEdit* aExternalToolEdit = new SdExternalToolEdit( mpDrawView, pObj );
    1006           0 :                     aExternalToolEdit->Edit( &aGraphicObject );
    1007             :                 }
    1008             :             }
    1009           0 :             Cancel();
    1010           0 :             rReq.Ignore();
    1011             :         }
    1012           0 :         break;
    1013             : 
    1014             :         case SID_COMPRESS_GRAPHIC:
    1015             :         {
    1016           0 :             const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
    1017           0 :             if( rMarkList.GetMarkCount() == 1 )
    1018             :             {
    1019           0 :                 SdrObject* pObj = rMarkList.GetMark( 0 )->GetMarkedSdrObj();
    1020             : 
    1021           0 :                 if( pObj && pObj->ISA( SdrGrafObj ) && ( (SdrGrafObj*) pObj )->GetGraphicType() == GRAPHIC_BITMAP )
    1022             :                 {
    1023           0 :                     SdrGrafObj* pGraphicObj = (SdrGrafObj*) pObj;
    1024           0 :                     CompressGraphicsDialog dialog( GetParentWindow(), pGraphicObj, GetViewFrame()->GetBindings() );
    1025           0 :                     if ( dialog.Execute() == RET_OK )
    1026             :                     {
    1027           0 :                         SdrGrafObj* pNewObject = dialog.GetCompressedSdrGrafObj();
    1028           0 :                         SdrPageView* pPageView = mpDrawView->GetSdrPageView();
    1029           0 :                         String aUndoString( mpDrawView->GetDescriptionOfMarkedObjects() );
    1030           0 :                         aUndoString += String( " Compress" );
    1031           0 :                         mpDrawView->BegUndo( aUndoString );
    1032           0 :                         mpDrawView->ReplaceObjectAtView( pObj, *pPageView, pNewObject );
    1033           0 :                         mpDrawView->EndUndo();
    1034           0 :                     }
    1035             :                 }
    1036             :             }
    1037           0 :             Cancel();
    1038           0 :             rReq.Ignore();
    1039             :         }
    1040           0 :         break;
    1041             : 
    1042             :         default:
    1043             :         {
    1044             :             // switch Anweisung wegen CLOOKS aufgeteilt. Alle case-Anweisungen die
    1045             :             // eine Fu???? -Funktion aufrufen, sind in die Methode FuTemp01 (drviews8)
    1046             :             // gewandert.
    1047           0 :             FuTemp01(rReq);
    1048             :         }
    1049           0 :         break;
    1050             :     }
    1051             : 
    1052           0 :     if(HasCurrentFunction())
    1053             :     {
    1054           0 :         GetCurrentFunction()->Activate();
    1055             :     }
    1056             : }
    1057             : 
    1058             : 
    1059             : 
    1060             : 
    1061             : /** This method consists basically of three parts:
    1062             :     1. Process the arguments of the SFX request.
    1063             :     2. Use the model to create a new page or duplicate an existing one.
    1064             :     3. Update the tab control and switch to the new page.
    1065             : */
    1066           0 : SdPage* DrawViewShell::CreateOrDuplicatePage (
    1067             :     SfxRequest& rRequest,
    1068             :     PageKind ePageKind,
    1069             :     SdPage* pPage,
    1070             :     const sal_Int32 nInsertPosition)
    1071             : {
    1072           0 :     SdPage* pNewPage = NULL;
    1073           0 :     if (ePageKind == PK_STANDARD && meEditMode != EM_MASTERPAGE)
    1074             :     {
    1075           0 :         if ( mpDrawView->IsTextEdit() )
    1076             :         {
    1077           0 :             mpDrawView->SdrEndTextEdit();
    1078             :         }
    1079           0 :         pNewPage = ViewShell::CreateOrDuplicatePage (rRequest, ePageKind, pPage, nInsertPosition);
    1080             :     }
    1081           0 :     return pNewPage;
    1082             : }
    1083             : 
    1084           9 : } // end of namespace sd
    1085             : 
    1086             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10