Lines 40-45
Link Here
|
40 |
#include <svx/protitem.hxx> |
40 |
#include <svx/protitem.hxx> |
41 |
#include <svx/frmdiritem.hxx> |
41 |
#include <svx/frmdiritem.hxx> |
42 |
#include <svx/ruler.hxx> |
42 |
#include <svx/ruler.hxx> |
|
|
43 |
#include <svx/numitem.hxx> |
43 |
#ifndef _SVX_RULERITEM_HXX |
44 |
#ifndef _SVX_RULERITEM_HXX |
44 |
#include <svx/rulritem.hxx> |
45 |
#include <svx/rulritem.hxx> |
45 |
#endif |
46 |
#endif |
Lines 692-705
void DrawViewShell::ExecRuler(SfxRequest& rReq)
Link Here
|
692 |
const SvxLRSpaceItem& rItem = (const SvxLRSpaceItem&) |
693 |
const SvxLRSpaceItem& rItem = (const SvxLRSpaceItem&) |
693 |
pArgs->Get( nId ); |
694 |
pArgs->Get( nId ); |
694 |
|
695 |
|
695 |
SfxItemSet aEditAttr( GetPool(), EE_PARA_LRSPACE, EE_PARA_LRSPACE ); |
696 |
static const USHORT aWhichTable[]= |
|
|
697 |
{ |
698 |
EE_PARA_OUTLLEVEL, EE_PARA_OUTLLEVEL, |
699 |
EE_PARA_LRSPACE, EE_PARA_LRSPACE, |
700 |
EE_PARA_NUMBULLET, EE_PARA_NUMBULLET, |
701 |
0, 0 |
702 |
}; |
703 |
|
704 |
SfxItemSet aEditAttr( GetDoc()->GetPool(), |
705 |
aWhichTable ); |
706 |
mpDrawView->GetAttributes( aEditAttr ); |
696 |
|
707 |
|
697 |
nId = EE_PARA_LRSPACE; |
708 |
nId = EE_PARA_LRSPACE; |
698 |
SvxLRSpaceItem aLRSpaceItem( rItem.GetLeft(), |
709 |
SvxLRSpaceItem aLRSpaceItem( rItem.GetLeft(), |
699 |
rItem.GetRight(), rItem.GetTxtLeft(), |
710 |
rItem.GetRight(), rItem.GetTxtLeft(), |
700 |
rItem.GetTxtFirstLineOfst(), nId ); |
711 |
rItem.GetTxtFirstLineOfst(), nId ); |
701 |
aEditAttr.Put( aLRSpaceItem ); |
712 |
|
702 |
mpDrawView->SetAttributes( aEditAttr ); |
713 |
const INT16 nOutlineLevel = ((const SfxInt16Item&)aEditAttr.Get( EE_PARA_OUTLLEVEL )).GetValue(); |
|
|
714 |
const SvxLRSpaceItem& rOrigLRSpaceItem = (const SvxLRSpaceItem&) aEditAttr.Get( EE_PARA_LRSPACE ); |
715 |
const SvxNumBulletItem& rNumBulletItem = (const SvxNumBulletItem&) aEditAttr.Get( EE_PARA_NUMBULLET ); |
716 |
if( nOutlineLevel != -1 && |
717 |
rNumBulletItem.GetNumRule() && |
718 |
rNumBulletItem.GetNumRule()->GetLevelCount() > nOutlineLevel ) |
719 |
{ |
720 |
const SvxNumberFormat& rFormat = rNumBulletItem.GetNumRule()->GetLevel(nOutlineLevel); |
721 |
SvxNumberFormat aFormat(rFormat); |
722 |
|
723 |
// left margin always controls LRSpace item |
724 |
aLRSpaceItem.SetTxtLeft(rItem.GetTxtLeft() - aFormat.GetAbsLSpace()); |
725 |
|
726 |
// negative first line indent goes to the number |
727 |
// format, positive to the lrSpace item |
728 |
if( rItem.GetTxtFirstLineOfst() < 0 ) |
729 |
{ |
730 |
aFormat.SetFirstLineOffset( |
731 |
rItem.GetTxtFirstLineOfst() |
732 |
- rOrigLRSpaceItem.GetTxtFirstLineOfst() |
733 |
+ aFormat.GetCharTextDistance()); |
734 |
aLRSpaceItem.SetTxtFirstLineOfst(0); |
735 |
} |
736 |
else |
737 |
{ |
738 |
aFormat.SetFirstLineOffset(0); |
739 |
aLRSpaceItem.SetTxtFirstLineOfst( |
740 |
rItem.GetTxtFirstLineOfst() |
741 |
- aFormat.GetFirstLineOffset() |
742 |
+ aFormat.GetCharTextDistance()); |
743 |
} |
744 |
|
745 |
if( rFormat != aFormat ) |
746 |
{ |
747 |
// put all items |
748 |
SvxNumBulletItem aNumBulletItem(rNumBulletItem); |
749 |
aNumBulletItem.GetNumRule()->SetLevel(nOutlineLevel,aFormat); |
750 |
aEditAttr.Put( aNumBulletItem ); |
751 |
aEditAttr.Put( aLRSpaceItem ); |
752 |
mpDrawView->SetAttributes( aEditAttr ); |
753 |
|
754 |
// #92557# Invalidate is missing here |
755 |
Invalidate(SID_ATTR_PARA_LRSPACE); |
756 |
break; |
757 |
} |
758 |
} |
759 |
|
760 |
// only put lrSpace item |
761 |
SfxItemSet aEditAttrReduced( GetDoc()->GetPool(), |
762 |
EE_PARA_LRSPACE, EE_PARA_LRSPACE ); |
763 |
aEditAttrReduced.Put( aLRSpaceItem ); |
764 |
mpDrawView->SetAttributes( aEditAttrReduced ); |
703 |
|
765 |
|
704 |
// #92557# Invalidate is missing here |
766 |
// #92557# Invalidate is missing here |
705 |
Invalidate(SID_ATTR_PARA_LRSPACE); |
767 |
Invalidate(SID_ATTR_PARA_LRSPACE); |
Lines 785-790
void DrawViewShell::GetRulerState(SfxItemSet& rSet)
Link Here
|
785 |
SvxLRSpaceItem aLRSpaceItem( rLRSpaceItem.GetLeft(), |
847 |
SvxLRSpaceItem aLRSpaceItem( rLRSpaceItem.GetLeft(), |
786 |
rLRSpaceItem.GetRight(), rLRSpaceItem.GetTxtLeft(), |
848 |
rLRSpaceItem.GetRight(), rLRSpaceItem.GetTxtLeft(), |
787 |
rLRSpaceItem.GetTxtFirstLineOfst(), nId ); |
849 |
rLRSpaceItem.GetTxtFirstLineOfst(), nId ); |
|
|
850 |
|
851 |
const INT16 nOutlineLevel = ((const SfxInt16Item&)aEditAttr.Get( EE_PARA_OUTLLEVEL )).GetValue(); |
852 |
const SvxNumBulletItem& rNumBulletItem = (const SvxNumBulletItem&) aEditAttr.Get( EE_PARA_NUMBULLET ); |
853 |
if( nOutlineLevel != -1 && |
854 |
rNumBulletItem.GetNumRule() && |
855 |
rNumBulletItem.GetNumRule()->GetLevelCount() > nOutlineLevel ) |
856 |
{ |
857 |
const SvxNumberFormat& rFormat = rNumBulletItem.GetNumRule()->GetLevel(nOutlineLevel); |
858 |
aLRSpaceItem.SetTxtLeft(rFormat.GetAbsLSpace() + rLRSpaceItem.GetTxtLeft()); |
859 |
aLRSpaceItem.SetTxtFirstLineOfst( |
860 |
rLRSpaceItem.GetTxtFirstLineOfst() + rFormat.GetFirstLineOffset() |
861 |
- rFormat.GetCharTextDistance()); |
862 |
} |
863 |
|
788 |
rSet.Put( aLRSpaceItem ); |
864 |
rSet.Put( aLRSpaceItem ); |
789 |
|
865 |
|
790 |
Point aPos( aPagePos + maMarkRect.TopLeft() ); |
866 |
Point aPos( aPagePos + maMarkRect.TopLeft() ); |