summaryrefslogtreecommitdiff
path: root/editeng
diff options
context:
space:
mode:
authorCédric Bosdonnat <cedric.bosdonnat.ooo@free.fr>2012-02-23 13:52:17 +0100
committerMiklos Vajna <vmiklos@suse.cz>2012-02-24 12:06:54 +0100
commite80d2ea82edf686bf92a6988c1a194a5fc5649d0 (patch)
treec9e5e4052c751386fdec263a51993fc4d2f627d4 /editeng
parent8e1dbe2b4b1d36f9994ee23c8d6074d350d17508 (diff)
fdo#45560: Fixed docx textbox borders style and width import
(cherry picked from commits e3e7623bf6cecf0e32912347a58e5a2c7297099d, 2c7a532b7e2b8cf41792292610df96755b131987 and fda2c3639de6b673faf2ccd84b6d4318e592fbf0) Signed-off-by: Miklos Vajna <vmiklos@suse.cz> Conflicts: sw/inc/unoprnms.hxx
Diffstat (limited to 'editeng')
-rwxr-xr-xediteng/inc/editeng/memberids.hrc2
-rw-r--r--editeng/source/items/frmitems.cxx48
2 files changed, 50 insertions, 0 deletions
diff --git a/editeng/inc/editeng/memberids.hrc b/editeng/inc/editeng/memberids.hrc
index fa57ab11793a..b53276ccb6e2 100755
--- a/editeng/inc/editeng/memberids.hrc
+++ b/editeng/inc/editeng/memberids.hrc
@@ -168,6 +168,8 @@
#define MID_RIGHT_BORDER 11
#define MID_TOP_BORDER 12
#define MID_BOTTOM_BORDER 13
+#define LINE_STYLE 14
+#define LINE_WIDTH 15
//BrushItem
#define MID_BACK_COLOR 0
diff --git a/editeng/source/items/frmitems.cxx b/editeng/source/items/frmitems.cxx
index cdf29dee1be1..f01f91e500bc 100644
--- a/editeng/source/items/frmitems.cxx
+++ b/editeng/source/items/frmitems.cxx
@@ -29,6 +29,7 @@
// include ---------------------------------------------------------------
#include <com/sun/star/uno/Any.hxx>
+#include <com/sun/star/drawing/LineStyle.hpp>
#include <com/sun/star/script/XTypeConverter.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/table/ShadowLocation.hpp>
@@ -1918,6 +1919,53 @@ bool SvxBoxItem::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId )
case MID_TOP_BORDER:
nLine = BOX_LINE_TOP;
break;
+ case LINE_STYLE:
+ {
+ drawing::LineStyle eDrawingStyle;
+ rVal >>= eDrawingStyle;
+ editeng::SvxBorderStyle eBorderStyle = editeng::NO_STYLE;
+ switch ( eDrawingStyle )
+ {
+ default:
+ case drawing::LineStyle_NONE:
+ eBorderStyle = editeng::NO_STYLE;
+ break;
+ case drawing::LineStyle_SOLID:
+ eBorderStyle = editeng::SOLID;
+ break;
+ case drawing::LineStyle_DASH:
+ eBorderStyle = editeng::DASHED;
+ break;
+ }
+
+ // Set the line style on all borders
+ const sal_uInt16 aBorders[] = { BOX_LINE_LEFT, BOX_LINE_RIGHT, BOX_LINE_BOTTOM, BOX_LINE_TOP };
+ for (int n(0); n != SAL_N_ELEMENTS(aBorders); ++n)
+ {
+ editeng::SvxBorderLine* pLine = const_cast< editeng::SvxBorderLine* >( GetLine( aBorders[n] ) );
+ pLine->SetStyle( eBorderStyle );
+ }
+ return sal_True;
+ }
+ break;
+ case LINE_WIDTH:
+ {
+ // Set the line width on all borders
+ long nWidth(0);
+ rVal >>= nWidth;
+ if( bConvert )
+ nWidth = MM100_TO_TWIP( nWidth );
+
+ // Set the line Width on all borders
+ const sal_uInt16 aBorders[] = { BOX_LINE_LEFT, BOX_LINE_RIGHT, BOX_LINE_BOTTOM, BOX_LINE_TOP };
+ for (int n(0); n != SAL_N_ELEMENTS(aBorders); ++n)
+ {
+ editeng::SvxBorderLine* pLine = const_cast< editeng::SvxBorderLine* >( GetLine( aBorders[n] ) );
+ pLine->SetWidth( nWidth );
+ }
+ }
+ return sal_True;
+ break;
}
if( bDistMember || nMemberId == BORDER_DISTANCE )