diff options
author | Petr Mladek <pmladek@suse.cz> | 2011-04-05 20:06:07 +0200 |
---|---|---|
committer | Petr Mladek <pmladek@suse.cz> | 2011-04-05 20:06:07 +0200 |
commit | 1e84a9292f87ad9c52fa5fadac4b656250713777 (patch) | |
tree | b867eca6ce5dbef4ee82091d5441546c06d34efc /editeng | |
parent | f048183de102118b190a8cd7026ab020529a4db5 (diff) | |
parent | c82fb9b9ceec701f49024c9fd3c3de146fae9588 (diff) |
Merge remote-tracking branch 'origin/libreoffice-3-3' into libreoffice-3-4
Conflicts:
basic/source/runtime/dllmgr.cxx
drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
editeng/inc/editeng/boxitem.hxx
editeng/source/items/frmitems.cxx
sfx2/workben/custompanel/makefile.mk
Diffstat (limited to 'editeng')
-rw-r--r-- | editeng/inc/editeng/boxitem.hxx | 1 | ||||
-rw-r--r-- | editeng/source/items/frmitems.cxx | 59 |
2 files changed, 57 insertions, 3 deletions
diff --git a/editeng/inc/editeng/boxitem.hxx b/editeng/inc/editeng/boxitem.hxx index 46597705fc92..c3c88345e21c 100644 --- a/editeng/inc/editeng/boxitem.hxx +++ b/editeng/inc/editeng/boxitem.hxx @@ -109,6 +109,7 @@ public: static com::sun::star::table::BorderLine2 SvxLineToLine( const editeng::SvxBorderLine* pLine, sal_Bool bConvert ); static sal_Bool LineToSvxLine(const ::com::sun::star::table::BorderLine& rLine, editeng::SvxBorderLine& rSvxLine, sal_Bool bConvert); static sal_Bool LineToSvxLine(const ::com::sun::star::table::BorderLine2& rLine, editeng::SvxBorderLine& rSvxLine, sal_Bool bConvert); + static sal_Bool LineToSvxLine(const ::com::sun::star::table::BorderLine2& rLine, SvxBorderLine& rSvxLine, sal_Bool bConvert); }; inline void SvxBoxItem::SetDistance( sal_uInt16 nNew ) diff --git a/editeng/source/items/frmitems.cxx b/editeng/source/items/frmitems.cxx index 6f2a8ca1989c..ca3163c1b079 100644 --- a/editeng/source/items/frmitems.cxx +++ b/editeng/source/items/frmitems.cxx @@ -1743,17 +1743,31 @@ lcl_lineToSvxLine(const table::BorderLine& rLine, SvxBorderLine& rSvxLine, sal_B } -// ----------------------------------------------------------------------- -sal_Bool SvxBoxItem::LineToSvxLine(const ::com::sun::star::table::BorderLine& rLine, SvxBorderLine& rSvxLine, sal_Bool bConvert) +namespace +{ + +sal_Bool +lcl_lineToSvxLine(const table::BorderLine& rLine, SvxBorderLine& rSvxLine, sal_Bool bConvert) { return lcl_lineToSvxLine(rLine, rSvxLine, bConvert, sal_True); } + return bRet; +} sal_Bool SvxBoxItem::LineToSvxLine(const ::com::sun::star::table::BorderLine2& rLine, SvxBorderLine& rSvxLine, sal_Bool bConvert) +// ----------------------------------------------------------------------- +sal_Bool SvxBoxItem::LineToSvxLine(const ::com::sun::star::table::BorderLine& rLine, SvxBorderLine& rSvxLine, sal_Bool bConvert) { SvxBorderStyle nStyle = NO_STYLE; switch ( rLine.LineStyle ) + +sal_Bool +SvxBoxItem::LineToSvxLine(const ::com::sun::star::table::BorderLine2& rLine, SvxBorderLine& rSvxLine, sal_Bool bConvert) +{ + const bool bRet(lcl_lineToSvxLine(rLine, rSvxLine, bConvert)); + + switch ( rLine.LineStyle ) { default: case table::BorderLineStyle::SOLID: @@ -1806,7 +1820,6 @@ SvxBoxItem::LineToSvxLine(const ::com::sun::star::table::BorderLine2& rLine, Svx { rSvxLine.SetWidth( bConvert? MM100_TO_TWIP_UNSIGNED( rLine.LineWidth ) : rLine.LineWidth ); bGuessWidth = sal_False; - } return lcl_lineToSvxLine(rLine, rSvxLine, bConvert, bGuessWidth); } @@ -1838,6 +1851,46 @@ lcl_extractBorderLine(const uno::Any& rAny, table::BorderLine2& rLine) template<typename Item> bool +lcl_setLine(const uno::Any& rAny, Item& rItem, USHORT nLine, const bool bConvert) +{ + bool bDone = false; + table::BorderLine2 aBorderLine; + if (lcl_extractBorderLine(rAny, aBorderLine)) + { + SvxBorderLine aLine; + bool bSet = SvxBoxItem::LineToSvxLine(aBorderLine, aLine, bConvert); + rItem.SetLine( bSet ? &aLine : NULL, nLine); + bDone = true; + } + return bDone; +} + +} + +{ + +bool +lcl_extractBorderLine(const uno::Any& rAny, table::BorderLine2& rLine) +{ + if (rAny >>= rLine) + return true; + + table::BorderLine aBorderLine; + if (rAny >>= aBorderLine) + { + rLine.Color = aBorderLine.Color; + rLine.InnerLineWidth = aBorderLine.InnerLineWidth; + rLine.OuterLineWidth = aBorderLine.OuterLineWidth; + rLine.LineDistance = aBorderLine.LineDistance; + rLine.LineStyle = table::BorderLineStyle::SOLID; + return true; + } + + return false; +} + +template<typename Item> +bool lcl_setLine(const uno::Any& rAny, Item& rItem, sal_uInt16 nLine, const bool bConvert) { bool bDone = false; |