summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorCédric Bosdonnat <cedricbosdo@openoffice.org>2011-02-18 09:56:56 +0100
committerCédric Bosdonnat <cedricbosdo@openoffice.org>2011-03-19 15:33:12 +0100
commit07106d13bd5af54ce6021119207df367b7708ebc (patch)
treee5742e170d1f5faa84d0a782a63dcf84bc15c17e /sw
parent7382abd40503f384e73b3cbb806addc4c8952257 (diff)
Fixed HTML filters to work with new borders
Diffstat (limited to 'sw')
-rw-r--r--sw/source/filter/html/css1atr.cxx58
-rw-r--r--sw/source/filter/html/svxcss1.cxx48
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 )