• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 #ifndef ObjectPainter_h
6 #define ObjectPainter_h
7 
8 #include "core/rendering/style/RenderStyleConstants.h"
9 
10 namespace blink {
11 
12 class Color;
13 class GraphicsContext;
14 class LayoutPoint;
15 class LayoutRect;
16 struct PaintInfo;
17 class RenderObject;
18 class RenderStyle;
19 
20 class ObjectPainter {
21 public:
ObjectPainter(RenderObject & renderObject)22     ObjectPainter(RenderObject& renderObject) : m_renderObject(renderObject) { }
23 
24     void paintOutline(PaintInfo&, const LayoutRect& paintRect);
25     void paintFocusRing(PaintInfo&, const LayoutPoint& paintOffset, RenderStyle*);
26 
27     static void drawLineForBoxSide(GraphicsContext*, int x1, int y1, int x2, int y2, BoxSide, Color, EBorderStyle, int adjbw1, int adjbw2, bool antialias = false);
28     static void drawDashedOrDottedBoxSide(GraphicsContext*, int x1, int y1, int x2, int y2,
29         BoxSide, Color, int thickness, EBorderStyle, bool antialias);
30     static void drawDoubleBoxSide(GraphicsContext*, int x1, int y1, int x2, int y2,
31         int length, BoxSide, Color, int thickness, int adjacentWidth1, int adjacentWidth2, bool antialias);
32     static void drawRidgeOrGrooveBoxSide(GraphicsContext*, int x1, int y1, int x2, int y2,
33         BoxSide, Color, EBorderStyle, int adjacentWidth1, int adjacentWidth2, bool antialias);
34     static void drawSolidBoxSide(GraphicsContext*, int x1, int y1, int x2, int y2,
35         BoxSide, Color, int adjacentWidth1, int adjacentWidth2, bool antialias);
36 private:
37 
38     RenderObject& m_renderObject;
39 };
40 
41 } // namespace blink
42 
43 #endif
44