namespace WebCore {
-TextPainter::TextPainter(GraphicsContext& context, bool paintSelectedTextOnly, bool paintSelectedTextSeparately, const FontCascade& font,
- int startPositionInTextRun, int endPositionInTextBoxString, int length, const AtomicString& emphasisMark, RenderCombineText* combinedText, TextRun& textRun,
- FloatRect& boxRect, FloatPoint& textOrigin, int emphasisMarkOffset, const ShadowData* textShadow, const ShadowData* selectionShadow,
- bool textBoxIsHorizontal, TextPaintStyle& textPaintStyle, TextPaintStyle& selectionPaintStyle)
- : m_context(context)
- , m_textPaintStyle(textPaintStyle)
- , m_selectionPaintStyle(selectionPaintStyle)
- , m_textShadow(textShadow)
- , m_selectionShadow(selectionShadow)
- , m_paintSelectedTextOnly(paintSelectedTextOnly)
- , m_paintSelectedTextSeparately(paintSelectedTextSeparately)
- , m_font(font)
- , m_startPositionInTextRun(startPositionInTextRun)
- , m_endPositionInTextRun(endPositionInTextBoxString)
- , m_length(length)
- , m_emphasisMark(emphasisMark)
- , m_combinedText(combinedText)
- , m_textRun(textRun)
- , m_boxRect(boxRect)
- , m_textOrigin(textOrigin)
- , m_emphasisMarkOffset(emphasisMarkOffset)
- , m_textBoxIsHorizontal(textBoxIsHorizontal)
-{
-}
-
ShadowApplier::ShadowApplier(GraphicsContext& context, const ShadowData* shadow, const FloatRect& textRect, bool lastShadowIterationShouldDrawText, bool opaque, FontOrientation orientation)
: m_context(context)
, m_shadow(shadow)
m_context.clearShadow();
}
+TextPainter::TextPainter(GraphicsContext& context, bool paintSelectedTextOnly, bool paintSelectedTextSeparately, const FontCascade& font, int startPositionInTextRun,
+ int endPositionInTextBoxString, int length, const AtomicString& emphasisMark, RenderCombineText* combinedText, TextRun& textRun, FloatRect& boxRect,
+ FloatPoint& textOrigin, int emphasisMarkOffset, const ShadowData* textShadow, const ShadowData* selectionShadow, bool textBoxIsHorizontal,
+ TextPaintStyle& textPaintStyle, TextPaintStyle& selectionPaintStyle)
+ : m_context(context)
+ , m_textPaintStyle(textPaintStyle)
+ , m_selectionPaintStyle(selectionPaintStyle)
+ , m_textShadow(textShadow)
+ , m_selectionShadow(selectionShadow)
+ , m_paintSelectedTextOnly(paintSelectedTextOnly)
+ , m_paintSelectedTextSeparately(paintSelectedTextSeparately)
+ , m_font(font)
+ , m_startPositionInTextRun(startPositionInTextRun)
+ , m_endPositionInTextRun(endPositionInTextBoxString)
+ , m_length(length)
+ , m_emphasisMark(emphasisMark)
+ , m_combinedText(combinedText)
+ , m_textRun(textRun)
+ , m_boxRect(boxRect)
+ , m_textOrigin(textOrigin)
+ , m_emphasisMarkOffset(emphasisMarkOffset)
+ , m_textBoxIsHorizontal(textBoxIsHorizontal)
+{
+}
+
void TextPainter::drawTextOrEmphasisMarks(const FontCascade& font, const TextRun& textRun, const AtomicString& emphasisMark,
int emphasisMarkOffset, const FloatPoint& textOrigin, int startOffset, int endOffset)
{
bool textBoxIsHorizontal, TextPaintStyle& nonSelectionPaintStyle, TextPaintStyle& selectionPaintStyle);
void paintText();
-
+#if ENABLE(CSS3_TEXT_DECORATION_SKIP_INK)
DashArray dashesForIntersectionsWithRect(const FloatRect& lineExtents);
+#endif
private:
void drawTextOrEmphasisMarks(const FontCascade&, const TextRun&, const AtomicString& emphasisMark, int emphasisMarkOffset,
void paintTextWithStyle(const TextPaintStyle&, int startOffset, int endOffset, const ShadowData*);
void paintEmphasisMarksIfNeeded(int startOffset, int endOffset, const TextPaintStyle&, const ShadowData*);
-private:
GraphicsContext& m_context;
TextPaintStyle& m_textPaintStyle;
TextPaintStyle& m_selectionPaintStyle;
~ShadowApplier();
private:
- bool isLastShadowIteration()
- {
- return m_shadow && !m_shadow->next();
- }
-
- bool shadowIsCompletelyCoveredByText(bool textIsOpaque)
- {
- return textIsOpaque && m_shadow && m_shadow->location() == IntPoint() && !m_shadow->radius();
- }
+ bool isLastShadowIteration();
+ bool shadowIsCompletelyCoveredByText(bool textIsOpaque);
FloatSize m_extraOffset;
GraphicsContext& m_context;
bool m_didSaveContext : 1;
};
+inline bool ShadowApplier::isLastShadowIteration()
+{
+ return m_shadow && !m_shadow->next();
+}
+
+inline bool ShadowApplier::shadowIsCompletelyCoveredByText(bool textIsOpaque)
+{
+ return textIsOpaque && m_shadow && m_shadow->location() == IntPoint() && !m_shadow->radius();
+}
+
} // namespace WebCore
#endif // TextPainter_h