AreaPropertyPanel.cxx (6a606da0) | AreaPropertyPanel.cxx (86d608b5) |
---|---|
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 --- 301 unchanged lines hidden (view full) --- 310{ 311 const XFillStyle eXFS = (XFillStyle)mpLbFillType->GetSelectEntryPos(); 312 313 if((XFillStyle)meLastXFS != eXFS) 314 { 315 mpLbFillAttr->Clear(); 316 SfxObjectShell* pSh = SfxObjectShell::Current(); 317 const XFillStyleItem aXFillStyleItem(eXFS); | 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 --- 301 unchanged lines hidden (view full) --- 310{ 311 const XFillStyle eXFS = (XFillStyle)mpLbFillType->GetSelectEntryPos(); 312 313 if((XFillStyle)meLastXFS != eXFS) 314 { 315 mpLbFillAttr->Clear(); 316 SfxObjectShell* pSh = SfxObjectShell::Current(); 317 const XFillStyleItem aXFillStyleItem(eXFS); |
318 GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_STYLE, SFX_CALLMODE_RECORD, &aXFillStyleItem, 0L); | |
319 | 318 |
319 // #122676# Do no longer trigger two Execute calls, one for SID_ATTR_FILL_STYLE 320 // and one for setting the fill attribute itself, but add two SfxPoolItems to the 321 // call to get just one action at the SdrObject and to create only one Undo action, too. 322 // Checked that this works in all apps. |
|
320 switch( eXFS ) 321 { 322 case XFILL_NONE: 323 { 324 mpLbFillAttr->Show(); 325 mpToolBoxColor->Hide(); 326 mpLbFillType->Selected(); 327 mpLbFillAttr->Disable(); | 323 switch( eXFS ) 324 { 325 case XFILL_NONE: 326 { 327 mpLbFillAttr->Show(); 328 mpToolBoxColor->Hide(); 329 mpLbFillType->Selected(); 330 mpLbFillAttr->Disable(); |
331 332 // #122676# need to call a single SID_ATTR_FILL_STYLE change 333 GetBindings()->GetDispatcher()->Execute( 334 SID_ATTR_FILL_STYLE, SFX_CALLMODE_RECORD, &aXFillStyleItem, 0L); |
|
328 break; 329 } 330 case XFILL_SOLID: 331 { 332 mpLbFillAttr->Hide(); 333 mpToolBoxColor->Show(); 334 const String aTmpStr; 335 const Color aColor = maLastColor; 336 const XFillColorItem aXFillColorItem( aTmpStr, aColor ); | 335 break; 336 } 337 case XFILL_SOLID: 338 { 339 mpLbFillAttr->Hide(); 340 mpToolBoxColor->Show(); 341 const String aTmpStr; 342 const Color aColor = maLastColor; 343 const XFillColorItem aXFillColorItem( aTmpStr, aColor ); |
337 GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_COLOR, SFX_CALLMODE_RECORD, &aXFillColorItem, 0L); | 344 345 // #122676# change FillStyle and Color in one call 346 GetBindings()->GetDispatcher()->Execute( 347 SID_ATTR_FILL_COLOR, SFX_CALLMODE_RECORD, &aXFillColorItem, &aXFillStyleItem, 0L); |
338 break; 339 } 340 case XFILL_GRADIENT: 341 { 342 mpLbFillAttr->Show(); 343 mpToolBoxColor->Hide(); 344 345 if(pSh && pSh->GetItem(SID_GRADIENT_LIST)) --- 11 unchanged lines hidden (view full) --- 357 if(LISTBOX_ENTRY_NOTFOUND != mnLastPosGradient) 358 { 359 const SvxGradientListItem aItem(*(const SvxGradientListItem*)(pSh->GetItem(SID_GRADIENT_LIST))); 360 361 if(mnLastPosGradient < aItem.GetGradientList()->Count()) 362 { 363 const XGradient aGradient = aItem.GetGradientList()->GetGradient(mnLastPosGradient)->GetGradient(); 364 const XFillGradientItem aXFillGradientItem(mpLbFillAttr->GetEntry(mnLastPosGradient), aGradient); | 348 break; 349 } 350 case XFILL_GRADIENT: 351 { 352 mpLbFillAttr->Show(); 353 mpToolBoxColor->Hide(); 354 355 if(pSh && pSh->GetItem(SID_GRADIENT_LIST)) --- 11 unchanged lines hidden (view full) --- 367 if(LISTBOX_ENTRY_NOTFOUND != mnLastPosGradient) 368 { 369 const SvxGradientListItem aItem(*(const SvxGradientListItem*)(pSh->GetItem(SID_GRADIENT_LIST))); 370 371 if(mnLastPosGradient < aItem.GetGradientList()->Count()) 372 { 373 const XGradient aGradient = aItem.GetGradientList()->GetGradient(mnLastPosGradient)->GetGradient(); 374 const XFillGradientItem aXFillGradientItem(mpLbFillAttr->GetEntry(mnLastPosGradient), aGradient); |
365 GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_GRADIENT, SFX_CALLMODE_RECORD, &aXFillGradientItem, 0L); | 375 376 // #122676# change FillStyle and Gradient in one call 377 GetBindings()->GetDispatcher()->Execute( 378 SID_ATTR_FILL_GRADIENT, SFX_CALLMODE_RECORD, &aXFillGradientItem, &aXFillStyleItem, 0L); |
366 mpLbFillAttr->SelectEntryPos(mnLastPosGradient); 367 } 368 } 369 } 370 else 371 { 372 mpLbFillAttr->Disable(); 373 } --- 19 unchanged lines hidden (view full) --- 393 if(LISTBOX_ENTRY_NOTFOUND != mnLastPosHatch) 394 { 395 const SvxHatchListItem aItem(*(const SvxHatchListItem*)(pSh->GetItem(SID_HATCH_LIST))); 396 397 if(mnLastPosHatch < aItem.GetHatchList()->Count()) 398 { 399 const XHatch aHatch = aItem.GetHatchList()->GetHatch(mnLastPosHatch)->GetHatch(); 400 const XFillHatchItem aXFillHatchItem(mpLbFillAttr->GetSelectEntry(), aHatch); | 379 mpLbFillAttr->SelectEntryPos(mnLastPosGradient); 380 } 381 } 382 } 383 else 384 { 385 mpLbFillAttr->Disable(); 386 } --- 19 unchanged lines hidden (view full) --- 406 if(LISTBOX_ENTRY_NOTFOUND != mnLastPosHatch) 407 { 408 const SvxHatchListItem aItem(*(const SvxHatchListItem*)(pSh->GetItem(SID_HATCH_LIST))); 409 410 if(mnLastPosHatch < aItem.GetHatchList()->Count()) 411 { 412 const XHatch aHatch = aItem.GetHatchList()->GetHatch(mnLastPosHatch)->GetHatch(); 413 const XFillHatchItem aXFillHatchItem(mpLbFillAttr->GetSelectEntry(), aHatch); |
401 GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_HATCH, SFX_CALLMODE_RECORD, &aXFillHatchItem, 0L); | 414 415 // #122676# change FillStyle and Hatch in one call 416 GetBindings()->GetDispatcher()->Execute( 417 SID_ATTR_FILL_HATCH, SFX_CALLMODE_RECORD, &aXFillHatchItem, &aXFillStyleItem, 0L); |
402 mpLbFillAttr->SelectEntryPos(mnLastPosHatch); 403 } 404 } 405 } 406 else 407 { 408 mpLbFillAttr->Disable(); 409 } --- 19 unchanged lines hidden (view full) --- 429 if(LISTBOX_ENTRY_NOTFOUND != mnLastPosBitmap) 430 { 431 const SvxBitmapListItem aItem(*(const SvxBitmapListItem*)(pSh->GetItem(SID_BITMAP_LIST))); 432 433 if(mnLastPosBitmap < aItem.GetBitmapList()->Count()) 434 { 435 const XBitmapEntry* pXBitmapEntry = aItem.GetBitmapList()->GetBitmap(mnLastPosBitmap); 436 const XFillBitmapItem aXFillBitmapItem(mpLbFillAttr->GetSelectEntry(), pXBitmapEntry->GetGraphicObject()); | 418 mpLbFillAttr->SelectEntryPos(mnLastPosHatch); 419 } 420 } 421 } 422 else 423 { 424 mpLbFillAttr->Disable(); 425 } --- 19 unchanged lines hidden (view full) --- 445 if(LISTBOX_ENTRY_NOTFOUND != mnLastPosBitmap) 446 { 447 const SvxBitmapListItem aItem(*(const SvxBitmapListItem*)(pSh->GetItem(SID_BITMAP_LIST))); 448 449 if(mnLastPosBitmap < aItem.GetBitmapList()->Count()) 450 { 451 const XBitmapEntry* pXBitmapEntry = aItem.GetBitmapList()->GetBitmap(mnLastPosBitmap); 452 const XFillBitmapItem aXFillBitmapItem(mpLbFillAttr->GetSelectEntry(), pXBitmapEntry->GetGraphicObject()); |
437 GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_BITMAP, SFX_CALLMODE_RECORD, &aXFillBitmapItem, 0L); | 453 454 // #122676# change FillStyle and Bitmap in one call 455 GetBindings()->GetDispatcher()->Execute( 456 SID_ATTR_FILL_BITMAP, SFX_CALLMODE_RECORD, &aXFillBitmapItem, &aXFillStyleItem, 0L); |
438 mpLbFillAttr->SelectEntryPos(mnLastPosBitmap); 439 } 440 } 441 } 442 else 443 { 444 mpLbFillAttr->Disable(); 445 } --- 22 unchanged lines hidden (view full) --- 468IMPL_LINK( AreaPropertyPanel, SelectFillAttrHdl, ListBox*, pToolBox ) 469{ 470 const XFillStyle eXFS = (XFillStyle)mpLbFillType->GetSelectEntryPos(); 471 const XFillStyleItem aXFillStyleItem(eXFS); 472 SfxObjectShell* pSh = SfxObjectShell::Current(); 473 474 if(pToolBox) 475 { | 457 mpLbFillAttr->SelectEntryPos(mnLastPosBitmap); 458 } 459 } 460 } 461 else 462 { 463 mpLbFillAttr->Disable(); 464 } --- 22 unchanged lines hidden (view full) --- 487IMPL_LINK( AreaPropertyPanel, SelectFillAttrHdl, ListBox*, pToolBox ) 488{ 489 const XFillStyle eXFS = (XFillStyle)mpLbFillType->GetSelectEntryPos(); 490 const XFillStyleItem aXFillStyleItem(eXFS); 491 SfxObjectShell* pSh = SfxObjectShell::Current(); 492 493 if(pToolBox) 494 { |
476 if((XFillStyle) meLastXFS != eXFS) 477 { 478 GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_STYLE, SFX_CALLMODE_RECORD, &aXFillStyleItem, 0L); 479 } | 495 // #122676# dependent from bFillStyleChange, do execute a single or two 496 // changes in one Execute call 497 const bool bFillStyleChange((XFillStyle) meLastXFS != eXFS); |
480 481 switch(eXFS) 482 { 483 case XFILL_SOLID: | 498 499 switch(eXFS) 500 { 501 case XFILL_SOLID: |
484 //{ 485 // //String aTmpStr = mpLbFillAttr->GetSelectEntry(); 486 // //Color aColor = mpLbFillAttr->GetSelectEntryColor(); 487 // //if(aColor.GetColor() == 0 && aTmpStr.Equals(String::CreateFromAscii(""))) 488 // String aTmpStr; 489 // Color aColor = maLastColor; 490 // XFillColorItem aXFillColorItem( aTmpStr, aColor ); 491 // GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_COLOR, SFX_CALLMODE_RECORD, &aXFillColorItem, 0L); 492 // maLastColor = aColor; 493 //} 494 break; 495 | 502 { 503 if(bFillStyleChange) 504 { 505 // #122676# Single FillStyle change call needed here 506 GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_STYLE, SFX_CALLMODE_RECORD, &aXFillStyleItem, 0L); 507 } 508 break; 509 } |
496 case XFILL_GRADIENT: 497 { 498 sal_uInt16 nPos = mpLbFillAttr->GetSelectEntryPos(); 499 500 if(LISTBOX_ENTRY_NOTFOUND == nPos) 501 { 502 nPos = mnLastPosGradient; 503 } 504 505 if(LISTBOX_ENTRY_NOTFOUND != nPos && pSh && pSh->GetItem(SID_GRADIENT_LIST)) 506 { 507 const SvxGradientListItem aItem(*(const SvxGradientListItem*)(pSh->GetItem(SID_GRADIENT_LIST))); 508 509 if(nPos < aItem.GetGradientList()->Count()) 510 { 511 const XGradient aGradient = aItem.GetGradientList()->GetGradient(nPos)->GetGradient(); 512 const XFillGradientItem aXFillGradientItem(mpLbFillAttr->GetSelectEntry(), aGradient); | 510 case XFILL_GRADIENT: 511 { 512 sal_uInt16 nPos = mpLbFillAttr->GetSelectEntryPos(); 513 514 if(LISTBOX_ENTRY_NOTFOUND == nPos) 515 { 516 nPos = mnLastPosGradient; 517 } 518 519 if(LISTBOX_ENTRY_NOTFOUND != nPos && pSh && pSh->GetItem(SID_GRADIENT_LIST)) 520 { 521 const SvxGradientListItem aItem(*(const SvxGradientListItem*)(pSh->GetItem(SID_GRADIENT_LIST))); 522 523 if(nPos < aItem.GetGradientList()->Count()) 524 { 525 const XGradient aGradient = aItem.GetGradientList()->GetGradient(nPos)->GetGradient(); 526 const XFillGradientItem aXFillGradientItem(mpLbFillAttr->GetSelectEntry(), aGradient); |
513 GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_GRADIENT, SFX_CALLMODE_RECORD, &aXFillGradientItem, 0L); | 527 528 // #122676# Change FillStale and Gradinet in one call 529 GetBindings()->GetDispatcher()->Execute( 530 SID_ATTR_FILL_GRADIENT, SFX_CALLMODE_RECORD, &aXFillGradientItem, 531 bFillStyleChange ? &aXFillStyleItem : 0L, 0L); |
514 } 515 } 516 517 if(LISTBOX_ENTRY_NOTFOUND != nPos) 518 { 519 mnLastPosGradient = nPos; 520 } 521 break; --- 10 unchanged lines hidden (view full) --- 532 if(LISTBOX_ENTRY_NOTFOUND != nPos && pSh && pSh->GetItem(SID_HATCH_LIST)) 533 { 534 const SvxHatchListItem aItem(*(const SvxHatchListItem*)(pSh->GetItem(SID_HATCH_LIST))); 535 536 if(nPos < aItem.GetHatchList()->Count()) 537 { 538 const XHatch aHatch = aItem.GetHatchList()->GetHatch(nPos)->GetHatch(); 539 const XFillHatchItem aXFillHatchItem( mpLbFillAttr->GetSelectEntry(), aHatch); | 532 } 533 } 534 535 if(LISTBOX_ENTRY_NOTFOUND != nPos) 536 { 537 mnLastPosGradient = nPos; 538 } 539 break; --- 10 unchanged lines hidden (view full) --- 550 if(LISTBOX_ENTRY_NOTFOUND != nPos && pSh && pSh->GetItem(SID_HATCH_LIST)) 551 { 552 const SvxHatchListItem aItem(*(const SvxHatchListItem*)(pSh->GetItem(SID_HATCH_LIST))); 553 554 if(nPos < aItem.GetHatchList()->Count()) 555 { 556 const XHatch aHatch = aItem.GetHatchList()->GetHatch(nPos)->GetHatch(); 557 const XFillHatchItem aXFillHatchItem( mpLbFillAttr->GetSelectEntry(), aHatch); |
540 GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_HATCH, SFX_CALLMODE_RECORD, &aXFillHatchItem, 0L); | 558 559 // #122676# Change FillStale and Hatch in one call 560 GetBindings()->GetDispatcher()->Execute( 561 SID_ATTR_FILL_HATCH, SFX_CALLMODE_RECORD, &aXFillHatchItem, 562 bFillStyleChange ? &aXFillStyleItem : 0L, 0L); |
541 } 542 } 543 544 if(LISTBOX_ENTRY_NOTFOUND != nPos) 545 { 546 mnLastPosHatch = nPos; 547 } 548 break; --- 10 unchanged lines hidden (view full) --- 559 if(LISTBOX_ENTRY_NOTFOUND != nPos && pSh && pSh->GetItem(SID_BITMAP_LIST)) 560 { 561 const SvxBitmapListItem aItem(*(const SvxBitmapListItem*)(pSh->GetItem(SID_BITMAP_LIST))); 562 563 if(nPos < aItem.GetBitmapList()->Count()) 564 { 565 const XBitmapEntry* pXBitmapEntry = aItem.GetBitmapList()->GetBitmap(nPos); 566 const XFillBitmapItem aXFillBitmapItem(mpLbFillAttr->GetSelectEntry(), pXBitmapEntry->GetGraphicObject()); | 563 } 564 } 565 566 if(LISTBOX_ENTRY_NOTFOUND != nPos) 567 { 568 mnLastPosHatch = nPos; 569 } 570 break; --- 10 unchanged lines hidden (view full) --- 581 if(LISTBOX_ENTRY_NOTFOUND != nPos && pSh && pSh->GetItem(SID_BITMAP_LIST)) 582 { 583 const SvxBitmapListItem aItem(*(const SvxBitmapListItem*)(pSh->GetItem(SID_BITMAP_LIST))); 584 585 if(nPos < aItem.GetBitmapList()->Count()) 586 { 587 const XBitmapEntry* pXBitmapEntry = aItem.GetBitmapList()->GetBitmap(nPos); 588 const XFillBitmapItem aXFillBitmapItem(mpLbFillAttr->GetSelectEntry(), pXBitmapEntry->GetGraphicObject()); |
567 GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_BITMAP, SFX_CALLMODE_RECORD, &aXFillBitmapItem, 0L); | 589 590 // #122676# Change FillStale and Bitmap in one call 591 GetBindings()->GetDispatcher()->Execute( 592 SID_ATTR_FILL_BITMAP, SFX_CALLMODE_RECORD, &aXFillBitmapItem, 593 bFillStyleChange ? &aXFillStyleItem : 0L, 0L); |
568 } 569 } 570 571 if(LISTBOX_ENTRY_NOTFOUND != nPos) 572 { 573 mnLastPosBitmap = nPos; 574 } 575 break; --- 916 unchanged lines hidden --- | 594 } 595 } 596 597 if(LISTBOX_ENTRY_NOTFOUND != nPos) 598 { 599 mnLastPosBitmap = nPos; 600 } 601 break; --- 916 unchanged lines hidden --- |