OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "core/style/BorderEdge.h" | 5 #include "core/style/BorderEdge.h" |
6 | 6 |
7 namespace blink { | 7 namespace blink { |
8 | 8 |
9 BorderEdge::BorderEdge(float edge_width, | 9 BorderEdge::BorderEdge(float edge_width, |
10 const Color& edge_color, | 10 const Color& edge_color, |
11 EBorderStyle edge_style, | 11 EBorderStyle edge_style, |
12 bool edge_is_present) | 12 bool edge_is_present) |
13 : color(edge_color), | 13 : color(edge_color), |
14 is_present(edge_is_present), | 14 is_present(edge_is_present), |
15 style(edge_style), | 15 style(static_cast<unsigned>(edge_style)), |
16 width_(edge_width) { | 16 width_(edge_width) { |
17 if (style == kBorderStyleDouble && edge_width < 3) | 17 if (style == static_cast<unsigned>(EBorderStyle::kDouble) && edge_width < 3) |
18 style = kBorderStyleSolid; | 18 style = static_cast<unsigned>(EBorderStyle::kSolid); |
19 } | 19 } |
20 | 20 |
21 BorderEdge::BorderEdge() : is_present(false), style(kBorderStyleHidden) {} | 21 BorderEdge::BorderEdge() |
| 22 : is_present(false), style(static_cast<unsigned>(EBorderStyle::kHidden)) {} |
22 | 23 |
23 bool BorderEdge::HasVisibleColorAndStyle() const { | 24 bool BorderEdge::HasVisibleColorAndStyle() const { |
24 return style > kBorderStyleHidden && color.Alpha() > 0; | 25 return style > static_cast<unsigned>(EBorderStyle::kHidden) && |
| 26 color.Alpha() > 0; |
25 } | 27 } |
26 | 28 |
27 bool BorderEdge::ShouldRender() const { | 29 bool BorderEdge::ShouldRender() const { |
28 return is_present && width_ && HasVisibleColorAndStyle(); | 30 return is_present && width_ && HasVisibleColorAndStyle(); |
29 } | 31 } |
30 | 32 |
31 bool BorderEdge::PresentButInvisible() const { | 33 bool BorderEdge::PresentButInvisible() const { |
32 return UsedWidth() && !HasVisibleColorAndStyle(); | 34 return UsedWidth() && !HasVisibleColorAndStyle(); |
33 } | 35 } |
34 | 36 |
35 bool BorderEdge::ObscuresBackgroundEdge() const { | 37 bool BorderEdge::ObscuresBackgroundEdge() const { |
36 if (!is_present || color.HasAlpha() || style == kBorderStyleHidden) | 38 if (!is_present || color.HasAlpha() || |
| 39 style == static_cast<unsigned>(EBorderStyle::kHidden)) |
37 return false; | 40 return false; |
38 | 41 |
39 if (style == kBorderStyleDotted || style == kBorderStyleDashed) | 42 if (style == static_cast<unsigned>(EBorderStyle::kDotted) || |
| 43 style == static_cast<unsigned>(EBorderStyle::kDashed)) |
40 return false; | 44 return false; |
41 | 45 |
42 return true; | 46 return true; |
43 } | 47 } |
44 | 48 |
45 bool BorderEdge::ObscuresBackground() const { | 49 bool BorderEdge::ObscuresBackground() const { |
46 if (!is_present || color.HasAlpha() || style == kBorderStyleHidden) | 50 if (!is_present || color.HasAlpha() || |
| 51 style == static_cast<unsigned>(EBorderStyle::kHidden)) |
47 return false; | 52 return false; |
48 | 53 |
49 if (style == kBorderStyleDotted || style == kBorderStyleDashed || | 54 if (style == static_cast<unsigned>(EBorderStyle::kDotted) || |
50 style == kBorderStyleDouble) | 55 style == static_cast<unsigned>(EBorderStyle::kDashed) || |
| 56 style == static_cast<unsigned>(EBorderStyle::kDouble)) |
51 return false; | 57 return false; |
52 | 58 |
53 return true; | 59 return true; |
54 } | 60 } |
55 | 61 |
56 float BorderEdge::UsedWidth() const { | 62 float BorderEdge::UsedWidth() const { |
57 return is_present ? width_ : 0; | 63 return is_present ? width_ : 0; |
58 } | 64 } |
59 | 65 |
60 float BorderEdge::GetDoubleBorderStripeWidth(DoubleBorderStripe stripe) const { | 66 float BorderEdge::GetDoubleBorderStripeWidth(DoubleBorderStripe stripe) const { |
61 DCHECK(stripe == kDoubleBorderStripeOuter || | 67 DCHECK(stripe == kDoubleBorderStripeOuter || |
62 stripe == kDoubleBorderStripeInner); | 68 stripe == kDoubleBorderStripeInner); |
63 | 69 |
64 return roundf(stripe == kDoubleBorderStripeOuter ? UsedWidth() / 3 | 70 return roundf(stripe == kDoubleBorderStripeOuter ? UsedWidth() / 3 |
65 : (UsedWidth() * 2) / 3); | 71 : (UsedWidth() * 2) / 3); |
66 } | 72 } |
67 | 73 |
68 bool BorderEdge::SharesColorWith(const BorderEdge& other) const { | 74 bool BorderEdge::SharesColorWith(const BorderEdge& other) const { |
69 return color == other.color; | 75 return color == other.color; |
70 } | 76 } |
71 | 77 |
72 } // namespace blink | 78 } // namespace blink |
OLD | NEW |