sw/inc/fmtfsize.hxx | 3 +++ sw/inc/unomid.h | 1 + sw/inc/unoprnms.hxx | 1 + sw/source/core/layout/atrfrm.cxx | 16 ++++++++++++++-- sw/source/core/layout/fly.cxx | 9 +++++++-- sw/source/core/unocore/unomap.cxx | 2 ++ 6 files changed, 28 insertions(+), 4 deletions(-)
New commits: commit 7c7fdf3e97bbf2301f9938082d4d44162f4ec3c0 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Wed Jan 29 11:43:43 2014 +0100 swpagerelsize: take care of GetHeightPercentRelation() in SwFlyFrm::CalcRel Layout part, height. Change-Id: Iee239e1a39dd495ee965ac45325a0f7087fdcdfa diff --git a/sw/source/core/layout/fly.cxx b/sw/source/core/layout/fly.cxx index 8f42605..1aa75a5 100644 --- a/sw/source/core/layout/fly.cxx +++ b/sw/source/core/layout/fly.cxx @@ -2487,7 +2487,8 @@ Size SwFlyFrm::CalcRel( const SwFmtFrmSize &rSz ) const // When size is a relative to page size, ignore size of SwBodyFrm. if (rSz.GetWidthPercentRelation() != text::RelOrientation::PAGE_FRAME) nRelWidth = std::min( nRelWidth, pRel->Prt().Width() ); - nRelHeight = std::min( nRelHeight, pRel->Prt().Height() ); + if (rSz.GetHeightPercentRelation() != text::RelOrientation::PAGE_FRAME) + nRelHeight = std::min( nRelHeight, pRel->Prt().Height() ); if( !pRel->IsPageFrm() ) { const SwPageFrm* pPage = FindPageFrm(); @@ -2498,7 +2499,11 @@ Size SwFlyFrm::CalcRel( const SwFmtFrmSize &rSz ) const nRelWidth = std::min( nRelWidth, pPage->Frm().Width() ); else nRelWidth = std::min( nRelWidth, pPage->Prt().Width() ); - nRelHeight = std::min( nRelHeight, pPage->Prt().Height() ); + if (rSz.GetWidthPercentRelation() == text::RelOrientation::PAGE_FRAME) + // Ignore margins of pPage. + nRelHeight = std::min( nRelHeight, pPage->Frm().Height() ); + else + nRelHeight = std::min( nRelHeight, pPage->Prt().Height() ); } } commit 9941687ff16d3a4b393563006ca4bdee5409fdbb Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Wed Jan 29 11:18:15 2014 +0100 swpagerelsize: implement RelativeHeightRelation UNO property for SwXFrame UNO API, height. Change-Id: Ie61fb7f6de42b9dfb8b8f6f0982239d1c30f84ab diff --git a/sw/inc/unoprnms.hxx b/sw/inc/unoprnms.hxx index d0db5b0..369d3d3 100644 --- a/sw/inc/unoprnms.hxx +++ b/sw/inc/unoprnms.hxx @@ -211,6 +211,7 @@ #define UNO_NAME_RELATIVE_WIDTH "RelativeWidth" #define UNO_NAME_RELATIVE_WIDTH_RELATION "RelativeWidthRelation" #define UNO_NAME_RELATIVE_HEIGHT "RelativeHeight" +#define UNO_NAME_RELATIVE_HEIGHT_RELATION "RelativeHeightRelation" #define UNO_NAME_REPEAT_HEADLINE "RepeatHeadline" #define UNO_NAME_SEARCH_STYLES "SearchStyles" #define UNO_NAME_SEARCH_BACKWARDS "SearchBackwards" diff --git a/sw/source/core/unocore/unomap.cxx b/sw/source/core/unocore/unomap.cxx index 0f69154..a8b15f5 100644 --- a/sw/source/core/unocore/unomap.cxx +++ b/sw/source/core/unocore/unomap.cxx @@ -371,6 +371,7 @@ SwUnoPropertyMapProvider::~SwUnoPropertyMapProvider() { OUString(UNO_NAME_POSITION_PROTECTED), RES_PROTECT, cppu::UnoType<bool>::get(), PROPERTY_NONE, MID_PROTECT_POSITION}, \ { OUString(UNO_NAME_PRINT), RES_PRINT, cppu::UnoType<bool>::get(), PROPERTY_NONE, 0}, \ { OUString(UNO_NAME_RELATIVE_HEIGHT), RES_FRM_SIZE, cppu::UnoType<sal_Int16>::get() , PROPERTY_NONE, MID_FRMSIZE_REL_HEIGHT }, \ + { OUString(UNO_NAME_RELATIVE_HEIGHT_RELATION), RES_FRM_SIZE, cppu::UnoType<sal_Int16>::get() , PROPERTY_NONE, MID_FRMSIZE_REL_HEIGHT_RELATION }, \ { OUString(UNO_NAME_RELATIVE_WIDTH), RES_FRM_SIZE, cppu::UnoType<sal_Int16>::get() , PROPERTY_NONE, MID_FRMSIZE_REL_WIDTH }, \ { OUString(UNO_NAME_RELATIVE_WIDTH_RELATION), RES_FRM_SIZE, cppu::UnoType<sal_Int16>::get() , PROPERTY_NONE, MID_FRMSIZE_REL_WIDTH_RELATION }, \ { OUString(UNO_NAME_SHADOW_FORMAT), RES_SHADOW, cppu::UnoType<css::table::ShadowFormat>::get(), PROPERTY_NONE, CONVERT_TWIPS}, \ @@ -828,6 +829,7 @@ const SfxItemPropertyMapEntry* SwUnoPropertyMapProvider::GetPropertyMapEntries(s { OUString(UNO_NAME_WIDTH), RES_FRM_SIZE, cppu::UnoType<sal_Int32>::get() , PROPERTY_NONE, MID_FRMSIZE_WIDTH|CONVERT_TWIPS }, { OUString(UNO_NAME_HEIGHT), RES_FRM_SIZE, cppu::UnoType<sal_Int32>::get() , PROPERTY_NONE, MID_FRMSIZE_HEIGHT|CONVERT_TWIPS }, { OUString(UNO_NAME_RELATIVE_HEIGHT), RES_FRM_SIZE, cppu::UnoType<sal_Int16>::get() , PROPERTY_NONE, MID_FRMSIZE_REL_HEIGHT }, + { OUString(UNO_NAME_RELATIVE_HEIGHT_RELATION), RES_FRM_SIZE, cppu::UnoType<sal_Int16>::get(), PROPERTY_NONE, MID_FRMSIZE_REL_HEIGHT_RELATION }, { OUString(UNO_NAME_RELATIVE_WIDTH), RES_FRM_SIZE, cppu::UnoType<sal_Int16>::get() , PROPERTY_NONE, MID_FRMSIZE_REL_WIDTH }, { OUString(UNO_NAME_RELATIVE_WIDTH_RELATION), RES_FRM_SIZE, cppu::UnoType<sal_Int16>::get() , PROPERTY_NONE, MID_FRMSIZE_REL_WIDTH_RELATION }, { OUString(UNO_NAME_SIZE_TYPE), RES_FRM_SIZE, cppu::UnoType<sal_Int16>::get() , PROPERTY_NONE, MID_FRMSIZE_SIZE_TYPE }, commit 6dc71a690a8282d028419a662b5bb72ac97a951b Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Wed Jan 29 10:55:42 2014 +0100 swpagerelsize: add an eHeightPercentRelation member to SwFmtFrmSize This is the doc model part, height. Change-Id: I99eb4cadc2bd5f2025bc1b8793d4eede5b106d72 diff --git a/sw/inc/fmtfsize.hxx b/sw/inc/fmtfsize.hxx index 2b1622e..d9af054 100644 --- a/sw/inc/fmtfsize.hxx +++ b/sw/inc/fmtfsize.hxx @@ -46,6 +46,7 @@ class SW_DLLPUBLIC SwFmtFrmSize: public SfxPoolItem sal_uInt8 nWidthPercent; sal_Int16 eWidthPercentRelation; sal_uInt8 nHeightPercent; + sal_Int16 eHeightPercentRelation; // For tables: width can be given in percent. @@ -91,9 +92,11 @@ public: void SetWidth ( const SwTwips nNew ) { aSize.Width() = nNew; } sal_uInt8 GetHeightPercent() const{ return nHeightPercent; } + sal_Int16 GetHeightPercentRelation() const { return eHeightPercentRelation; } sal_uInt8 GetWidthPercent() const { return nWidthPercent; } sal_Int16 GetWidthPercentRelation() const { return eWidthPercentRelation; } void SetHeightPercent( sal_uInt8 n ) { nHeightPercent = n; } + void SetHeightPercentRelation ( sal_Int16 n ) { eHeightPercentRelation = n; } void SetWidthPercent ( sal_uInt8 n ) { nWidthPercent = n; } void SetWidthPercentRelation ( sal_Int16 n ) { eWidthPercentRelation = n; } }; diff --git a/sw/inc/unomid.h b/sw/inc/unomid.h index 56956fb..11d14c9 100644 --- a/sw/inc/unomid.h +++ b/sw/inc/unomid.h @@ -85,6 +85,7 @@ #define MID_FRMSIZE_IS_SYNC_HEIGHT_TO_WIDTH 13 #define MID_FRMSIZE_WIDTH_TYPE 14 #define MID_FRMSIZE_REL_WIDTH_RELATION 15 +#define MID_FRMSIZE_REL_HEIGHT_RELATION 16 #define MID_COLUMNS 0 #define MID_COLUMN_SEPARATOR_LINE 1 diff --git a/sw/source/core/layout/atrfrm.cxx b/sw/source/core/layout/atrfrm.cxx index 038a4a1..e8cbaad 100644 --- a/sw/source/core/layout/atrfrm.cxx +++ b/sw/source/core/layout/atrfrm.cxx @@ -176,7 +176,7 @@ SwFmtFrmSize::SwFmtFrmSize( SwFrmSize eSize, SwTwips nWidth, SwTwips nHeight ) eFrmHeightType( eSize ), eFrmWidthType( ATT_FIX_SIZE ) { - nWidthPercent = eWidthPercentRelation = nHeightPercent = 0; + nWidthPercent = eWidthPercentRelation = nHeightPercent = eHeightPercentRelation = 0; } SwFmtFrmSize& SwFmtFrmSize::operator=( const SwFmtFrmSize& rCpy ) @@ -185,6 +185,7 @@ SwFmtFrmSize& SwFmtFrmSize::operator=( const SwFmtFrmSize& rCpy ) eFrmHeightType = rCpy.GetHeightSizeType(); eFrmWidthType = rCpy.GetWidthSizeType(); nHeightPercent = rCpy.GetHeightPercent(); + eHeightPercentRelation = rCpy.GetHeightPercentRelation(); nWidthPercent = rCpy.GetWidthPercent(); eWidthPercentRelation = rCpy.GetWidthPercentRelation(); return *this; @@ -198,7 +199,8 @@ bool SwFmtFrmSize::operator==( const SfxPoolItem& rAttr ) const aSize == ((SwFmtFrmSize&)rAttr).GetSize()&& nWidthPercent == ((SwFmtFrmSize&)rAttr).GetWidthPercent() && eWidthPercentRelation == ((SwFmtFrmSize&)rAttr).GetWidthPercentRelation() && - nHeightPercent == ((SwFmtFrmSize&)rAttr).GetHeightPercent() ); + nHeightPercent == ((SwFmtFrmSize&)rAttr).GetHeightPercent() && + eHeightPercentRelation == ((SwFmtFrmSize&)rAttr).GetHeightPercentRelation() ); } SfxPoolItem* SwFmtFrmSize::Clone( SfxItemPool* ) const @@ -223,6 +225,9 @@ bool SwFmtFrmSize::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const case MID_FRMSIZE_REL_HEIGHT: rVal <<= (sal_Int16)(GetHeightPercent() != 0xFF ? GetHeightPercent() : 0); break; + case MID_FRMSIZE_REL_HEIGHT_RELATION: + rVal <<= GetHeightPercentRelation(); + break; case MID_FRMSIZE_REL_WIDTH: rVal <<= (sal_Int16)(GetWidthPercent() != 0xFF ? GetWidthPercent() : 0); break; @@ -304,6 +309,13 @@ bool SwFmtFrmSize::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId ) bRet = false; } break; + case MID_FRMSIZE_REL_HEIGHT_RELATION: + { + sal_Int16 eSet = 0; + rVal >>= eSet; + SetHeightPercentRelation(eSet); + } + break; case MID_FRMSIZE_REL_WIDTH: { sal_Int16 nSet = 0; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits