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