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 BoxDecorationData_h
      6 #define BoxDecorationData_h
      7 
      8 #include "core/rendering/RenderBoxModelObject.h"
      9 #include "platform/graphics/Color.h"
     10 
     11 namespace blink {
     12 
     13 class RenderStyle;
     14 class GraphicsContext;
     15 
     16 // Information extracted from RenderStyle for box painting.
     17 class BoxDecorationData {
     18 public:
     19     BoxDecorationData(const RenderStyle&, bool canRenderBorderImage, bool backgroundHasOpaqueTopLayer, GraphicsContext*);
     20 
     21     Color backgroundColor;
     22     bool hasBackground;
     23     bool hasBorder;
     24     bool hasAppearance;
     25     BackgroundBleedAvoidance bleedAvoidance() { return static_cast<BackgroundBleedAvoidance>(m_bleedAvoidance); }
     26 
     27 private:
     28     BackgroundBleedAvoidance determineBackgroundBleedAvoidance(const RenderStyle&, bool canRenderBorderImage, bool backgroundHasOpaqueTopLayer, GraphicsContext*);
     29     bool borderObscuresBackgroundEdge(const RenderStyle&, const FloatSize& contextScale) const;
     30     unsigned m_bleedAvoidance : 2; // BackgroundBleedAvoidance
     31 };
     32 
     33 } // namespace blink
     34 
     35 #endif
     36