Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / paint / BoxDecorationData.h
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