OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/animation/ColorPropertyFunctions.h" | 5 #include "core/animation/ColorPropertyFunctions.h" |
6 | 6 |
7 #include "core/style/ComputedStyle.h" | 7 #include "core/style/ComputedStyle.h" |
8 | 8 |
9 namespace blink { | 9 namespace blink { |
10 | 10 |
11 bool ColorPropertyFunctions::getInitialColor(CSSPropertyID property, | 11 OptionalStyleColor ColorPropertyFunctions::getInitialColor( |
12 StyleColor& initialColor) { | 12 CSSPropertyID property) { |
13 if (property == CSSPropertyCaretColor) | 13 return getUnvisitedColor(property, ComputedStyle::initialStyle()); |
14 return false; | |
15 // TODO(rego): Make getUnvisitedColor() return a bool, so we don't need a | |
16 // special case for caret-color here (http://crbug.com/676295). | |
17 initialColor = getUnvisitedColor(property, ComputedStyle::initialStyle()); | |
18 return true; | |
19 } | 14 } |
20 | 15 |
21 StyleColor ColorPropertyFunctions::getUnvisitedColor( | 16 OptionalStyleColor ColorPropertyFunctions::getUnvisitedColor( |
22 CSSPropertyID property, | 17 CSSPropertyID property, |
23 const ComputedStyle& style) { | 18 const ComputedStyle& style) { |
24 switch (property) { | 19 switch (property) { |
25 case CSSPropertyBackgroundColor: | 20 case CSSPropertyBackgroundColor: |
26 return style.backgroundColor(); | 21 return style.backgroundColor(); |
27 case CSSPropertyBorderLeftColor: | 22 case CSSPropertyBorderLeftColor: |
28 return style.borderLeftColor(); | 23 return style.borderLeftColor(); |
29 case CSSPropertyBorderRightColor: | 24 case CSSPropertyBorderRightColor: |
30 return style.borderRightColor(); | 25 return style.borderRightColor(); |
31 case CSSPropertyBorderTopColor: | 26 case CSSPropertyBorderTopColor: |
32 return style.borderTopColor(); | 27 return style.borderTopColor(); |
33 case CSSPropertyBorderBottomColor: | 28 case CSSPropertyBorderBottomColor: |
34 return style.borderBottomColor(); | 29 return style.borderBottomColor(); |
35 case CSSPropertyCaretColor: | 30 case CSSPropertyCaretColor: |
36 // TODO(rego): "auto" value for caret-color should not interpolate | |
37 // (http://crbug.com/676295). | |
38 if (style.caretColor().isAutoColor()) | 31 if (style.caretColor().isAutoColor()) |
39 return StyleColor::currentColor(); | 32 return nullptr; |
40 return style.caretColor().toStyleColor(); | 33 return style.caretColor().toStyleColor(); |
41 case CSSPropertyColor: | 34 case CSSPropertyColor: |
42 return style.color(); | 35 return style.color(); |
43 case CSSPropertyOutlineColor: | 36 case CSSPropertyOutlineColor: |
44 return style.outlineColor(); | 37 return style.outlineColor(); |
45 case CSSPropertyColumnRuleColor: | 38 case CSSPropertyColumnRuleColor: |
46 return style.columnRuleColor(); | 39 return style.columnRuleColor(); |
47 case CSSPropertyWebkitTextEmphasisColor: | 40 case CSSPropertyWebkitTextEmphasisColor: |
48 return style.textEmphasisColor(); | 41 return style.textEmphasisColor(); |
49 case CSSPropertyWebkitTextFillColor: | 42 case CSSPropertyWebkitTextFillColor: |
50 return style.textFillColor(); | 43 return style.textFillColor(); |
51 case CSSPropertyWebkitTextStrokeColor: | 44 case CSSPropertyWebkitTextStrokeColor: |
52 return style.textStrokeColor(); | 45 return style.textStrokeColor(); |
53 case CSSPropertyFloodColor: | 46 case CSSPropertyFloodColor: |
54 return style.floodColor(); | 47 return style.floodColor(); |
55 case CSSPropertyLightingColor: | 48 case CSSPropertyLightingColor: |
56 return style.lightingColor(); | 49 return style.lightingColor(); |
57 case CSSPropertyStopColor: | 50 case CSSPropertyStopColor: |
58 return style.stopColor(); | 51 return style.stopColor(); |
59 case CSSPropertyWebkitTapHighlightColor: | 52 case CSSPropertyWebkitTapHighlightColor: |
60 return style.tapHighlightColor(); | 53 return style.tapHighlightColor(); |
61 case CSSPropertyTextDecorationColor: | 54 case CSSPropertyTextDecorationColor: |
62 return style.textDecorationColor(); | 55 return style.textDecorationColor(); |
63 default: | 56 default: |
64 NOTREACHED(); | 57 NOTREACHED(); |
65 return StyleColor::currentColor(); | 58 return nullptr; |
66 } | 59 } |
67 } | 60 } |
68 | 61 |
69 StyleColor ColorPropertyFunctions::getVisitedColor(CSSPropertyID property, | 62 OptionalStyleColor ColorPropertyFunctions::getVisitedColor( |
70 const ComputedStyle& style) { | 63 CSSPropertyID property, |
| 64 const ComputedStyle& style) { |
71 switch (property) { | 65 switch (property) { |
72 case CSSPropertyBackgroundColor: | 66 case CSSPropertyBackgroundColor: |
73 return style.visitedLinkBackgroundColor(); | 67 return style.visitedLinkBackgroundColor(); |
74 case CSSPropertyBorderLeftColor: | 68 case CSSPropertyBorderLeftColor: |
75 return style.visitedLinkBorderLeftColor(); | 69 return style.visitedLinkBorderLeftColor(); |
76 case CSSPropertyBorderRightColor: | 70 case CSSPropertyBorderRightColor: |
77 return style.visitedLinkBorderRightColor(); | 71 return style.visitedLinkBorderRightColor(); |
78 case CSSPropertyBorderTopColor: | 72 case CSSPropertyBorderTopColor: |
79 return style.visitedLinkBorderTopColor(); | 73 return style.visitedLinkBorderTopColor(); |
80 case CSSPropertyBorderBottomColor: | 74 case CSSPropertyBorderBottomColor: |
(...skipping 21 matching lines...) Expand all Loading... |
102 case CSSPropertyLightingColor: | 96 case CSSPropertyLightingColor: |
103 return style.lightingColor(); | 97 return style.lightingColor(); |
104 case CSSPropertyStopColor: | 98 case CSSPropertyStopColor: |
105 return style.stopColor(); | 99 return style.stopColor(); |
106 case CSSPropertyWebkitTapHighlightColor: | 100 case CSSPropertyWebkitTapHighlightColor: |
107 return style.tapHighlightColor(); | 101 return style.tapHighlightColor(); |
108 case CSSPropertyTextDecorationColor: | 102 case CSSPropertyTextDecorationColor: |
109 return style.visitedLinkTextDecorationColor(); | 103 return style.visitedLinkTextDecorationColor(); |
110 default: | 104 default: |
111 NOTREACHED(); | 105 NOTREACHED(); |
112 return StyleColor::currentColor(); | 106 return nullptr; |
113 } | 107 } |
114 } | 108 } |
115 | 109 |
116 void ColorPropertyFunctions::setUnvisitedColor(CSSPropertyID property, | 110 void ColorPropertyFunctions::setUnvisitedColor(CSSPropertyID property, |
117 ComputedStyle& style, | 111 ComputedStyle& style, |
118 const Color& color) { | 112 const Color& color) { |
119 switch (property) { | 113 switch (property) { |
120 case CSSPropertyBackgroundColor: | 114 case CSSPropertyBackgroundColor: |
121 style.setBackgroundColor(color); | 115 style.setBackgroundColor(color); |
122 return; | 116 return; |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 case CSSPropertyWebkitTextStrokeColor: | 203 case CSSPropertyWebkitTextStrokeColor: |
210 style.setVisitedLinkTextStrokeColor(color); | 204 style.setVisitedLinkTextStrokeColor(color); |
211 return; | 205 return; |
212 default: | 206 default: |
213 NOTREACHED(); | 207 NOTREACHED(); |
214 return; | 208 return; |
215 } | 209 } |
216 } | 210 } |
217 | 211 |
218 } // namespace blink | 212 } // namespace blink |
OLD | NEW |