diff options
author | Cédric Bosdonnat <cedricbosdo@openoffice.org> | 2011-02-18 09:56:56 +0100 |
---|---|---|
committer | Cédric Bosdonnat <cedricbosdo@openoffice.org> | 2011-03-19 15:33:12 +0100 |
commit | 07106d13bd5af54ce6021119207df367b7708ebc (patch) | |
tree | e5742e170d1f5faa84d0a782a63dcf84bc15c17e /sw | |
parent | 7382abd40503f384e73b3cbb806addc4c8952257 (diff) |
Fixed HTML filters to work with new borders
Diffstat (limited to 'sw')
-rw-r--r-- | sw/source/filter/html/css1atr.cxx | 58 | ||||
-rw-r--r-- | sw/source/filter/html/svxcss1.cxx | 48 |
2 files changed, 70 insertions, 36 deletions
diff --git a/sw/source/filter/html/css1atr.cxx b/sw/source/filter/html/css1atr.cxx index c6bcc0cb50f1..49b3af998897 100644 --- a/sw/source/filter/html/css1atr.cxx +++ b/sw/source/filter/html/css1atr.cxx @@ -3533,20 +3533,13 @@ static void OutCSS1_SvxBorderLine( SwHTMLWriter& rHTMLWrt, const sal_Char *pProperty, const SvxBorderLine *pLine ) { - if( !pLine ) + if( !pLine || pLine->isEmpty() ) { rHTMLWrt.OutCSS1_PropertyAscii( pProperty, sCSS1_PV_none ); return; } - sal_Bool bDouble = sal_False; - sal_Int32 nWidth = pLine->GetOutWidth(); - if( pLine->GetInWidth() ) - { - nWidth += pLine->GetDistance(); - nWidth += pLine->GetInWidth(); - bDouble = sal_True; - } + sal_Int32 nWidth = pLine->GetWidth(); ByteString sOut; if( Application::GetDefaultDevice() && @@ -3570,21 +3563,40 @@ static void OutCSS1_SvxBorderLine( SwHTMLWriter& rHTMLWrt, // Linien-Stil: solid oder double sOut += ' '; - if ( bDouble ) - sOut += sCSS1_PV_double; - else + switch ( pLine->GetStyle( ) ) { - switch ( pLine->GetStyle( ) ) - { - case DOTTED: - sOut += sCSS1_PV_dotted; - break; - case DASHED: - sOut += sCSS1_PV_dashed; - break; - default: - sOut += sCSS1_PV_solid; - } + case SOLID: + sOut += sCSS1_PV_solid; + break; + case DOTTED: + sOut += sCSS1_PV_dotted; + break; + case DASHED: + sOut += sCSS1_PV_dashed; + break; + case DOUBLE: + case THINTHICK_SMALLGAP: + case THINTHICK_MEDIUMGAP: + case THINTHICK_LARGEGAP: + case THICKTHIN_SMALLGAP: + case THICKTHIN_MEDIUMGAP: + case THICKTHIN_LARGEGAP: + sOut += sCSS1_PV_double; + break; + case EMBOSSED: + sOut += sCSS1_PV_ridge; + break; + case ENGRAVED: + sOut += sCSS1_PV_groove; + break; + case INSET: + sOut += sCSS1_PV_inset; + break; + case OUTSET: + sOut += sCSS1_PV_outset; + break; + default: + sOut += sCSS1_PV_none; } sOut += ' '; diff --git a/sw/source/filter/html/svxcss1.cxx b/sw/source/filter/html/svxcss1.cxx index 428f1c562853..d54f08660166 100644 --- a/sw/source/filter/html/svxcss1.cxx +++ b/sw/source/filter/html/svxcss1.cxx @@ -184,7 +184,7 @@ static CSS1PropertyEnum const aBorderWidthTable[] = { 0, 0 } }; -enum CSS1BorderStyle { CSS1_BS_NONE, CSS1_BS_SINGLE, CSS1_BS_DOUBLE, CSS1_BS_DOTTED, CSS1_BS_DASHED }; +enum CSS1BorderStyle { CSS1_BS_NONE, CSS1_BS_SINGLE, CSS1_BS_DOUBLE, CSS1_BS_DOTTED, CSS1_BS_DASHED, CSS1_BS_GROOVE, CSS1_BS_RIDGE, CSS1_BS_INSET, CSS1_BS_OUTSET }; static CSS1PropertyEnum const aBorderStyleTable[] = { @@ -193,10 +193,10 @@ static CSS1PropertyEnum const aBorderStyleTable[] = { sCSS1_PV_dashed, CSS1_BS_DASHED }, { sCSS1_PV_solid, CSS1_BS_SINGLE }, { sCSS1_PV_double, CSS1_BS_DOUBLE }, - { sCSS1_PV_groove, CSS1_BS_SINGLE }, - { sCSS1_PV_ridge, CSS1_BS_SINGLE }, - { sCSS1_PV_inset, CSS1_BS_SINGLE }, - { sCSS1_PV_outset, CSS1_BS_SINGLE }, + { sCSS1_PV_groove, CSS1_BS_GROOVE }, + { sCSS1_PV_ridge, CSS1_BS_RIDGE }, + { sCSS1_PV_inset, CSS1_BS_INSET }, + { sCSS1_PV_outset, CSS1_BS_OUTSET }, { 0, 0 } }; @@ -328,14 +328,36 @@ void SvxCSS1BorderInfo::SetBorderLine( sal_uInt16 nLine, SvxBoxItem &rBoxItem ) SvxBorderLine aBorderLine( &aColor ); // Linien-Stil doppelt oder einfach? - if ( eStyle == CSS1_BS_DOTTED ) - aBorderLine.SetStyle( DOTTED ); - else if ( eStyle == CSS1_BS_DASHED ) - aBorderLine.SetStyle( DASHED ); - else if ( eStyle == CSS1_BS_DOUBLE ) - aBorderLine.SetStyle( DOUBLE ); - else - aBorderLine.SetStyle( SOLID ); + switch ( eStyle ) + { + case CSS1_BS_SINGLE: + aBorderLine.SetStyle( SOLID ); + break; + case CSS1_BS_DOUBLE: + aBorderLine.SetStyle( DOUBLE ); + break; + case CSS1_BS_DOTTED: + aBorderLine.SetStyle( DOTTED ); + break; + case CSS1_BS_DASHED: + aBorderLine.SetStyle( DASHED ); + break; + case CSS1_BS_GROOVE: + aBorderLine.SetStyle( ENGRAVED ); + break; + case CSS1_BS_RIDGE: + aBorderLine.SetStyle( EMBOSSED ); + break; + case CSS1_BS_INSET: + aBorderLine.SetStyle( INSET ); + break; + case CSS1_BS_OUTSET: + aBorderLine.SetStyle( OUTSET ); + break; + default: + aBorderLine.SetStyle( NO_STYLE ); + break; + } // benannte Breite umrechnenen, wenn keine absolute gegeben ist if( nAbsWidth==USHRT_MAX ) |