1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef InlineTextBoxPainter_h
6 #define InlineTextBoxPainter_h
8 #include "core/rendering/style/RenderStyleConstants.h"
12 struct CompositionUnderline;
19 class GraphicsContext;
24 class InlineTextBoxPainter {
26 InlineTextBoxPainter(InlineTextBox& inlineTextBox) : m_inlineTextBox(inlineTextBox) { }
28 void paint(PaintInfo&, const LayoutPoint&);
29 void paintDocumentMarkers(GraphicsContext*, const FloatPoint& boxOrigin, RenderStyle*, const Font&, bool background);
30 void paintDocumentMarker(GraphicsContext*, const FloatPoint& boxOrigin, DocumentMarker*, RenderStyle*, const Font&, bool grammar);
31 void paintTextMatchMarker(GraphicsContext*, const FloatPoint& boxOrigin, DocumentMarker*, RenderStyle*, const Font&);
33 static void removeFromTextBlobCache(InlineTextBox&);
36 void paintCompositionBackgrounds(GraphicsContext*, const FloatPoint& boxOrigin, RenderStyle*, const Font&, bool useCustomUnderlines);
37 void paintSingleCompositionBackgroundRun(GraphicsContext*, const FloatPoint& boxOrigin, RenderStyle*, const Font&, Color backgroundColor, int startPos, int endPos);
38 void paintSelection(GraphicsContext*, const FloatPoint& boxOrigin, RenderStyle*, const Font&, Color textColor);
39 void paintDecoration(GraphicsContext*, const FloatPoint& boxOrigin, TextDecoration);
40 void paintCompositionUnderline(GraphicsContext*, const FloatPoint& boxOrigin, const CompositionUnderline&);
41 unsigned underlinePaintStart(const CompositionUnderline&);
42 unsigned underlinePaintEnd(const CompositionUnderline&);
44 InlineTextBox& m_inlineTextBox;
49 #endif // InlineTextBoxPainter_h