Home | History | Annotate | Download | only in paint
      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:
     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