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