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-703
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 ); |
|
|
712 |
|
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 number format |
724 |
aFormat.SetAbsLSpace(rItem.GetTxtLeft() - rOrigLRSpaceItem.GetTxtLeft()); |
725 |
aLRSpaceItem.SetTxtLeft(rOrigLRSpaceItem.GetTxtLeft()); |
726 |
|
727 |
// negative indent goes to the number format, |
728 |
// positive to the lrSpace item |
729 |
if( rItem.GetTxtFirstLineOfst() < 0 ) |
730 |
{ |
731 |
aFormat.SetFirstLineOffset( |
732 |
rItem.GetTxtFirstLineOfst() |
733 |
- rOrigLRSpaceItem.GetTxtFirstLineOfst() |
734 |
+ aFormat.GetCharTextDistance()); |
735 |
aLRSpaceItem.SetTxtFirstLineOfst(0); |
736 |
} |
737 |
else |
738 |
{ |
739 |
aFormat.SetFirstLineOffset(0); |
740 |
aLRSpaceItem.SetTxtFirstLineOfst( |
741 |
rItem.GetTxtFirstLineOfst() |
742 |
- aFormat.GetFirstLineOffset() |
743 |
+ aFormat.GetCharTextDistance()); |
744 |
} |
745 |
|
746 |
SvxNumBulletItem aNumBulletItem(rNumBulletItem); |
747 |
aNumBulletItem.GetNumRule()->SetLevel(nOutlineLevel,aFormat); |
748 |
aEditAttr.Put( aNumBulletItem ); |
749 |
} |
750 |
|
701 |
aEditAttr.Put( aLRSpaceItem ); |
751 |
aEditAttr.Put( aLRSpaceItem ); |
702 |
mpDrawView->SetAttributes( aEditAttr ); |
752 |
mpDrawView->SetAttributes( aEditAttr ); |
703 |
|
753 |
|
Lines 785-790
void DrawViewShell::GetRulerState(SfxItemSet& rSet)
Link Here
|
785 |
SvxLRSpaceItem aLRSpaceItem( rLRSpaceItem.GetLeft(), |
835 |
SvxLRSpaceItem aLRSpaceItem( rLRSpaceItem.GetLeft(), |
786 |
rLRSpaceItem.GetRight(), rLRSpaceItem.GetTxtLeft(), |
836 |
rLRSpaceItem.GetRight(), rLRSpaceItem.GetTxtLeft(), |
787 |
rLRSpaceItem.GetTxtFirstLineOfst(), nId ); |
837 |
rLRSpaceItem.GetTxtFirstLineOfst(), nId ); |
|
|
838 |
|
839 |
const INT16 nOutlineLevel = ((const SfxInt16Item&)aEditAttr.Get( EE_PARA_OUTLLEVEL )).GetValue(); |
840 |
const SvxNumBulletItem& rNumBulletItem = (const SvxNumBulletItem&) aEditAttr.Get( EE_PARA_NUMBULLET ); |
841 |
if( nOutlineLevel != -1 && |
842 |
rNumBulletItem.GetNumRule() && |
843 |
rNumBulletItem.GetNumRule()->GetLevelCount() > nOutlineLevel ) |
844 |
{ |
845 |
const SvxNumberFormat& rFormat = rNumBulletItem.GetNumRule()->GetLevel(nOutlineLevel); |
846 |
aLRSpaceItem.SetTxtLeft(rFormat.GetAbsLSpace() + rLRSpaceItem.GetTxtLeft()); |
847 |
aLRSpaceItem.SetTxtFirstLineOfst( |
848 |
rLRSpaceItem.GetTxtFirstLineOfst() + rFormat.GetFirstLineOffset() |
849 |
- rFormat.GetCharTextDistance()); |
850 |
} |
851 |
|
788 |
rSet.Put( aLRSpaceItem ); |
852 |
rSet.Put( aLRSpaceItem ); |
789 |
|
853 |
|
790 |
Point aPos( aPagePos + maMarkRect.TopLeft() ); |
854 |
Point aPos( aPagePos + maMarkRect.TopLeft() ); |