diff options
-rw-r--r-- | sw/source/filter/html/htmlgrin.cxx | 17 | ||||
-rw-r--r-- | sw/source/filter/html/htmltab.cxx | 21 | ||||
-rw-r--r-- | sw/source/filter/html/svxcss1.cxx | 97 | ||||
-rw-r--r-- | sw/source/filter/html/svxcss1.hxx | 4 | ||||
-rw-r--r-- | sw/source/filter/html/swhtml.cxx | 12 |
5 files changed, 27 insertions, 124 deletions
diff --git a/sw/source/filter/html/htmlgrin.cxx b/sw/source/filter/html/htmlgrin.cxx index 82c2e41aa403..ae9c8834feed 100644 --- a/sw/source/filter/html/htmlgrin.cxx +++ b/sw/source/filter/html/htmlgrin.cxx @@ -488,21 +488,8 @@ IMAGE_SETEVENT: nVBorderWidth = (long)nBorder; SvxCSS1Parser::PixelToTwip( nVBorderWidth, nHBorderWidth ); - SvxBorderLine aHBorderLine; - SvxBorderLine aVBorderLine; - - SvxCSS1Parser::SetBorderWidth( aHBorderLine, - (sal_uInt16)nHBorderWidth, sal_False ); - if( nHBorderWidth == nVBorderWidth ) - aVBorderLine.SetOutWidth( aHBorderLine.GetOutWidth() ); - else - SvxCSS1Parser::SetBorderWidth( aVBorderLine, - (sal_uInt16)nVBorderWidth, sal_False ); - - // die tatsaechlich gesetzter Rahmenbreite benutzen und nicht die - // Wunschbreite! - nHBorderWidth = aHBorderLine.GetOutWidth(); - nVBorderWidth = aVBorderLine.GetOutWidth(); + SvxBorderLine aHBorderLine( NULL, nHBorderWidth ); + SvxBorderLine aVBorderLine( NULL, nVBorderWidth ); if( aAttrTab.pINetFmt ) { diff --git a/sw/source/filter/html/htmltab.cxx b/sw/source/filter/html/htmltab.cxx index d2cbded94ee0..1fe0e4898395 100644 --- a/sw/source/filter/html/htmltab.cxx +++ b/sw/source/filter/html/htmltab.cxx @@ -1051,8 +1051,9 @@ void HTMLTable::InitCtor( const HTMLTableOptions *pOptions ) nPHeight = 1; } - SvxCSS1Parser::SetBorderWidth( aTopBorderLine, (sal_uInt16)nPHeight, - pOptions->nCellSpacing!=0, sal_True ); + if ( pOptions->nCellSpacing != 0 ) + aTopBorderLine.SetStyle( DOUBLE ); + aTopBorderLine.SetWidth( nPHeight ); aTopBorderLine.SetColor( rBorderColor ); aBottomBorderLine = aTopBorderLine; @@ -1062,21 +1063,21 @@ void HTMLTable::InitCtor( const HTMLTableOptions *pOptions ) } else { - SvxCSS1Parser::SetBorderWidth( aLeftBorderLine, (sal_uInt16)nPWidth, - pOptions->nCellSpacing!=0, sal_True ); + if ( pOptions->nCellSpacing != 0 ) + aLeftBorderLine.SetStyle( DOUBLE ); + aLeftBorderLine.SetWidth( nPWidth ); aLeftBorderLine.SetColor( rBorderColor ); } aRightBorderLine = aLeftBorderLine; if( pOptions->nCellSpacing != 0 ) { - aBorderLine.SetOutWidth( DEF_DOUBLE_LINE7_OUT ); - aBorderLine.SetInWidth( DEF_DOUBLE_LINE7_IN ); - aBorderLine.SetDistance( DEF_DOUBLE_LINE7_DIST ); + aBorderLine.SetStyle( DOUBLE ); + aBorderLine.SetWidth( DEF_LINE_WIDTH_0 ); } else { - aBorderLine.SetOutWidth( DEF_LINE_WIDTH_1 ); + aBorderLine.SetWidth( DEF_LINE_WIDTH_0 ); } aBorderLine.SetColor( rBorderColor ); @@ -1515,8 +1516,8 @@ void HTMLTable::FixFrameFmt( SwTableBox *pBox, sal_uInt16 nBorderWidth = aBorderLine.GetOutWidth(); nBorderWidth *= (nEmptyRows + 1); - SvxCSS1Parser::SetBorderWidth( aThickBorderLine, - nBorderWidth, sal_False ); + aThickBorderLine.SetStyle( SOLID ); + aThickBorderLine.SetWidth( nBorderWidth ); aBoxItem.SetLine( &aThickBorderLine, BOX_LINE_BOTTOM ); } else diff --git a/sw/source/filter/html/svxcss1.cxx b/sw/source/filter/html/svxcss1.cxx index b9ce6940a08d..7d26283f4485 100644 --- a/sw/source/filter/html/svxcss1.cxx +++ b/sw/source/filter/html/svxcss1.cxx @@ -239,50 +239,11 @@ static CSS1PropertyEnum const aPageBreakTable[] = /* */ -// Ein Eintrag besteht aus vier USHORTs. Der erste ist die Gesamtbreite, -// die anderen sind die 3 Einzelbreiten - -#define SBORDER_ENTRY( n ) \ - DEF_LINE_WIDTH_##n, DEF_LINE_WIDTH_##n, 0, 0 - -#define DBORDER_ENTRY( n ) \ - DEF_DOUBLE_LINE##n##_OUT + DEF_DOUBLE_LINE##n##_IN + \ - DEF_DOUBLE_LINE##n##_DIST, \ - DEF_DOUBLE_LINE##n##_OUT, \ - DEF_DOUBLE_LINE##n##_IN, \ - DEF_DOUBLE_LINE##n##_DIST - -#define TDBORDER_ENTRY( n ) \ - DEF_DOUBLE_LINE##n##_OUT, \ - DEF_DOUBLE_LINE##n##_OUT, \ - DEF_DOUBLE_LINE##n##_IN, \ - DEF_DOUBLE_LINE##n##_DIST - - -static sal_uInt16 aSBorderWidths[] = -{ - SBORDER_ENTRY( 0 ), SBORDER_ENTRY( 1 ), SBORDER_ENTRY( 2 ), - SBORDER_ENTRY( 3 ), SBORDER_ENTRY( 4 ) -}; - -static sal_uInt16 aDBorderWidths[] = -{ - DBORDER_ENTRY( 0 ), - DBORDER_ENTRY( 7 ), - DBORDER_ENTRY( 1 ), - DBORDER_ENTRY( 8 ), - DBORDER_ENTRY( 4 ), - DBORDER_ENTRY( 9 ), - DBORDER_ENTRY( 3 ), - DBORDER_ENTRY( 10 ), - DBORDER_ENTRY( 2 ), - DBORDER_ENTRY( 5 ) -}; - -static sal_uInt16 aTDBorderWidths[] = +static sal_uInt16 const aBorderWidths[] = { - TDBORDER_ENTRY( 7 ), TDBORDER_ENTRY( 8 ), TDBORDER_ENTRY( 9 ), - TDBORDER_ENTRY( 10 ) + DEF_LINE_WIDTH_0, + DEF_LINE_WIDTH_1, + DEF_LINE_WIDTH_2 }; #undef SBORDER_ENTRY @@ -367,27 +328,20 @@ void SvxCSS1BorderInfo::SetBorderLine( sal_uInt16 nLine, SvxBoxItem &rBoxItem ) SvxBorderLine aBorderLine( &aColor ); // Linien-Stil doppelt oder einfach? - sal_Bool bDouble = eStyle == CSS1_BS_DOUBLE; 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 ); // benannte Breite umrechnenen, wenn keine absolute gegeben ist if( nAbsWidth==USHRT_MAX ) - { - const sal_uInt16 *aWidths = bDouble ? aDBorderWidths : aSBorderWidths; - sal_uInt16 nNWidth = nNamedWidth * 4; - aBorderLine.SetOutWidth( aWidths[nNWidth+1] ); - aBorderLine.SetInWidth( aWidths[nNWidth+2] ); - aBorderLine.SetDistance( aWidths[nNWidth+3] ); - } + aBorderLine.SetWidth( aBorderWidths[ nNamedWidth ] ); else - { - SvxCSS1Parser::SetBorderWidth( aBorderLine, nAbsWidth, bDouble ); - } + aBorderLine.SetWidth( nAbsWidth ); rBoxItem.SetLine( &aBorderLine, nLine ); } @@ -923,41 +877,6 @@ void SvxCSS1Parser::PixelToTwip( long &rWidth, long &rHeight ) } } -void SvxCSS1Parser::SetBorderWidth( SvxBorderLine& aBorderLine, sal_uInt16 nWidth, - sal_Bool bDouble, sal_Bool bTable ) -{ - const sal_uInt16 *aWidths; - sal_uInt16 nSize; - if( !bDouble ) - { - aWidths = aSBorderWidths; - nSize = sizeof( aSBorderWidths ); - } - else if( bTable ) - { - aWidths = aTDBorderWidths; - nSize = sizeof( aTDBorderWidths ); - } - else - { - aWidths = aDBorderWidths; - nSize = sizeof( aDBorderWidths ); - } - - sal_uInt16 i = (nSize / sizeof(sal_uInt16)) - 4; - while( i>0 && - nWidth <= ((aWidths[i] + aWidths[i-4]) / 2) ) - { - DBG_ASSERT( aWidths[i] > aWidths[i-4], - "line widths are not sorted!" ); - i -= 4; - } - - aBorderLine.SetOutWidth( aWidths[i+1] ); - aBorderLine.SetInWidth( aWidths[i+2] ); - aBorderLine.SetDistance( aWidths[i+3] ); -} - sal_uInt32 SvxCSS1Parser::GetFontHeight( sal_uInt16 nSize ) const { sal_uInt16 nHeight; diff --git a/sw/source/filter/html/svxcss1.hxx b/sw/source/filter/html/svxcss1.hxx index b4d2a13fdf5d..dc071bd6bd6f 100644 --- a/sw/source/filter/html/svxcss1.hxx +++ b/sw/source/filter/html/svxcss1.hxx @@ -314,10 +314,6 @@ public: // Pixel in Twips wandeln static void PixelToTwip( long &nWidth, long &nHeight ); - // Die Breite einer Umrandung einstellen - static void SetBorderWidth( SvxBorderLine& aBorderLine, sal_uInt16 nWidth, - sal_Bool bDouble, sal_Bool bTable=sal_False ); - // Die Font-Hoehe fuer eine bestimmte Font-Groesse (0-6) ermitteln virtual sal_uInt32 GetFontHeight( sal_uInt16 nSize ) const; diff --git a/sw/source/filter/html/swhtml.cxx b/sw/source/filter/html/swhtml.cxx index 1d7de83e37f9..88aaad70f09f 100644 --- a/sw/source/filter/html/swhtml.cxx +++ b/sw/source/filter/html/swhtml.cxx @@ -5246,18 +5246,18 @@ void SwHTMLParser::InsertHorzRule() long nPWidth = 0; long nPHeight = (long)nSize; SvxCSS1Parser::PixelToTwip( nPWidth, nPHeight ); - SvxCSS1Parser::SetBorderWidth( aBorderLine, (sal_uInt16)nPHeight, - !bNoShade ); + if ( !bNoShade ) + aBorderLine.SetStyle( DOUBLE ); + aBorderLine.SetWidth( nPHeight ); } else if( bNoShade ) { - aBorderLine.SetOutWidth( DEF_LINE_WIDTH_2 ); + aBorderLine.SetWidth( DEF_LINE_WIDTH_2 ); } else { - aBorderLine.SetOutWidth( DEF_DOUBLE_LINE0_OUT ); - aBorderLine.SetInWidth( DEF_DOUBLE_LINE0_IN ); - aBorderLine.SetDistance( DEF_DOUBLE_LINE0_DIST ); + aBorderLine.SetStyle( DOUBLE ); + aBorderLine.SetWidth( DEF_LINE_WIDTH_0 ); } SvxBoxItem aBoxItem(RES_BOX); |