summaryrefslogtreecommitdiff
path: root/editeng
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@suse.cz>2012-03-08 18:50:59 +0100
committerMiklos Vajna <vmiklos@suse.cz>2012-03-12 18:42:31 +0100
commit6f04bf5e90ff75288dcf75c43843edf798641e3d (patch)
treeb0dd25d30e633d791274c2fd0453d6001d06b8f2 /editeng
parentb7c79fc2efddc38bea2a459d146c2f80300eb34e (diff)
SvxULSpaceItem: implement contextual spacing
Diffstat (limited to 'editeng')
-rwxr-xr-xediteng/inc/editeng/memberids.hrc1
-rw-r--r--editeng/inc/editeng/ulspitem.hxx4
-rw-r--r--editeng/source/items/frmitems.cxx8
3 files changed, 13 insertions, 0 deletions
diff --git a/editeng/inc/editeng/memberids.hrc b/editeng/inc/editeng/memberids.hrc
index b53276ccb6e2..45e059fef8f2 100755
--- a/editeng/inc/editeng/memberids.hrc
+++ b/editeng/inc/editeng/memberids.hrc
@@ -134,6 +134,7 @@
#define MID_LO_MARGIN 4
#define MID_UP_REL_MARGIN 5
#define MID_LO_REL_MARGIN 6
+#define MID_CTX_MARGIN 7
//LRSpaceItem
#define MID_LR_MARGIN 0
diff --git a/editeng/inc/editeng/ulspitem.hxx b/editeng/inc/editeng/ulspitem.hxx
index 7a91db0d4b32..f09a18d0b153 100644
--- a/editeng/inc/editeng/ulspitem.hxx
+++ b/editeng/inc/editeng/ulspitem.hxx
@@ -51,6 +51,7 @@ class EDITENG_DLLPUBLIC SvxULSpaceItem : public SfxPoolItem
{
sal_uInt16 nUpper; // Upper space
sal_uInt16 nLower; // Lower space
+ sal_Bool bContext; // Contextual spacing?
sal_uInt16 nPropUpper, nPropLower; // relative or absolute (=100%)
public:
TYPEINFO();
@@ -83,11 +84,13 @@ public:
void SetUpperValue( const sal_uInt16 nU ) { nUpper = nU; }
void SetLowerValue( const sal_uInt16 nL ) { nLower = nL; }
+ void SetContextValue( const sal_Bool bC ) { bContext = bC; }
void SetPropUpper( const sal_uInt16 nU ) { nPropUpper = nU; }
void SetPropLower( const sal_uInt16 nL ) { nPropLower = nL; }
sal_uInt16 GetUpper() const { return nUpper; }
sal_uInt16 GetLower() const { return nLower; }
+ sal_Bool GetContext() const { return bContext; }
sal_uInt16 GetPropUpper() const { return nPropUpper; }
sal_uInt16 GetPropLower() const { return nPropLower; }
};
@@ -96,6 +99,7 @@ inline SvxULSpaceItem &SvxULSpaceItem::operator=( const SvxULSpaceItem &rCpy )
{
nUpper = rCpy.GetUpper();
nLower = rCpy.GetLower();
+ bContext = rCpy.GetContext();
nPropUpper = rCpy.GetPropUpper();
nPropLower = rCpy.GetPropLower();
return *this;
diff --git a/editeng/source/items/frmitems.cxx b/editeng/source/items/frmitems.cxx
index 849439d0e86a..f38ba5da886f 100644
--- a/editeng/source/items/frmitems.cxx
+++ b/editeng/source/items/frmitems.cxx
@@ -837,6 +837,7 @@ bool SvxULSpaceItem::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const
}
case MID_UP_MARGIN: rVal <<= (sal_Int32)(bConvert ? TWIP_TO_MM100_UNSIGNED(nUpper) : nUpper); break;
case MID_LO_MARGIN: rVal <<= (sal_Int32)(bConvert ? TWIP_TO_MM100_UNSIGNED(nLower) : nLower); break;
+ case MID_CTX_MARGIN: rVal <<= bContext; break;
case MID_UP_REL_MARGIN: rVal <<= (sal_Int16) nPropUpper; break;
case MID_LO_REL_MARGIN: rVal <<= (sal_Int16) nPropLower; break;
}
@@ -849,6 +850,7 @@ bool SvxULSpaceItem::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId )
sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
nMemberId &= ~CONVERT_TWIPS;
sal_Int32 nVal = 0;
+ sal_Bool bVal = 0;
switch( nMemberId )
{
case 0:
@@ -876,6 +878,11 @@ bool SvxULSpaceItem::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId )
return false;
SetLower((sal_uInt16)(bConvert ? MM100_TO_TWIP(nVal) : nVal));
break;
+ case MID_CTX_MARGIN :
+ if (!(rVal >>= bVal))
+ return false;
+ SetContextValue(bVal);
+ break;
case MID_UP_REL_MARGIN:
case MID_LO_REL_MARGIN:
{
@@ -907,6 +914,7 @@ int SvxULSpaceItem::operator==( const SfxPoolItem& rAttr ) const
return ( nUpper == ( (SvxULSpaceItem&)rAttr ).nUpper &&
nLower == ( (SvxULSpaceItem&)rAttr ).nLower &&
+ bContext == ( (SvxULSpaceItem&)rAttr ).bContext &&
nPropUpper == ( (SvxULSpaceItem&)rAttr ).nPropUpper &&
nPropLower == ( (SvxULSpaceItem&)rAttr ).nPropLower );
}