CWS-TOOLING: integrate CWS overline3
2008-12-11 15:24:46 +0100 fredrikh r265314 : i97099 2008-12-11 15:20:37 +0100 fredrikh r265313 : i97099 2008-12-11 15:18:00 +0100 fredrikh r265312 : i97099 2008-12-11 15:17:00 +0100 fredrikh r265311 : i97099 2008-12-11 15:13:20 +0100 fredrikh r265309 : i97144 2008-12-11 15:06:24 +0100 fredrikh r265306 : i97099 2008-11-24 10:41:42 +0100 fme r264213 : #i5991# Overline support 2008-11-24 10:39:53 +0100 fme r264212 : #i5991# Overline support 2008-11-24 10:02:13 +0100 fme r264209 : #5991# Overline support 2008-11-24 10:01:26 +0100 fme r264208 : #5991# Overline support 2008-11-24 09:59:11 +0100 fme r264207 : #5991# Overline support 2008-11-24 09:57:11 +0100 fme r264206 : #5991# Overline support 2008-11-14 10:36:44 +0100 fme r263667 : CWS-TOOLING: rebase CWS overline3 to trunk@263288 (milestone: DEV300:m35) 2008-11-13 16:12:13 +0100 fme r263649 : #i5991# migrate CWS overline3 to SVN.
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
* OpenOffice.org - a multi-platform office productivity suite
|
||||
*
|
||||
* $RCSfile: mtftools.cxx,v $
|
||||
* $Revision: 1.14 $
|
||||
* $Revision: 1.14.6.1 $
|
||||
*
|
||||
* This file is part of OpenOffice.org.
|
||||
*
|
||||
@@ -308,7 +308,7 @@ namespace cppcanvas
|
||||
return true;
|
||||
}
|
||||
|
||||
// create underline/strikeout line info struct
|
||||
// create overline/underline/strikeout line info struct
|
||||
TextLineInfo createTextLineInfo( const ::VirtualDevice& rVDev,
|
||||
const ::cppcanvas::internal::OutDevState& rState )
|
||||
{
|
||||
@@ -325,8 +325,11 @@ namespace cppcanvas
|
||||
|
||||
TextLineInfo aTextInfo(
|
||||
(aMetric.GetDescent() + 2) / 4.0,
|
||||
((aMetric.GetIntLeading() + 1.5) / 3.0),
|
||||
(aMetric.GetIntLeading() / 2.0) - aMetric.GetAscent(),
|
||||
aMetric.GetDescent() / 2.0,
|
||||
(aMetric.GetIntLeading() - aMetric.GetAscent()) / 3.0,
|
||||
rState.textOverlineStyle,
|
||||
rState.textUnderlineStyle,
|
||||
rState.textStrikeoutStyle );
|
||||
|
||||
@@ -397,6 +400,111 @@ namespace cppcanvas
|
||||
// fill the polypolygon with all text lines
|
||||
::basegfx::B2DPolyPolygon aTextLinesPolyPoly;
|
||||
|
||||
switch( rTextLineInfo.mnOverlineStyle )
|
||||
{
|
||||
case UNDERLINE_NONE: // nothing to do
|
||||
// FALLTHROUGH intended
|
||||
case UNDERLINE_DONTKNOW:
|
||||
break;
|
||||
|
||||
case UNDERLINE_SMALLWAVE: // TODO(F3): NYI
|
||||
// FALLTHROUGH intended
|
||||
case UNDERLINE_WAVE: // TODO(F3): NYI
|
||||
// FALLTHROUGH intended
|
||||
case UNDERLINE_SINGLE:
|
||||
appendRect(
|
||||
aTextLinesPolyPoly,
|
||||
rStartPos,
|
||||
0,
|
||||
rTextLineInfo.mnOverlineOffset,
|
||||
rLineWidth,
|
||||
rTextLineInfo.mnOverlineOffset + rTextLineInfo.mnOverlineHeight );
|
||||
break;
|
||||
|
||||
case UNDERLINE_BOLDDOTTED: // TODO(F3): NYI
|
||||
// FALLTHROUGH intended
|
||||
case UNDERLINE_BOLDDASH: // TODO(F3): NYI
|
||||
// FALLTHROUGH intended
|
||||
case UNDERLINE_BOLDLONGDASH: // TODO(F3): NYI
|
||||
// FALLTHROUGH intended
|
||||
case UNDERLINE_BOLDDASHDOT: // TODO(F3): NYI
|
||||
// FALLTHROUGH intended
|
||||
case UNDERLINE_BOLDDASHDOTDOT:// TODO(F3): NYI
|
||||
// FALLTHROUGH intended
|
||||
case UNDERLINE_BOLDWAVE: // TODO(F3): NYI
|
||||
// FALLTHROUGH intended
|
||||
case UNDERLINE_BOLD:
|
||||
appendRect(
|
||||
aTextLinesPolyPoly,
|
||||
rStartPos,
|
||||
0,
|
||||
rTextLineInfo.mnOverlineOffset - rTextLineInfo.mnOverlineHeight,
|
||||
rLineWidth,
|
||||
rTextLineInfo.mnOverlineOffset + rTextLineInfo.mnOverlineHeight );
|
||||
break;
|
||||
|
||||
case UNDERLINE_DOUBLEWAVE: // TODO(F3): NYI
|
||||
// FALLTHROUGH intended
|
||||
case UNDERLINE_DOUBLE:
|
||||
appendRect(
|
||||
aTextLinesPolyPoly,
|
||||
rStartPos,
|
||||
0,
|
||||
rTextLineInfo.mnOverlineOffset - rTextLineInfo.mnOverlineHeight * 2.0 ,
|
||||
rLineWidth,
|
||||
rTextLineInfo.mnOverlineOffset - rTextLineInfo.mnOverlineHeight );
|
||||
|
||||
appendRect(
|
||||
aTextLinesPolyPoly,
|
||||
rStartPos,
|
||||
0,
|
||||
rTextLineInfo.mnOverlineOffset + rTextLineInfo.mnOverlineHeight,
|
||||
rLineWidth,
|
||||
rTextLineInfo.mnOverlineOffset + rTextLineInfo.mnOverlineHeight * 2.0 );
|
||||
break;
|
||||
|
||||
case UNDERLINE_DASHDOTDOT: // TODO(F3): NYI
|
||||
// FALLTHROUGH intended
|
||||
case UNDERLINE_DOTTED:
|
||||
appendDashes(
|
||||
aTextLinesPolyPoly,
|
||||
rStartPos.getX(),
|
||||
rStartPos.getY() + rTextLineInfo.mnOverlineOffset,
|
||||
rLineWidth,
|
||||
rTextLineInfo.mnOverlineHeight,
|
||||
rTextLineInfo.mnOverlineHeight,
|
||||
2*rTextLineInfo.mnOverlineHeight );
|
||||
break;
|
||||
|
||||
case UNDERLINE_DASHDOT: // TODO(F3): NYI
|
||||
// FALLTHROUGH intended
|
||||
case UNDERLINE_DASH:
|
||||
appendDashes(
|
||||
aTextLinesPolyPoly,
|
||||
rStartPos.getX(),
|
||||
rStartPos.getY() + rTextLineInfo.mnOverlineOffset,
|
||||
rLineWidth,
|
||||
rTextLineInfo.mnOverlineHeight,
|
||||
3*rTextLineInfo.mnOverlineHeight,
|
||||
6*rTextLineInfo.mnOverlineHeight );
|
||||
break;
|
||||
|
||||
case UNDERLINE_LONGDASH:
|
||||
appendDashes(
|
||||
aTextLinesPolyPoly,
|
||||
rStartPos.getX(),
|
||||
rStartPos.getY() + rTextLineInfo.mnOverlineOffset,
|
||||
rLineWidth,
|
||||
rTextLineInfo.mnOverlineHeight,
|
||||
6*rTextLineInfo.mnOverlineHeight,
|
||||
12*rTextLineInfo.mnOverlineHeight );
|
||||
break;
|
||||
|
||||
default:
|
||||
ENSURE_OR_THROW( false,
|
||||
"::cppcanvas::internal::createTextLinesPolyPolygon(): Unexpected overline case" );
|
||||
}
|
||||
|
||||
switch( rTextLineInfo.mnUnderlineStyle )
|
||||
{
|
||||
case UNDERLINE_NONE: // nothing to do
|
||||
|
||||
Reference in New Issue
Block a user