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 ---