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