blob: fe723c4c3aebc7c0045bc26c7b2be30a6661f4be [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sd.hxx"
#include "DrawViewShell.hxx"
#include <vcl/metaact.hxx>
#include <sfx2/request.hxx>
#include <sfx2/dispatch.hxx>
#include <vcl/msgbox.hxx>
#include <sfx2/viewfrm.hxx>
#include <svx/svdograf.hxx>
#ifndef _SVXIDS_HXX
#include <svx/svxids.hrc>
#endif
#ifndef _FONTWORK_HXX
#include <svx/fontwork.hxx>
#endif
#ifndef _BMPMASK_HXX
#include <svx/bmpmask.hxx>
#endif
#ifndef _SVX_GALBRWS_HXX
#include <svx/galbrws.hxx>
#endif
#ifndef _IMAPDLG_HXX
#include <svx/imapdlg.hxx>
#endif
#include <svx/SvxColorChildWindow.hxx>
#include <svx/f3dchild.hxx>
#include "optsitem.hxx"
#include <svx/extrusionbar.hxx>
#include <svx/fontworkbar.hxx>
#include <svx/tbxcustomshapes.hxx>
#ifndef _AVMEDIA_MEDIAPLAYER_HXX
#include <avmedia/mediaplayer.hxx>
#endif
#include "app.hrc"
#include "strings.hrc"
#include "glob.hrc"
#include "app.hxx"
#include "animobjs.hxx"
#include "AnimationChildWindow.hxx"
#include "NavigatorChildWindow.hxx"
#include "LayerDialogChildWindow.hxx"
#include "sdresid.hxx"
#include "fupoor.hxx"
#include "fusldlg.hxx"
#include "drawdoc.hxx"
#include "fuexpand.hxx"
#include "fusumry.hxx"
#include "fucushow.hxx"
#include "drawview.hxx"
#include "FrameView.hxx"
#include "Window.hxx"
#include "DrawDocShell.hxx"
#include "framework/FrameworkHelper.hxx"
#include <svx/svdoashp.hxx>
#include <sfx2/sidebar/Sidebar.hxx>
namespace {
static const ::rtl::OUString CustomAnimationPanelId (RTL_CONSTASCII_USTRINGPARAM("CustomAnimationPanel"));
static const ::rtl::OUString SlideTransitionPanelId (RTL_CONSTASCII_USTRINGPARAM("SlideTransitionPanel"));
}
namespace sd {
/*************************************************************************
|*
|* SfxRequests fuer FontWork bearbeiten
|*
\************************************************************************/
void DrawViewShell::ExecFormText(SfxRequest& rReq)
{
// waehrend einer Diashow wird nichts ausgefuehrt!
if(HasCurrentFunction(SID_PRESENTATION))
return;
CheckLineTo (rReq);
const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
if ( rMarkList.GetMarkCount() == 1 && rReq.GetArgs() &&
mpDrawView && !mpDrawView->IsPresObjSelected() )
{
const SfxItemSet& rSet = *rReq.GetArgs();
if ( mpDrawView->IsTextEdit() )
mpDrawView->SdrEndTextEdit();
mpDrawView->SetAttributes(rSet);
}
}
/*************************************************************************
|*
|* Statuswerte fuer FontWork zurueckgeben
|*
\************************************************************************/
void DrawViewShell::GetFormTextState(SfxItemSet& rSet)
{
const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
const SdrObject* pObj = NULL;
SvxFontWorkDialog* pDlg = NULL;
sal_uInt16 nId = SvxFontWorkChildWindow::GetChildWindowId();
if ( GetViewFrame()->HasChildWindow(nId) )
pDlg = (SvxFontWorkDialog*)(GetViewFrame()->GetChildWindow(nId)->GetWindow());
if ( rMarkList.GetMarkCount() == 1 )
pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
const SdrTextObj* pTextObj = dynamic_cast< const SdrTextObj* >(pObj);
const bool bDeactivate(
!pObj ||
!pTextObj ||
!pTextObj->HasText() ||
dynamic_cast< const SdrObjCustomShape* >(pObj)); // #121538# no FontWork for CustomShapes
if(bDeactivate)
{
// automatisches Auf/Zuklappen des FontWork-Dialog; erstmal deaktiviert
// if ( pDlg )
// pDlg->SetActive(sal_False);
rSet.DisableItem(XATTR_FORMTXTSTYLE);
rSet.DisableItem(XATTR_FORMTXTADJUST);
rSet.DisableItem(XATTR_FORMTXTDISTANCE);
rSet.DisableItem(XATTR_FORMTXTSTART);
rSet.DisableItem(XATTR_FORMTXTMIRROR);
rSet.DisableItem(XATTR_FORMTXTHIDEFORM);
rSet.DisableItem(XATTR_FORMTXTOUTLINE);
rSet.DisableItem(XATTR_FORMTXTSHADOW);
rSet.DisableItem(XATTR_FORMTXTSHDWCOLOR);
rSet.DisableItem(XATTR_FORMTXTSHDWXVAL);
rSet.DisableItem(XATTR_FORMTXTSHDWYVAL);
}
else
{
if ( pDlg )
{
// pDlg->SetActive();
pDlg->SetColorTable(GetDoc()->GetColorTableFromSdrModel());
}
SfxItemSet aSet( GetDoc()->GetPool() );
mpDrawView->GetAttributes( aSet );
rSet.Set( aSet );
}
}
/*************************************************************************
|*
|* SfxRequests fuer Animator bearbeiten
|*
\************************************************************************/
void DrawViewShell::ExecAnimationWin( SfxRequest& rReq )
{
// waehrend einer Diashow wird nichts ausgefuehrt!
if (HasCurrentFunction(SID_PRESENTATION))
return;
CheckLineTo (rReq);
sal_uInt16 nSId = rReq.GetSlot();
switch( nSId )
{
case SID_ANIMATOR_INIT:
case SID_ANIMATOR_ADD:
case SID_ANIMATOR_CREATE:
{
AnimationWindow* pAnimWin;
sal_uInt16 nId = AnimationChildWindow::GetChildWindowId();
//((const SfxUInt16Item&)(rReq.GetArgs()->Get(nSId))).GetValue();
pAnimWin = static_cast<AnimationWindow*>(
GetViewFrame()->GetChildWindow(nId)->GetWindow());
if ( pAnimWin )
{
if( nSId == SID_ANIMATOR_ADD )
pAnimWin->AddObj( *mpDrawView );
else if( nSId == SID_ANIMATOR_CREATE )
pAnimWin->CreateAnimObj( *mpDrawView );
}
}
break;
default:
break;
}
}
/*************************************************************************
|*
|* Statuswerte fuer Animator zurueckgeben
|*
|* nValue == 0 -> Kein Button
|* nValue == 1 -> Button 'uebernehmen'
|* nValue == 2 -> Button 'einzeln uebernehmen'
|* nValue == 3 -> Buttons 'uebernehmen' und 'einzeln uebernehmen'
|*
\************************************************************************/
void DrawViewShell::GetAnimationWinState( SfxItemSet& rSet )
{
// Hier koennten Buttons etc. disabled werden
sal_uInt16 nValue;
const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
sal_uLong nMarkCount = rMarkList.GetMarkCount();
if( nMarkCount == 0 )
nValue = 0;
else if( nMarkCount > 1 )
nValue = 3;
else // 1 Objekt
{
const SdrObject* pObj = rMarkList.GetMark( 0 )->GetMarkedSdrObj();
sal_uInt32 nInv = pObj->GetObjInventor();
sal_uInt16 nId = pObj->GetObjIdentifier();
// 1 selektiertes Gruppenobjekt
if( nInv == SdrInventor && nId == OBJ_GRUP )
nValue = 3;
else if( nInv == SdrInventor && nId == OBJ_GRAF ) // Anim. GIF ?
{
sal_uInt16 nCount = 0;
if( ( (SdrGrafObj*) pObj )->IsAnimated() )
nCount = ( (SdrGrafObj*) pObj )->GetGraphic().GetAnimation().Count();
if( nCount > 0 )
nValue = 2;
else
nValue = 1;
}
else
nValue = 1;
}
rSet.Put( SfxUInt16Item( SID_ANIMATOR_STATE, nValue ) );
}
/*************************************************************************
|*
|* Statuswerte fuer SfxChildWindows setzen
|*
\************************************************************************/
void DrawViewShell::SetChildWindowState( SfxItemSet& rSet )
{
// Stati der SfxChild-Windows (Animator, Fontwork etc.)
if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_FONTWORK ) )
{
sal_uInt16 nId = SvxFontWorkChildWindow::GetChildWindowId();
rSet.Put(SfxBoolItem(SID_FONTWORK, GetViewFrame()->HasChildWindow(nId)));
}
if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_COLOR_CONTROL ) )
{
sal_uInt16 nId = SvxColorChildWindow::GetChildWindowId();
rSet.Put(SfxBoolItem(SID_COLOR_CONTROL, GetViewFrame()->HasChildWindow(nId)));
}
if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_ANIMATION_OBJECTS ) )
{
sal_uInt16 nId = AnimationChildWindow::GetChildWindowId();
rSet.Put( SfxBoolItem( SID_ANIMATION_OBJECTS, GetViewFrame()->HasChildWindow( nId ) ) );
}
if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_NAVIGATOR ) )
{
sal_uInt16 nId = SID_NAVIGATOR;
rSet.Put( SfxBoolItem( SID_NAVIGATOR, GetViewFrame()->HasChildWindow( nId ) ) );
}
if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_BMPMASK ) )
{
sal_uInt16 nId = SvxBmpMaskChildWindow::GetChildWindowId();
rSet.Put( SfxBoolItem( SID_BMPMASK, GetViewFrame()->HasChildWindow( nId ) ) );
}
if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GALLERY ) )
{
sal_uInt16 nId = GalleryChildWindow::GetChildWindowId();
rSet.Put( SfxBoolItem( SID_GALLERY, GetViewFrame()->HasChildWindow( nId ) ) );
}
if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_IMAP ) )
{
sal_uInt16 nId = SvxIMapDlgChildWindow::GetChildWindowId();
rSet.Put( SfxBoolItem( SID_IMAP, GetViewFrame()->HasChildWindow( nId ) ) );
}
if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_LAYER_DIALOG_WIN ) )
{
sal_uInt16 nId = LayerDialogChildWindow::GetChildWindowId();
rSet.Put( SfxBoolItem( SID_LAYER_DIALOG_WIN, GetViewFrame()->HasChildWindow( nId ) ) );
}
if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_3D_WIN ) )
{
sal_uInt16 nId = Svx3DChildWindow::GetChildWindowId();
rSet.Put( SfxBoolItem( SID_3D_WIN, GetViewFrame()->HasChildWindow( nId ) ) );
}
if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_AVMEDIA_PLAYER ) )
{
sal_uInt16 nId = ::avmedia::MediaPlayer::GetChildWindowId();
rSet.Put( SfxBoolItem( SID_AVMEDIA_PLAYER, GetViewFrame()->HasChildWindow( nId ) ) );
}
}
/*************************************************************************
|*
|* SfxRequests fuer Pipette bearbeiten
|*
\************************************************************************/
void DrawViewShell::ExecBmpMask( SfxRequest& rReq )
{
// waehrend einer Diashow wird nichts ausgefuehrt!
if (HasCurrentFunction(SID_PRESENTATION))
return;
switch ( rReq.GetSlot() )
{
case ( SID_BMPMASK_PIPETTE ) :
{
mbPipette = ( (const SfxBoolItem&) ( rReq.GetArgs()->
Get( SID_BMPMASK_PIPETTE ) ) ).GetValue();
}
break;
case ( SID_BMPMASK_EXEC ) :
{
SdrGrafObj* pObj = 0;
if( mpDrawView && mpDrawView->GetMarkedObjectList().GetMarkCount() )
pObj = dynamic_cast< SdrGrafObj* >( mpDrawView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj() );
if ( pObj && !mpDrawView->IsTextEdit() )
{
SdrGrafObj* pNewObj = (SdrGrafObj*) pObj->Clone();
sal_Bool bCont = sal_True;
if( pNewObj->IsLinkedGraphic() )
{
QueryBox aQBox( (Window*) GetActiveWindow(), WB_YES_NO | WB_DEF_YES,
String( SdResId( STR_RELEASE_GRAPHICLINK ) ) );
if( RET_YES == aQBox.Execute() )
pNewObj->ReleaseGraphicLink();
else
{
delete pNewObj;
bCont = sal_False;
}
}
if( bCont )
{
const Graphic& rOldGraphic = pNewObj->GetGraphic();
const Graphic aNewGraphic( ( (SvxBmpMask*) GetViewFrame()->GetChildWindow(
SvxBmpMaskChildWindow::GetChildWindowId() )->GetWindow() )->
Mask( rOldGraphic ) );
if( aNewGraphic != rOldGraphic )
{
SdrPageView* pPV = mpDrawView->GetSdrPageView();
pNewObj->SetEmptyPresObj( sal_False );
pNewObj->SetGraphic( ( (SvxBmpMask*) GetViewFrame()->GetChildWindow(
SvxBmpMaskChildWindow::GetChildWindowId() )->GetWindow() )->
Mask( pNewObj->GetGraphic() ) );
String aStr( mpDrawView->GetDescriptionOfMarkedObjects() );
aStr += (sal_Unicode)( ' ' ), aStr += String( SdResId( STR_EYEDROPPER ) );
mpDrawView->BegUndo( aStr );
mpDrawView->ReplaceObjectAtView( pObj, *pPV, pNewObj );
mpDrawView->EndUndo();
}
}
}
}
break;
default:
break;
}
}
/*************************************************************************
|*
|*
|*
\************************************************************************/
void DrawViewShell::GetBmpMaskState( SfxItemSet& rSet )
{
const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
const SdrObject* pObj = NULL;
sal_uInt16 nId = SvxBmpMaskChildWindow::GetChildWindowId();
SvxBmpMask* pDlg = NULL;
sal_Bool bEnable = sal_False;
if ( GetViewFrame()->HasChildWindow( nId ) )
{
pDlg = (SvxBmpMask*) ( GetViewFrame()->GetChildWindow( nId )->GetWindow() );
if ( pDlg->NeedsColorTable() )
pDlg->SetColorTable( GetDoc()->GetColorTableFromSdrModel() );
}
if ( rMarkList.GetMarkCount() == 1 )
pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
// valid graphic object?
if( pObj && pObj->ISA( SdrGrafObj ) &&
!((SdrGrafObj*) pObj)->IsEPS() &&
!mpDrawView->IsTextEdit() )
{
bEnable = sal_True;
}
// put value
rSet.Put( SfxBoolItem( SID_BMPMASK_EXEC, bEnable ) );
}
/*************************************************************************
|*
|* SfxRequests fuer temporaere Funktionen
|*
\************************************************************************/
void DrawViewShell::FuTemp04(SfxRequest& rReq)
{
sal_uInt16 nSId = rReq.GetSlot();
switch( nSId )
{
case SID_FONTWORK:
{
if ( rReq.GetArgs() )
{
GetViewFrame()->SetChildWindow(SvxFontWorkChildWindow::GetChildWindowId(),
((const SfxBoolItem&) (rReq.GetArgs()->
Get(SID_FONTWORK))).GetValue());
}
else
{
GetViewFrame()->ToggleChildWindow( SvxFontWorkChildWindow::GetChildWindowId() );
}
GetViewFrame()->GetBindings().Invalidate(SID_FONTWORK);
Cancel();
rReq.Ignore ();
}
break;
case SID_COLOR_CONTROL:
{
if ( rReq.GetArgs() )
GetViewFrame()->SetChildWindow(SvxColorChildWindow::GetChildWindowId(),
((const SfxBoolItem&) (rReq.GetArgs()->
Get(SID_COLOR_CONTROL))).GetValue());
else
GetViewFrame()->ToggleChildWindow(SvxColorChildWindow::GetChildWindowId() );
GetViewFrame()->GetBindings().Invalidate(SID_COLOR_CONTROL);
Cancel();
rReq.Ignore ();
}
break;
case SID_EXTRUSION_TOOGLE:
case SID_EXTRUSION_TILT_DOWN:
case SID_EXTRUSION_TILT_UP:
case SID_EXTRUSION_TILT_LEFT:
case SID_EXTRUSION_TILT_RIGHT:
case SID_EXTRUSION_3D_COLOR:
case SID_EXTRUSION_DEPTH:
case SID_EXTRUSION_DIRECTION:
case SID_EXTRUSION_PROJECTION:
case SID_EXTRUSION_LIGHTING_DIRECTION:
case SID_EXTRUSION_LIGHTING_INTENSITY:
case SID_EXTRUSION_SURFACE:
case SID_EXTRUSION_DEPTH_FLOATER:
case SID_EXTRUSION_DIRECTION_FLOATER:
case SID_EXTRUSION_LIGHTING_FLOATER:
case SID_EXTRUSION_SURFACE_FLOATER:
case SID_EXTRUSION_DEPTH_DIALOG:
svx::ExtrusionBar::execute( mpDrawView, rReq, GetViewFrame()->GetBindings() );
Cancel();
rReq.Ignore ();
break;
case SID_FONTWORK_SHAPE:
case SID_FONTWORK_SHAPE_TYPE:
case SID_FONTWORK_ALIGNMENT:
case SID_FONTWORK_SAME_LETTER_HEIGHTS:
case SID_FONTWORK_CHARACTER_SPACING:
case SID_FONTWORK_KERN_CHARACTER_PAIRS:
case SID_FONTWORK_GALLERY_FLOATER:
case SID_FONTWORK_CHARACTER_SPACING_FLOATER:
case SID_FONTWORK_ALIGNMENT_FLOATER:
case SID_FONTWORK_CHARACTER_SPACING_DIALOG:
svx::FontworkBar::execute( mpDrawView, rReq, GetViewFrame()->GetBindings() );
Cancel();
rReq.Ignore ();
break;
case SID_BMPMASK:
{
GetViewFrame()->ToggleChildWindow( SvxBmpMaskChildWindow::GetChildWindowId() );
GetViewFrame()->GetBindings().Invalidate( SID_BMPMASK );
Cancel();
rReq.Ignore ();
}
break;
case SID_GALLERY:
{
GetViewFrame()->ToggleChildWindow( GalleryChildWindow::GetChildWindowId() );
GetViewFrame()->GetBindings().Invalidate( SID_GALLERY );
Cancel();
rReq.Ignore ();
}
break;
case SID_NAVIGATOR:
{
if ( rReq.GetArgs() )
GetViewFrame()->SetChildWindow(SID_NAVIGATOR,
((const SfxBoolItem&) (rReq.GetArgs()->
Get(SID_NAVIGATOR))).GetValue());
else
GetViewFrame()->ToggleChildWindow( SID_NAVIGATOR );
GetViewFrame()->GetBindings().Invalidate(SID_NAVIGATOR);
Cancel();
rReq.Ignore ();
}
break;
case SID_ANIMATION_OBJECTS:
{
if ( rReq.GetArgs() )
GetViewFrame()->SetChildWindow(
AnimationChildWindow::GetChildWindowId(),
((const SfxBoolItem&) (rReq.GetArgs()->
Get(SID_ANIMATION_OBJECTS))).GetValue());
else
GetViewFrame()->ToggleChildWindow(
AnimationChildWindow::GetChildWindowId() );
GetViewFrame()->GetBindings().Invalidate(SID_ANIMATION_OBJECTS);
Cancel();
rReq.Ignore ();
}
break;
case SID_CUSTOM_ANIMATION_PANEL:
{
// Make the slide transition panel visible in the sidebar.
::sfx2::sidebar::Sidebar::ShowPanel(
CustomAnimationPanelId,
GetViewFrame()->GetFrame().GetFrameInterface());
Cancel();
rReq.Done ();
}
break;
case SID_SLIDE_TRANSITIONS_PANEL:
{
// Make the slide transition panel visible in the sidebar.
::sfx2::sidebar::Sidebar::ShowPanel(
SlideTransitionPanelId,
GetViewFrame()->GetFrame().GetFrameInterface());
Cancel();
rReq.Done ();
}
break;
case SID_3D_WIN:
{
if ( rReq.GetArgs() )
GetViewFrame()->SetChildWindow( Svx3DChildWindow::GetChildWindowId(),
((const SfxBoolItem&) (rReq.GetArgs()->
Get( SID_3D_WIN ))).GetValue());
else
GetViewFrame()->ToggleChildWindow( Svx3DChildWindow::GetChildWindowId() );
GetViewFrame()->GetBindings().Invalidate( SID_3D_WIN );
Cancel();
rReq.Ignore ();
}
break;
case SID_CONVERT_TO_3D_LATHE_FAST:
{
// Der Aufruf ist ausreichend. Die Initialisierung per Start3DCreation und CreateMirrorPolygons
// ist nicht mehr noetig, falls der Parameter sal_True uebergeben wird. Dann wird sofort und
// ohne Benutzereingriff ein gekippter Rotationskoerper mit einer Achse links neben dem
// Umschliessenden Rechteck der slektierten Objekte gezeichnet.
mpDrawView->SdrEndTextEdit();
if(GetActiveWindow())
GetActiveWindow()->EnterWait();
mpDrawView->End3DCreation(sal_True);
Cancel();
rReq.Ignore();
if(GetActiveWindow())
GetActiveWindow()->LeaveWait();
}
break;
case SID_PRESENTATION_DLG:
{
SetCurrentFunction( FuSlideShowDlg::Create( this, GetActiveWindow(), mpDrawView, GetDoc(), rReq ) );
Cancel();
}
break;
case SID_CUSTOMSHOW_DLG:
{
SetCurrentFunction( FuCustomShowDlg::Create( this, GetActiveWindow(), mpDrawView, GetDoc(), rReq ) );
Cancel();
}
break;
case SID_EXPAND_PAGE:
{
SetCurrentFunction( FuExpandPage::Create( this, GetActiveWindow(), mpDrawView, GetDoc(), rReq ) );
Cancel();
}
break;
case SID_SUMMARY_PAGE:
{
mpDrawView->SdrEndTextEdit();
SetCurrentFunction( FuSummaryPage::Create( this, GetActiveWindow(), mpDrawView, GetDoc(), rReq ) );
Cancel();
}
break;
case SID_AVMEDIA_PLAYER:
{
GetViewFrame()->ToggleChildWindow( ::avmedia::MediaPlayer::GetChildWindowId() );
GetViewFrame()->GetBindings().Invalidate( SID_AVMEDIA_PLAYER );
Cancel();
rReq.Ignore ();
}
break;
case SID_LAYER_DIALOG_WIN:
{
if ( rReq.GetArgs() )
{
GetViewFrame()->SetChildWindow(
LayerDialogChildWindow::GetChildWindowId(),
((const SfxBoolItem&) (rReq.GetArgs()->
Get(SID_LAYER_DIALOG_WIN))).GetValue());
}
else
{
GetViewFrame()->ToggleChildWindow(
LayerDialogChildWindow::GetChildWindowId());
}
GetViewFrame()->GetBindings().Invalidate(SID_LAYER_DIALOG_WIN);
Cancel();
rReq.Ignore ();
}
break;
case SID_DISPLAY_MASTER_BACKGROUND:
case SID_DISPLAY_MASTER_OBJECTS:
{
// Determine current page and toggle visibility of layers
// associated with master page background or master page shapes.
SdPage* pPage = GetActualPage();
if (pPage != NULL
&& GetDoc() != NULL)
{
SetOfByte aVisibleLayers = pPage->TRG_GetMasterPageVisibleLayers();
SdrLayerAdmin& rLayerAdmin = GetDoc()->GetLayerAdmin();
sal_uInt8 aLayerId;
if (nSId == SID_DISPLAY_MASTER_BACKGROUND)
aLayerId = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRND)), sal_False);
else
aLayerId = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRNDOBJ)), sal_False);
aVisibleLayers.Set(aLayerId, !aVisibleLayers.IsSet(aLayerId));
pPage->TRG_SetMasterPageVisibleLayers(aVisibleLayers);
}
Cancel();
rReq.Ignore ();
}
break;
default:
{
DBG_ASSERT( 0, "Slot ohne Funktion" );
Cancel();
rReq.Ignore ();
}
break;
}
}
} // end of namespace sd