10#include <com/sun/star/rendering/XCanvas.hpp>
11#include <com/sun/star/rendering/StrokeAttributes.hpp>
12#include <com/sun/star/rendering/PathJoinType.hpp>
24void initLineStyleWaveline(sal_uInt32 nLineStyle,
bool& bIsWaveline,
bool& bIsBold)
36 , mbIsOverlineColorSet(rState.isTextOverlineColorSet)
37 , maOverlineColor(rState.textOverlineColor)
38 , mbIsUnderlineColorSet(rState.isTextLineColorSet)
39 , maUnderlineColor(rState.textLineColor)
40 , mbOverlineWaveline(false)
41 , mbUnderlineWaveline(false)
42 , mbOverlineWavelineBold(false)
43 , mbUnderlineWavelineBold(false)
58 uno::Reference<rendering::XGraphicDevice> xDevice =
mpCanvas->getUNOCanvas()->getDevice();
60 if (aOverline.
count())
62 aRange.
expand(::basegfx::utils::getRange(aOverline));
63 mxOverline = ::basegfx::unotools::xPolyPolygonFromB2DPolyPolygon(xDevice, aOverline);
66 if (aUnderline.
count())
68 aRange.
expand(::basegfx::utils::getRange(aUnderline));
69 mxUnderline = ::basegfx::unotools::xPolyPolygonFromB2DPolyPolygon(xDevice, aUnderline);
72 if (aStrikeout.
count())
74 aRange.
expand(::basegfx::utils::getRange(aStrikeout));
75 mxStrikeout = ::basegfx::unotools::xPolyPolygonFromB2DPolyPolygon(xDevice, aStrikeout);
87 const rendering::ViewState& rViewState(
mpCanvas->getViewState());
88 const uno::Reference<rendering::XCanvas>& xCanvas(
mpCanvas->getUNOCanvas());
89 rendering::StrokeAttributes aStrokeAttributes;
90 aStrokeAttributes.JoinType = rendering::PathJoinType::ROUND;
94 rendering::RenderState aLocalState(rRenderState);
101 xCanvas->strokePolyPolygon(
mxOverline, rViewState, aLocalState, aStrokeAttributes);
104 xCanvas->fillPolyPolygon(
mxOverline, rViewState, aLocalState);
109 rendering::RenderState aLocalState(rRenderState);
115 xCanvas->strokePolyPolygon(
mxUnderline, rViewState, aLocalState, aStrokeAttributes);
118 xCanvas->fillPolyPolygon(
mxUnderline, rViewState, aLocalState);
122 xCanvas->fillPolyPolygon(
mxStrikeout, rViewState, rRenderState);
B2DVector getRange() const
void expand(const Tuple2D< TYPE > &rTuple)
::basegfx::B2DSize maOverallSize
const CanvasSharedPtr mpCanvas
TextLinesHelper(CanvasSharedPtr xCanvas, const OutDevState &rState)
const css::uno::Sequence< double > maOverlineColor
css::uno::Reference< css::rendering::XPolyPolygon2D > mxStrikeout
bool mbOverlineWavelineBold
css::uno::Reference< css::rendering::XPolyPolygon2D > mxOverline
bool mbUnderlineWavelineBold
bool mbIsOverlineColorSet
bool mbIsUnderlineColorSet
void init(double nLineWidth, const tools::TextLineInfo &rLineInfo)
Init textlines with specified linewidth and TextLineInfo.
void render(const css::rendering::RenderState &rRenderState, bool bNormalText) const
Fill the textlines with colors.
css::uno::Reference< css::rendering::XPolyPolygon2D > mxUnderline
const css::uno::Sequence< double > maUnderlineColor
std::shared_ptr< Canvas > CanvasSharedPtr
sal_Int8 mnUnderlineStyle