xref: /AOO41X/main/sd/source/ui/view/drviews6.cxx (revision 5443dcac4da55ae8863c5c80e8907938642a7f1b)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_sd.hxx"
26 
27 #include "DrawViewShell.hxx"
28 #include <vcl/metaact.hxx>
29 #include <sfx2/request.hxx>
30 #include <sfx2/dispatch.hxx>
31 #include <vcl/msgbox.hxx>
32 #include <sfx2/viewfrm.hxx>
33 #include <svx/svdograf.hxx>
34 #ifndef _SVXIDS_HXX
35 #include <svx/svxids.hrc>
36 #endif
37 #ifndef _FONTWORK_HXX
38 #include <svx/fontwork.hxx>
39 #endif
40 #ifndef _BMPMASK_HXX
41 #include <svx/bmpmask.hxx>
42 #endif
43 #ifndef _SVX_GALBRWS_HXX
44 #include <svx/galbrws.hxx>
45 #endif
46 #ifndef _IMAPDLG_HXX
47 #include <svx/imapdlg.hxx>
48 #endif
49 #include <svx/SvxColorChildWindow.hxx>
50 #include <svx/f3dchild.hxx>
51 #include "optsitem.hxx"
52 #include <svx/extrusionbar.hxx>
53 #include <svx/fontworkbar.hxx>
54 #include <svx/tbxcustomshapes.hxx>
55 #ifndef _AVMEDIA_MEDIAPLAYER_HXX
56 #include <avmedia/mediaplayer.hxx>
57 #endif
58 
59 #include "app.hrc"
60 #include "strings.hrc"
61 #include "glob.hrc"
62 
63 #include "app.hxx"
64 #include "animobjs.hxx"
65 #include "AnimationChildWindow.hxx"
66 #include "NavigatorChildWindow.hxx"
67 #include "LayerDialogChildWindow.hxx"
68 #include "sdresid.hxx"
69 #include "fupoor.hxx"
70 #include "fusldlg.hxx"
71 #include "drawdoc.hxx"
72 #include "fuexpand.hxx"
73 #include "fusumry.hxx"
74 #include "fucushow.hxx"
75 #include "drawview.hxx"
76 #include "FrameView.hxx"
77 #include "Window.hxx"
78 #include "DrawDocShell.hxx"
79 #include "framework/FrameworkHelper.hxx"
80 #include <svx/svdoashp.hxx>
81 
82 namespace sd {
83 
84 /*************************************************************************
85 |*
86 |* SfxRequests fuer FontWork bearbeiten
87 |*
88 \************************************************************************/
89 
90 void DrawViewShell::ExecFormText(SfxRequest& rReq)
91 {
92     // waehrend einer Diashow wird nichts ausgefuehrt!
93     if(HasCurrentFunction(SID_PRESENTATION))
94         return;
95 
96     CheckLineTo (rReq);
97 
98     const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
99 
100     if ( rMarkList.GetMarkCount() == 1 && rReq.GetArgs() &&
101          mpDrawView && !mpDrawView->IsPresObjSelected() )
102     {
103         const SfxItemSet& rSet = *rReq.GetArgs();
104 
105         if ( mpDrawView->IsTextEdit() )
106             mpDrawView->SdrEndTextEdit();
107 
108         mpDrawView->SetAttributes(rSet);
109     }
110 }
111 
112 /*************************************************************************
113 |*
114 |* Statuswerte fuer FontWork zurueckgeben
115 |*
116 \************************************************************************/
117 
118 void DrawViewShell::GetFormTextState(SfxItemSet& rSet)
119 {
120     const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
121     const SdrObject* pObj = NULL;
122     SvxFontWorkDialog* pDlg = NULL;
123 
124     sal_uInt16 nId = SvxFontWorkChildWindow::GetChildWindowId();
125 
126     if ( GetViewFrame()->HasChildWindow(nId) )
127         pDlg = (SvxFontWorkDialog*)(GetViewFrame()->GetChildWindow(nId)->GetWindow());
128 
129     if ( rMarkList.GetMarkCount() == 1 )
130         pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
131 
132     const SdrTextObj* pTextObj = dynamic_cast< const SdrTextObj* >(pObj);
133     const bool bDeactivate(
134         !pObj ||
135         !pTextObj ||
136         !pTextObj->HasText() ||
137         dynamic_cast< const SdrObjCustomShape* >(pObj)); // #121538# no FontWork for CustomShapes
138 
139     if(bDeactivate)
140     {
141 // automatisches Auf/Zuklappen des FontWork-Dialog; erstmal deaktiviert
142 //      if ( pDlg )
143 //          pDlg->SetActive(sal_False);
144 
145         rSet.DisableItem(XATTR_FORMTXTSTYLE);
146         rSet.DisableItem(XATTR_FORMTXTADJUST);
147         rSet.DisableItem(XATTR_FORMTXTDISTANCE);
148         rSet.DisableItem(XATTR_FORMTXTSTART);
149         rSet.DisableItem(XATTR_FORMTXTMIRROR);
150         rSet.DisableItem(XATTR_FORMTXTHIDEFORM);
151         rSet.DisableItem(XATTR_FORMTXTOUTLINE);
152         rSet.DisableItem(XATTR_FORMTXTSHADOW);
153         rSet.DisableItem(XATTR_FORMTXTSHDWCOLOR);
154         rSet.DisableItem(XATTR_FORMTXTSHDWXVAL);
155         rSet.DisableItem(XATTR_FORMTXTSHDWYVAL);
156     }
157     else
158     {
159         if ( pDlg )
160         {
161 //          pDlg->SetActive();
162             pDlg->SetColorTable(GetDoc()->GetColorTableFromSdrModel());
163         }
164 
165         SfxItemSet aSet( GetDoc()->GetPool() );
166         mpDrawView->GetAttributes( aSet );
167         rSet.Set( aSet );
168     }
169 }
170 
171 /*************************************************************************
172 |*
173 |* SfxRequests fuer Animator bearbeiten
174 |*
175 \************************************************************************/
176 
177 void DrawViewShell::ExecAnimationWin( SfxRequest& rReq )
178 {
179     // waehrend einer Diashow wird nichts ausgefuehrt!
180     if (HasCurrentFunction(SID_PRESENTATION))
181         return;
182 
183     CheckLineTo (rReq);
184 
185     sal_uInt16 nSId = rReq.GetSlot();
186 
187     switch( nSId )
188     {
189         case SID_ANIMATOR_INIT:
190         case SID_ANIMATOR_ADD:
191         case SID_ANIMATOR_CREATE:
192         {
193             AnimationWindow* pAnimWin;
194             sal_uInt16 nId = AnimationChildWindow::GetChildWindowId();
195             //((const SfxUInt16Item&)(rReq.GetArgs()->Get(nSId))).GetValue();
196 
197             pAnimWin = static_cast<AnimationWindow*>(
198                 GetViewFrame()->GetChildWindow(nId)->GetWindow());
199 
200             if ( pAnimWin )
201             {
202                 if( nSId == SID_ANIMATOR_ADD )
203                     pAnimWin->AddObj( *mpDrawView );
204                 else if( nSId == SID_ANIMATOR_CREATE )
205                     pAnimWin->CreateAnimObj( *mpDrawView );
206             }
207         }
208         break;
209 
210         default:
211         break;
212     }
213 }
214 
215 /*************************************************************************
216 |*
217 |* Statuswerte fuer Animator zurueckgeben
218 |*
219 |* nValue == 0 -> Kein Button
220 |* nValue == 1 -> Button 'uebernehmen'
221 |* nValue == 2 -> Button 'einzeln uebernehmen'
222 |* nValue == 3 -> Buttons 'uebernehmen' und 'einzeln uebernehmen'
223 |*
224 \************************************************************************/
225 
226 void DrawViewShell::GetAnimationWinState( SfxItemSet& rSet )
227 {
228     // Hier koennten Buttons etc. disabled werden
229     sal_uInt16 nValue;
230 
231     const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
232     sal_uLong nMarkCount = rMarkList.GetMarkCount();
233 
234     if( nMarkCount == 0 )
235         nValue = 0;
236     else if( nMarkCount > 1 )
237         nValue = 3;
238     else // 1 Objekt
239     {
240         const SdrObject* pObj = rMarkList.GetMark( 0 )->GetMarkedSdrObj();
241         sal_uInt32 nInv = pObj->GetObjInventor();
242         sal_uInt16 nId  = pObj->GetObjIdentifier();
243         // 1 selektiertes Gruppenobjekt
244         if( nInv == SdrInventor && nId == OBJ_GRUP )
245             nValue = 3;
246         else if( nInv == SdrInventor && nId == OBJ_GRAF ) // Anim. GIF ?
247         {
248             sal_uInt16 nCount = 0;
249 
250             if( ( (SdrGrafObj*) pObj )->IsAnimated() )
251                 nCount = ( (SdrGrafObj*) pObj )->GetGraphic().GetAnimation().Count();
252             if( nCount > 0 )
253                 nValue = 2;
254             else
255                 nValue = 1;
256         }
257         else
258             nValue = 1;
259     }
260     rSet.Put( SfxUInt16Item( SID_ANIMATOR_STATE, nValue ) );
261 }
262 
263 /*************************************************************************
264 |*
265 |* Statuswerte fuer SfxChildWindows setzen
266 |*
267 \************************************************************************/
268 
269 void DrawViewShell::SetChildWindowState( SfxItemSet& rSet )
270 {
271     // Stati der SfxChild-Windows (Animator, Fontwork etc.)
272     if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_FONTWORK ) )
273     {
274         sal_uInt16 nId = SvxFontWorkChildWindow::GetChildWindowId();
275         rSet.Put(SfxBoolItem(SID_FONTWORK, GetViewFrame()->HasChildWindow(nId)));
276     }
277     if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_COLOR_CONTROL ) )
278     {
279         sal_uInt16 nId = SvxColorChildWindow::GetChildWindowId();
280         rSet.Put(SfxBoolItem(SID_COLOR_CONTROL, GetViewFrame()->HasChildWindow(nId)));
281     }
282     if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_ANIMATION_OBJECTS ) )
283     {
284         sal_uInt16 nId = AnimationChildWindow::GetChildWindowId();
285         rSet.Put( SfxBoolItem( SID_ANIMATION_OBJECTS, GetViewFrame()->HasChildWindow( nId ) ) );
286     }
287     if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_NAVIGATOR ) )
288     {
289         sal_uInt16 nId = SID_NAVIGATOR;
290         rSet.Put( SfxBoolItem( SID_NAVIGATOR, GetViewFrame()->HasChildWindow( nId ) ) );
291     }
292     if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_BMPMASK ) )
293     {
294         sal_uInt16 nId = SvxBmpMaskChildWindow::GetChildWindowId();
295         rSet.Put( SfxBoolItem( SID_BMPMASK, GetViewFrame()->HasChildWindow( nId ) ) );
296     }
297     if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GALLERY ) )
298     {
299         sal_uInt16 nId = GalleryChildWindow::GetChildWindowId();
300         rSet.Put( SfxBoolItem( SID_GALLERY, GetViewFrame()->HasChildWindow( nId ) ) );
301     }
302     if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_IMAP ) )
303     {
304         sal_uInt16 nId = SvxIMapDlgChildWindow::GetChildWindowId();
305         rSet.Put( SfxBoolItem( SID_IMAP, GetViewFrame()->HasChildWindow( nId ) ) );
306     }
307     if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_LAYER_DIALOG_WIN ) )
308     {
309         sal_uInt16 nId = LayerDialogChildWindow::GetChildWindowId();
310         rSet.Put( SfxBoolItem( SID_LAYER_DIALOG_WIN, GetViewFrame()->HasChildWindow( nId ) ) );
311     }
312     if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_3D_WIN ) )
313     {
314         sal_uInt16 nId = Svx3DChildWindow::GetChildWindowId();
315         rSet.Put( SfxBoolItem( SID_3D_WIN, GetViewFrame()->HasChildWindow( nId ) ) );
316     }
317     if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_AVMEDIA_PLAYER ) )
318     {
319         sal_uInt16 nId = ::avmedia::MediaPlayer::GetChildWindowId();
320         rSet.Put( SfxBoolItem( SID_AVMEDIA_PLAYER, GetViewFrame()->HasChildWindow( nId ) ) );
321     }
322 }
323 
324 
325 /*************************************************************************
326 |*
327 |* SfxRequests fuer Pipette bearbeiten
328 |*
329 \************************************************************************/
330 
331 void DrawViewShell::ExecBmpMask( SfxRequest& rReq )
332 {
333     // waehrend einer Diashow wird nichts ausgefuehrt!
334     if (HasCurrentFunction(SID_PRESENTATION))
335         return;
336 
337     switch ( rReq.GetSlot() )
338     {
339         case ( SID_BMPMASK_PIPETTE ) :
340         {
341             mbPipette = ( (const SfxBoolItem&) ( rReq.GetArgs()->
342                        Get( SID_BMPMASK_PIPETTE ) ) ).GetValue();
343         }
344         break;
345 
346         case ( SID_BMPMASK_EXEC ) :
347         {
348             SdrGrafObj* pObj = 0;
349             if( mpDrawView && mpDrawView->GetMarkedObjectList().GetMarkCount() )
350                 pObj = dynamic_cast< SdrGrafObj* >( mpDrawView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj() );
351 
352             if ( pObj && !mpDrawView->IsTextEdit() )
353             {
354                 SdrGrafObj* pNewObj = (SdrGrafObj*) pObj->Clone();
355                 sal_Bool        bCont = sal_True;
356 
357                 if( pNewObj->IsLinkedGraphic() )
358                 {
359                     QueryBox aQBox( (Window*) GetActiveWindow(), WB_YES_NO | WB_DEF_YES,
360                                     String( SdResId( STR_RELEASE_GRAPHICLINK ) ) );
361 
362                     if( RET_YES == aQBox.Execute() )
363                         pNewObj->ReleaseGraphicLink();
364                     else
365                     {
366                         delete pNewObj;
367                         bCont = sal_False;
368                     }
369                 }
370 
371                 if( bCont )
372                 {
373                     const Graphic&  rOldGraphic = pNewObj->GetGraphic();
374                     const Graphic   aNewGraphic( ( (SvxBmpMask*) GetViewFrame()->GetChildWindow(
375                                                  SvxBmpMaskChildWindow::GetChildWindowId() )->GetWindow() )->
376                                                  Mask( rOldGraphic ) );
377 
378                     if( aNewGraphic != rOldGraphic )
379                     {
380                         SdrPageView* pPV = mpDrawView->GetSdrPageView();
381 
382                         pNewObj->SetEmptyPresObj( sal_False );
383                         pNewObj->SetGraphic( ( (SvxBmpMask*) GetViewFrame()->GetChildWindow(
384                                              SvxBmpMaskChildWindow::GetChildWindowId() )->GetWindow() )->
385                                              Mask( pNewObj->GetGraphic() ) );
386 
387                         String aStr( mpDrawView->GetDescriptionOfMarkedObjects() );
388                         aStr += (sal_Unicode)( ' ' ), aStr += String( SdResId( STR_EYEDROPPER ) );
389 
390                         mpDrawView->BegUndo( aStr );
391                         mpDrawView->ReplaceObjectAtView( pObj, *pPV, pNewObj );
392                         mpDrawView->EndUndo();
393                     }
394                 }
395             }
396         }
397         break;
398 
399         default:
400         break;
401     }
402 }
403 
404 /*************************************************************************
405 |*
406 |*
407 |*
408 \************************************************************************/
409 
410 void DrawViewShell::GetBmpMaskState( SfxItemSet& rSet )
411 {
412     const SdrMarkList&  rMarkList = mpDrawView->GetMarkedObjectList();
413     const SdrObject*    pObj = NULL;
414     sal_uInt16              nId = SvxBmpMaskChildWindow::GetChildWindowId();
415     SvxBmpMask*         pDlg = NULL;
416     sal_Bool                bEnable = sal_False;
417 
418     if ( GetViewFrame()->HasChildWindow( nId ) )
419     {
420         pDlg = (SvxBmpMask*) ( GetViewFrame()->GetChildWindow( nId )->GetWindow() );
421 
422         if ( pDlg->NeedsColorTable() )
423             pDlg->SetColorTable( GetDoc()->GetColorTableFromSdrModel() );
424     }
425 
426     if ( rMarkList.GetMarkCount() == 1 )
427         pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
428 
429     // valid graphic object?
430     if( pObj && pObj->ISA( SdrGrafObj ) &&
431         !((SdrGrafObj*) pObj)->IsEPS() &&
432         !mpDrawView->IsTextEdit() )
433     {
434         bEnable = sal_True;
435     }
436 
437     // put value
438     rSet.Put( SfxBoolItem( SID_BMPMASK_EXEC, bEnable ) );
439 }
440 
441 /*************************************************************************
442 |*
443 |* SfxRequests fuer temporaere Funktionen
444 |*
445 \************************************************************************/
446 
447 void DrawViewShell::FuTemp04(SfxRequest& rReq)
448 {
449     sal_uInt16 nSId = rReq.GetSlot();
450     switch( nSId )
451     {
452         case SID_FONTWORK:
453         {
454             if ( rReq.GetArgs() )
455             {
456                 GetViewFrame()->SetChildWindow(SvxFontWorkChildWindow::GetChildWindowId(),
457                                         ((const SfxBoolItem&) (rReq.GetArgs()->
458                                         Get(SID_FONTWORK))).GetValue());
459             }
460             else
461             {
462                 GetViewFrame()->ToggleChildWindow( SvxFontWorkChildWindow::GetChildWindowId() );
463             }
464 
465             GetViewFrame()->GetBindings().Invalidate(SID_FONTWORK);
466             Cancel();
467             rReq.Ignore ();
468         }
469         break;
470 
471         case SID_COLOR_CONTROL:
472         {
473             if ( rReq.GetArgs() )
474                 GetViewFrame()->SetChildWindow(SvxColorChildWindow::GetChildWindowId(),
475                                         ((const SfxBoolItem&) (rReq.GetArgs()->
476                                         Get(SID_COLOR_CONTROL))).GetValue());
477             else
478                 GetViewFrame()->ToggleChildWindow(SvxColorChildWindow::GetChildWindowId() );
479 
480             GetViewFrame()->GetBindings().Invalidate(SID_COLOR_CONTROL);
481             Cancel();
482             rReq.Ignore ();
483         }
484         break;
485 
486         case SID_EXTRUSION_TOOGLE:
487         case SID_EXTRUSION_TILT_DOWN:
488         case SID_EXTRUSION_TILT_UP:
489         case SID_EXTRUSION_TILT_LEFT:
490         case SID_EXTRUSION_TILT_RIGHT:
491         case SID_EXTRUSION_3D_COLOR:
492         case SID_EXTRUSION_DEPTH:
493         case SID_EXTRUSION_DIRECTION:
494         case SID_EXTRUSION_PROJECTION:
495         case SID_EXTRUSION_LIGHTING_DIRECTION:
496         case SID_EXTRUSION_LIGHTING_INTENSITY:
497         case SID_EXTRUSION_SURFACE:
498         case SID_EXTRUSION_DEPTH_FLOATER:
499         case SID_EXTRUSION_DIRECTION_FLOATER:
500         case SID_EXTRUSION_LIGHTING_FLOATER:
501         case SID_EXTRUSION_SURFACE_FLOATER:
502         case SID_EXTRUSION_DEPTH_DIALOG:
503             svx::ExtrusionBar::execute( mpDrawView, rReq, GetViewFrame()->GetBindings() );
504             Cancel();
505             rReq.Ignore ();
506             break;
507 
508         case SID_FONTWORK_SHAPE:
509         case SID_FONTWORK_SHAPE_TYPE:
510         case SID_FONTWORK_ALIGNMENT:
511         case SID_FONTWORK_SAME_LETTER_HEIGHTS:
512         case SID_FONTWORK_CHARACTER_SPACING:
513         case SID_FONTWORK_KERN_CHARACTER_PAIRS:
514         case SID_FONTWORK_GALLERY_FLOATER:
515         case SID_FONTWORK_CHARACTER_SPACING_FLOATER:
516         case SID_FONTWORK_ALIGNMENT_FLOATER:
517         case SID_FONTWORK_CHARACTER_SPACING_DIALOG:
518             svx::FontworkBar::execute( mpDrawView, rReq, GetViewFrame()->GetBindings() );
519             Cancel();
520             rReq.Ignore ();
521             break;
522 
523         case SID_BMPMASK:
524         {
525             GetViewFrame()->ToggleChildWindow( SvxBmpMaskChildWindow::GetChildWindowId() );
526             GetViewFrame()->GetBindings().Invalidate( SID_BMPMASK );
527 
528             Cancel();
529             rReq.Ignore ();
530         }
531         break;
532 
533         case SID_GALLERY:
534         {
535             GetViewFrame()->ToggleChildWindow( GalleryChildWindow::GetChildWindowId() );
536             GetViewFrame()->GetBindings().Invalidate( SID_GALLERY );
537 
538             Cancel();
539             rReq.Ignore ();
540         }
541         break;
542 
543         case SID_NAVIGATOR:
544         {
545             if ( rReq.GetArgs() )
546                 GetViewFrame()->SetChildWindow(SID_NAVIGATOR,
547                                         ((const SfxBoolItem&) (rReq.GetArgs()->
548                                         Get(SID_NAVIGATOR))).GetValue());
549             else
550                 GetViewFrame()->ToggleChildWindow( SID_NAVIGATOR );
551 
552             GetViewFrame()->GetBindings().Invalidate(SID_NAVIGATOR);
553             Cancel();
554             rReq.Ignore ();
555         }
556         break;
557 
558         case SID_ANIMATION_OBJECTS:
559         {
560             if ( rReq.GetArgs() )
561                 GetViewFrame()->SetChildWindow(
562                     AnimationChildWindow::GetChildWindowId(),
563                     ((const SfxBoolItem&) (rReq.GetArgs()->
564                         Get(SID_ANIMATION_OBJECTS))).GetValue());
565             else
566                 GetViewFrame()->ToggleChildWindow(
567                     AnimationChildWindow::GetChildWindowId() );
568 
569             GetViewFrame()->GetBindings().Invalidate(SID_ANIMATION_OBJECTS);
570             Cancel();
571             rReq.Ignore ();
572         }
573         break;
574 
575         case SID_CUSTOM_ANIMATION_PANEL:
576         {
577             // Make the slide transition panel visible (expand it) in the
578             // tool pane.
579             framework::FrameworkHelper::Instance(GetViewShellBase())->RequestSidebarPanel(
580                 framework::FrameworkHelper::msCustomAnimationTaskPanelURL);
581 
582             Cancel();
583             rReq.Done ();
584         }
585         break;
586 
587         case SID_SLIDE_TRANSITIONS_PANEL:
588         {
589             // Make the slide transition panel visible (expand it) in the
590             // tool pane.
591             framework::FrameworkHelper::Instance(GetViewShellBase())->RequestSidebarPanel(
592                 framework::FrameworkHelper::msSlideTransitionTaskPanelURL);
593 
594             Cancel();
595             rReq.Done ();
596         }
597         break;
598 
599         case SID_3D_WIN:
600         {
601             if ( rReq.GetArgs() )
602                 GetViewFrame()->SetChildWindow( Svx3DChildWindow::GetChildWindowId(),
603                                         ((const SfxBoolItem&) (rReq.GetArgs()->
604                                         Get( SID_3D_WIN ))).GetValue());
605             else
606                 GetViewFrame()->ToggleChildWindow( Svx3DChildWindow::GetChildWindowId() );
607 
608             GetViewFrame()->GetBindings().Invalidate( SID_3D_WIN );
609             Cancel();
610             rReq.Ignore ();
611         }
612         break;
613 
614         case SID_CONVERT_TO_3D_LATHE_FAST:
615         {
616             // Der Aufruf ist ausreichend. Die Initialisierung per Start3DCreation und CreateMirrorPolygons
617             // ist nicht mehr noetig, falls der Parameter sal_True uebergeben wird. Dann wird sofort und
618             // ohne Benutzereingriff ein gekippter Rotationskoerper mit einer Achse links neben dem
619             // Umschliessenden Rechteck der slektierten Objekte gezeichnet.
620             mpDrawView->SdrEndTextEdit();
621             if(GetActiveWindow())
622                 GetActiveWindow()->EnterWait();
623             mpDrawView->End3DCreation(sal_True);
624             Cancel();
625             rReq.Ignore();
626             if(GetActiveWindow())
627                 GetActiveWindow()->LeaveWait();
628         }
629         break;
630 
631         case SID_PRESENTATION_DLG:
632         {
633             SetCurrentFunction( FuSlideShowDlg::Create( this, GetActiveWindow(), mpDrawView, GetDoc(), rReq ) );
634             Cancel();
635         }
636         break;
637 
638         case SID_CUSTOMSHOW_DLG:
639         {
640             SetCurrentFunction( FuCustomShowDlg::Create( this, GetActiveWindow(), mpDrawView, GetDoc(), rReq ) );
641             Cancel();
642         }
643         break;
644 
645         case SID_EXPAND_PAGE:
646         {
647             SetCurrentFunction( FuExpandPage::Create( this, GetActiveWindow(), mpDrawView, GetDoc(), rReq ) );
648             Cancel();
649         }
650         break;
651 
652         case SID_SUMMARY_PAGE:
653         {
654             mpDrawView->SdrEndTextEdit();
655             SetCurrentFunction( FuSummaryPage::Create( this, GetActiveWindow(), mpDrawView, GetDoc(), rReq ) );
656             Cancel();
657         }
658         break;
659 
660         case SID_AVMEDIA_PLAYER:
661         {
662             GetViewFrame()->ToggleChildWindow( ::avmedia::MediaPlayer::GetChildWindowId() );
663             GetViewFrame()->GetBindings().Invalidate( SID_AVMEDIA_PLAYER );
664             Cancel();
665             rReq.Ignore ();
666         }
667         break;
668 
669         case SID_LAYER_DIALOG_WIN:
670         {
671             if ( rReq.GetArgs() )
672             {
673                 GetViewFrame()->SetChildWindow(
674                     LayerDialogChildWindow::GetChildWindowId(),
675                     ((const SfxBoolItem&) (rReq.GetArgs()->
676                         Get(SID_LAYER_DIALOG_WIN))).GetValue());
677             }
678             else
679             {
680                 GetViewFrame()->ToggleChildWindow(
681                     LayerDialogChildWindow::GetChildWindowId());
682             }
683 
684             GetViewFrame()->GetBindings().Invalidate(SID_LAYER_DIALOG_WIN);
685             Cancel();
686             rReq.Ignore ();
687         }
688         break;
689 
690         case SID_DISPLAY_MASTER_BACKGROUND:
691         case SID_DISPLAY_MASTER_OBJECTS:
692         {
693             // Determine current page and toggle visibility of layers
694             // associated with master page background or master page shapes.
695             SdPage* pPage = GetActualPage();
696             if (pPage != NULL
697                 && GetDoc() != NULL)
698             {
699                 SetOfByte aVisibleLayers = pPage->TRG_GetMasterPageVisibleLayers();
700                 SdrLayerAdmin& rLayerAdmin = GetDoc()->GetLayerAdmin();
701                 sal_uInt8 aLayerId;
702                 if (nSId == SID_DISPLAY_MASTER_BACKGROUND)
703                     aLayerId = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRND)), sal_False);
704                 else
705                     aLayerId = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRNDOBJ)), sal_False);
706                 aVisibleLayers.Set(aLayerId, !aVisibleLayers.IsSet(aLayerId));
707                 pPage->TRG_SetMasterPageVisibleLayers(aVisibleLayers);
708             }
709             Cancel();
710             rReq.Ignore ();
711         }
712         break;
713 
714         default:
715         {
716             DBG_ASSERT( 0, "Slot ohne Funktion" );
717             Cancel();
718             rReq.Ignore ();
719         }
720         break;
721     }
722 }
723 
724 } // end of namespace sd
725