Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(187)

Side by Side Diff: third_party/WebKit/Source/core/animation/ColorPropertyFunctions.cpp

Issue 2537373005: [css-ui] Make caret-color animatable (Closed)
Patch Set: Apply suggested changes Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 StyleColor ColorPropertyFunctions::getInitialColor(CSSPropertyID property) { 11 bool ColorPropertyFunctions::getInitialColor(CSSPropertyID property,
12 return getUnvisitedColor(property, ComputedStyle::initialStyle()); 12 StyleColor& initialColor) {
13 return getUnvisitedColor(property, ComputedStyle::initialStyle(),
14 initialColor);
13 } 15 }
14 16
15 StyleColor ColorPropertyFunctions::getUnvisitedColor( 17 bool ColorPropertyFunctions::getUnvisitedColor(CSSPropertyID property,
16 CSSPropertyID property, 18 const ComputedStyle& style,
17 const ComputedStyle& style) { 19 StyleColor& color) {
18 switch (property) { 20 switch (property) {
19 case CSSPropertyBackgroundColor: 21 case CSSPropertyBackgroundColor:
20 return style.backgroundColor(); 22 color = style.backgroundColor();
23 break;
21 case CSSPropertyBorderLeftColor: 24 case CSSPropertyBorderLeftColor:
22 return style.borderLeftColor(); 25 color = style.borderLeftColor();
26 break;
23 case CSSPropertyBorderRightColor: 27 case CSSPropertyBorderRightColor:
24 return style.borderRightColor(); 28 color = style.borderRightColor();
29 break;
25 case CSSPropertyBorderTopColor: 30 case CSSPropertyBorderTopColor:
26 return style.borderTopColor(); 31 color = style.borderTopColor();
32 break;
27 case CSSPropertyBorderBottomColor: 33 case CSSPropertyBorderBottomColor:
28 return style.borderBottomColor(); 34 color = style.borderBottomColor();
35 break;
36 case CSSPropertyCaretColor:
37 if (style.caretColor().isAutoColor())
38 return false;
39 color = style.caretColor().toStyleColor();
40 break;
29 case CSSPropertyColor: 41 case CSSPropertyColor:
30 return style.color(); 42 color = style.color();
43 break;
31 case CSSPropertyOutlineColor: 44 case CSSPropertyOutlineColor:
32 return style.outlineColor(); 45 color = style.outlineColor();
46 break;
33 case CSSPropertyColumnRuleColor: 47 case CSSPropertyColumnRuleColor:
34 return style.columnRuleColor(); 48 color = style.columnRuleColor();
49 break;
35 case CSSPropertyWebkitTextEmphasisColor: 50 case CSSPropertyWebkitTextEmphasisColor:
36 return style.textEmphasisColor(); 51 color = style.textEmphasisColor();
52 break;
37 case CSSPropertyWebkitTextFillColor: 53 case CSSPropertyWebkitTextFillColor:
38 return style.textFillColor(); 54 color = style.textFillColor();
55 break;
39 case CSSPropertyWebkitTextStrokeColor: 56 case CSSPropertyWebkitTextStrokeColor:
40 return style.textStrokeColor(); 57 color = style.textStrokeColor();
58 break;
41 case CSSPropertyFloodColor: 59 case CSSPropertyFloodColor:
42 return style.floodColor(); 60 color = style.floodColor();
61 break;
43 case CSSPropertyLightingColor: 62 case CSSPropertyLightingColor:
44 return style.lightingColor(); 63 color = style.lightingColor();
64 break;
45 case CSSPropertyStopColor: 65 case CSSPropertyStopColor:
46 return style.stopColor(); 66 color = style.stopColor();
67 break;
47 case CSSPropertyWebkitTapHighlightColor: 68 case CSSPropertyWebkitTapHighlightColor:
48 return style.tapHighlightColor(); 69 color = style.tapHighlightColor();
70 break;
49 case CSSPropertyTextDecorationColor: 71 case CSSPropertyTextDecorationColor:
50 return style.textDecorationColor(); 72 color = style.textDecorationColor();
73 break;
51 default: 74 default:
52 NOTREACHED(); 75 NOTREACHED();
53 return StyleColor::currentColor(); 76 color = StyleColor::currentColor();
77 break;
54 } 78 }
79
80 return true;
55 } 81 }
56 82
57 StyleColor ColorPropertyFunctions::getVisitedColor(CSSPropertyID property, 83 bool ColorPropertyFunctions::getVisitedColor(CSSPropertyID property,
58 const ComputedStyle& style) { 84 const ComputedStyle& style,
85 StyleColor& color) {
59 switch (property) { 86 switch (property) {
60 case CSSPropertyBackgroundColor: 87 case CSSPropertyBackgroundColor:
61 return style.visitedLinkBackgroundColor(); 88 color = style.visitedLinkBackgroundColor();
89 break;
62 case CSSPropertyBorderLeftColor: 90 case CSSPropertyBorderLeftColor:
63 return style.visitedLinkBorderLeftColor(); 91 color = style.visitedLinkBorderLeftColor();
92 break;
64 case CSSPropertyBorderRightColor: 93 case CSSPropertyBorderRightColor:
65 return style.visitedLinkBorderRightColor(); 94 color = style.visitedLinkBorderRightColor();
95 break;
66 case CSSPropertyBorderTopColor: 96 case CSSPropertyBorderTopColor:
67 return style.visitedLinkBorderTopColor(); 97 color = style.visitedLinkBorderTopColor();
98 break;
68 case CSSPropertyBorderBottomColor: 99 case CSSPropertyBorderBottomColor:
69 return style.visitedLinkBorderBottomColor(); 100 color = style.visitedLinkBorderBottomColor();
101 break;
102 case CSSPropertyCaretColor:
103 if (style.visitedLinkCaretColor().isAutoColor())
104 return false;
105 color = style.visitedLinkCaretColor().toStyleColor();
106 break;
70 case CSSPropertyColor: 107 case CSSPropertyColor:
71 return style.visitedLinkColor(); 108 color = style.visitedLinkColor();
109 break;
72 case CSSPropertyOutlineColor: 110 case CSSPropertyOutlineColor:
73 return style.visitedLinkOutlineColor(); 111 color = style.visitedLinkOutlineColor();
112 break;
74 case CSSPropertyColumnRuleColor: 113 case CSSPropertyColumnRuleColor:
75 return style.visitedLinkColumnRuleColor(); 114 color = style.visitedLinkColumnRuleColor();
115 break;
76 case CSSPropertyWebkitTextEmphasisColor: 116 case CSSPropertyWebkitTextEmphasisColor:
77 return style.visitedLinkTextEmphasisColor(); 117 color = style.visitedLinkTextEmphasisColor();
118 break;
78 case CSSPropertyWebkitTextFillColor: 119 case CSSPropertyWebkitTextFillColor:
79 return style.visitedLinkTextFillColor(); 120 color = style.visitedLinkTextFillColor();
121 break;
80 case CSSPropertyWebkitTextStrokeColor: 122 case CSSPropertyWebkitTextStrokeColor:
81 return style.visitedLinkTextStrokeColor(); 123 color = style.visitedLinkTextStrokeColor();
124 break;
82 case CSSPropertyFloodColor: 125 case CSSPropertyFloodColor:
83 return style.floodColor(); 126 color = style.floodColor();
127 break;
84 case CSSPropertyLightingColor: 128 case CSSPropertyLightingColor:
85 return style.lightingColor(); 129 color = style.lightingColor();
130 break;
86 case CSSPropertyStopColor: 131 case CSSPropertyStopColor:
87 return style.stopColor(); 132 color = style.stopColor();
133 break;
88 case CSSPropertyWebkitTapHighlightColor: 134 case CSSPropertyWebkitTapHighlightColor:
89 return style.tapHighlightColor(); 135 color = style.tapHighlightColor();
136 break;
90 case CSSPropertyTextDecorationColor: 137 case CSSPropertyTextDecorationColor:
91 return style.visitedLinkTextDecorationColor(); 138 color = style.visitedLinkTextDecorationColor();
139 break;
92 default: 140 default:
93 NOTREACHED(); 141 NOTREACHED();
94 return StyleColor::currentColor(); 142 color = StyleColor::currentColor();
143 break;
95 } 144 }
145
146 return true;
96 } 147 }
97 148
98 void ColorPropertyFunctions::setUnvisitedColor(CSSPropertyID property, 149 void ColorPropertyFunctions::setUnvisitedColor(CSSPropertyID property,
99 ComputedStyle& style, 150 ComputedStyle& style,
100 const Color& color) { 151 const Color& color) {
101 switch (property) { 152 switch (property) {
102 case CSSPropertyBackgroundColor: 153 case CSSPropertyBackgroundColor:
103 style.setBackgroundColor(color); 154 style.setBackgroundColor(color);
104 return; 155 return;
105 case CSSPropertyBorderBottomColor: 156 case CSSPropertyBorderBottomColor:
106 style.setBorderBottomColor(color); 157 style.setBorderBottomColor(color);
107 return; 158 return;
108 case CSSPropertyBorderLeftColor: 159 case CSSPropertyBorderLeftColor:
109 style.setBorderLeftColor(color); 160 style.setBorderLeftColor(color);
110 return; 161 return;
111 case CSSPropertyBorderRightColor: 162 case CSSPropertyBorderRightColor:
112 style.setBorderRightColor(color); 163 style.setBorderRightColor(color);
113 return; 164 return;
114 case CSSPropertyBorderTopColor: 165 case CSSPropertyBorderTopColor:
115 style.setBorderTopColor(color); 166 style.setBorderTopColor(color);
116 return; 167 return;
168 case CSSPropertyCaretColor:
169 return style.setCaretColor(color);
117 case CSSPropertyColor: 170 case CSSPropertyColor:
118 style.setColor(color); 171 style.setColor(color);
119 return; 172 return;
120 case CSSPropertyFloodColor: 173 case CSSPropertyFloodColor:
121 style.setFloodColor(color); 174 style.setFloodColor(color);
122 return; 175 return;
123 case CSSPropertyLightingColor: 176 case CSSPropertyLightingColor:
124 style.setLightingColor(color); 177 style.setLightingColor(color);
125 return; 178 return;
126 case CSSPropertyOutlineColor: 179 case CSSPropertyOutlineColor:
(...skipping 29 matching lines...) Expand all
156 return; 209 return;
157 case CSSPropertyBorderLeftColor: 210 case CSSPropertyBorderLeftColor:
158 style.setVisitedLinkBorderLeftColor(color); 211 style.setVisitedLinkBorderLeftColor(color);
159 return; 212 return;
160 case CSSPropertyBorderRightColor: 213 case CSSPropertyBorderRightColor:
161 style.setVisitedLinkBorderRightColor(color); 214 style.setVisitedLinkBorderRightColor(color);
162 return; 215 return;
163 case CSSPropertyBorderTopColor: 216 case CSSPropertyBorderTopColor:
164 style.setVisitedLinkBorderTopColor(color); 217 style.setVisitedLinkBorderTopColor(color);
165 return; 218 return;
219 case CSSPropertyCaretColor:
220 return style.setVisitedLinkCaretColor(color);
166 case CSSPropertyColor: 221 case CSSPropertyColor:
167 style.setVisitedLinkColor(color); 222 style.setVisitedLinkColor(color);
168 return; 223 return;
169 case CSSPropertyFloodColor: 224 case CSSPropertyFloodColor:
170 style.setFloodColor(color); 225 style.setFloodColor(color);
171 return; 226 return;
172 case CSSPropertyLightingColor: 227 case CSSPropertyLightingColor:
173 style.setLightingColor(color); 228 style.setLightingColor(color);
174 return; 229 return;
175 case CSSPropertyOutlineColor: 230 case CSSPropertyOutlineColor:
(...skipping 11 matching lines...) Expand all
187 case CSSPropertyWebkitTextStrokeColor: 242 case CSSPropertyWebkitTextStrokeColor:
188 style.setVisitedLinkTextStrokeColor(color); 243 style.setVisitedLinkTextStrokeColor(color);
189 return; 244 return;
190 default: 245 default:
191 NOTREACHED(); 246 NOTREACHED();
192 return; 247 return;
193 } 248 }
194 } 249 }
195 250
196 } // namespace blink 251 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698