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/css/StyleColor.h" | 5 #include "core/css/StyleColor.h" |
6 | 6 |
7 #include "core/layout/LayoutTheme.h" | 7 #include "core/layout/LayoutTheme.h" |
8 | 8 |
9 namespace blink { | 9 namespace blink { |
10 | 10 |
11 Color StyleColor::colorFromKeyword(CSSValueID keyword) { | 11 Color StyleColor::colorFromKeyword(CSSValueID keyword) { |
12 if (const char* valueName = getValueName(keyword)) { | 12 if (const char* valueName = getValueName(keyword)) { |
13 if (const NamedColor* namedColor = findColor(valueName, strlen(valueName))) | 13 if (const NamedColor* namedColor = findColor(valueName, strlen(valueName))) |
14 return Color(namedColor->ARGBValue); | 14 return Color(namedColor->ARGBValue); |
15 } | 15 } |
16 return LayoutTheme::theme().systemColor(keyword); | 16 return LayoutTheme::theme().systemColor(keyword); |
17 } | 17 } |
18 | 18 |
| 19 // TODO(sashab): Generate this function. |
19 bool StyleColor::isColorKeyword(CSSValueID id) { | 20 bool StyleColor::isColorKeyword(CSSValueID id) { |
20 // Named colors and color keywords: | 21 // Named colors and color keywords: |
21 // | 22 // |
22 // <named-color> | 23 // <named-color> |
23 // 'aqua', 'black', 'blue', ..., 'yellow' (CSS3: "basic color keywords") | 24 // 'aqua', 'black', 'blue', ..., 'yellow' (CSS3: "basic color keywords") |
24 // 'aliceblue', ..., 'yellowgreen' (CSS3: "extended color keywords") | 25 // 'aliceblue', ..., 'yellowgreen' (CSS3: "extended color keywords") |
25 // 'transparent' | 26 // 'transparent' |
26 // | 27 // |
27 // 'currentcolor' | 28 // 'currentcolor' |
28 // | 29 // |
29 // <deprecated-system-color> | 30 // <deprecated-system-color> |
30 // 'ActiveBorder', ..., 'WindowText' | 31 // 'ActiveBorder', ..., 'WindowText' |
31 // | 32 // |
32 // WebKit proprietary/internal: | 33 // WebKit proprietary/internal: |
33 // '-webkit-link' | 34 // '-webkit-link' |
34 // '-webkit-activelink' | 35 // '-webkit-activelink' |
35 // '-internal-active-list-box-selection' | 36 // '-internal-active-list-box-selection' |
36 // '-internal-active-list-box-selection-text' | 37 // '-internal-active-list-box-selection-text' |
37 // '-internal-inactive-list-box-selection' | 38 // '-internal-inactive-list-box-selection' |
38 // '-internal-inactive-list-box-selection-text' | 39 // '-internal-inactive-list-box-selection-text' |
39 // '-webkit-focus-ring-color' | 40 // '-webkit-focus-ring-color' |
40 // '-internal-quirk-inherit' | 41 // '-internal-quirk-inherit' |
41 // | 42 // |
42 return (id >= CSSValueAqua && id <= CSSValueInternalQuirkInherit) || | 43 return id == CSSValueAqua || id == CSSValueBlack || id == CSSValueBlue || |
43 (id >= CSSValueAliceblue && id <= CSSValueYellowgreen) || | 44 id == CSSValueFuchsia || id == CSSValueGray || id == CSSValueGreen || |
44 id == CSSValueMenu; | 45 id == CSSValueLime || id == CSSValueMaroon || id == CSSValueNavy || |
| 46 id == CSSValueOlive || id == CSSValueOrange || id == CSSValuePurple || |
| 47 id == CSSValueRed || id == CSSValueSilver || id == CSSValueTeal || |
| 48 id == CSSValueWhite || id == CSSValueYellow || |
| 49 id == CSSValueTransparent || id == CSSValueWebkitLink || |
| 50 id == CSSValueWebkitActivelink || id == CSSValueActiveborder || |
| 51 id == CSSValueActivecaption || id == CSSValueAppworkspace || |
| 52 id == CSSValueBackground || id == CSSValueButtonface || |
| 53 id == CSSValueButtonhighlight || id == CSSValueButtonshadow || |
| 54 id == CSSValueButtontext || id == CSSValueCaptiontext || |
| 55 id == CSSValueGraytext || id == CSSValueHighlight || |
| 56 id == CSSValueHighlighttext || id == CSSValueInactiveborder || |
| 57 id == CSSValueInactivecaption || id == CSSValueInactivecaptiontext || |
| 58 id == CSSValueInfobackground || id == CSSValueInfotext || |
| 59 id == CSSValueMenutext || id == CSSValueScrollbar || |
| 60 id == CSSValueThreeddarkshadow || id == CSSValueThreedface || |
| 61 id == CSSValueThreedhighlight || id == CSSValueThreedlightshadow || |
| 62 id == CSSValueThreedshadow || id == CSSValueWindow || |
| 63 id == CSSValueWindowframe || id == CSSValueWindowtext || |
| 64 id == CSSValueInternalActiveListBoxSelection || |
| 65 id == CSSValueInternalActiveListBoxSelectionText || |
| 66 id == CSSValueInternalInactiveListBoxSelection || |
| 67 id == CSSValueInternalInactiveListBoxSelectionText || |
| 68 id == CSSValueWebkitFocusRingColor || id == CSSValueCurrentcolor || |
| 69 id == CSSValueGrey || id == CSSValueInternalQuirkInherit || |
| 70 id == CSSValueAliceblue || id == CSSValueAntiquewhite || |
| 71 id == CSSValueAquamarine || id == CSSValueAzure || |
| 72 id == CSSValueBeige || id == CSSValueBisque || |
| 73 id == CSSValueBlanchedalmond || id == CSSValueBlueviolet || |
| 74 id == CSSValueBrown || id == CSSValueBurlywood || |
| 75 id == CSSValueCadetblue || id == CSSValueChartreuse || |
| 76 id == CSSValueChocolate || id == CSSValueCoral || |
| 77 id == CSSValueCornflowerblue || id == CSSValueCornsilk || |
| 78 id == CSSValueCrimson || id == CSSValueCyan || |
| 79 id == CSSValueDarkblue || id == CSSValueDarkcyan || |
| 80 id == CSSValueDarkgoldenrod || id == CSSValueDarkgray || |
| 81 id == CSSValueDarkgreen || id == CSSValueDarkgrey || |
| 82 id == CSSValueDarkkhaki || id == CSSValueDarkmagenta || |
| 83 id == CSSValueDarkolivegreen || id == CSSValueDarkorange || |
| 84 id == CSSValueDarkorchid || id == CSSValueDarkred || |
| 85 id == CSSValueDarksalmon || id == CSSValueDarkseagreen || |
| 86 id == CSSValueDarkslateblue || id == CSSValueDarkslategray || |
| 87 id == CSSValueDarkslategrey || id == CSSValueDarkturquoise || |
| 88 id == CSSValueDarkviolet || id == CSSValueDeeppink || |
| 89 id == CSSValueDeepskyblue || id == CSSValueDimgray || |
| 90 id == CSSValueDimgrey || id == CSSValueDodgerblue || |
| 91 id == CSSValueFirebrick || id == CSSValueFloralwhite || |
| 92 id == CSSValueForestgreen || id == CSSValueGainsboro || |
| 93 id == CSSValueGhostwhite || id == CSSValueGold || |
| 94 id == CSSValueGoldenrod || id == CSSValueGreenyellow || |
| 95 id == CSSValueHoneydew || id == CSSValueHotpink || |
| 96 id == CSSValueIndianred || id == CSSValueIndigo || |
| 97 id == CSSValueIvory || id == CSSValueKhaki || id == CSSValueLavender || |
| 98 id == CSSValueLavenderblush || id == CSSValueLawngreen || |
| 99 id == CSSValueLemonchiffon || id == CSSValueLightblue || |
| 100 id == CSSValueLightcoral || id == CSSValueLightcyan || |
| 101 id == CSSValueLightgoldenrodyellow || id == CSSValueLightgray || |
| 102 id == CSSValueLightgreen || id == CSSValueLightgrey || |
| 103 id == CSSValueLightpink || id == CSSValueLightsalmon || |
| 104 id == CSSValueLightseagreen || id == CSSValueLightskyblue || |
| 105 id == CSSValueLightslategray || id == CSSValueLightslategrey || |
| 106 id == CSSValueLightsteelblue || id == CSSValueLightyellow || |
| 107 id == CSSValueLimegreen || id == CSSValueLinen || |
| 108 id == CSSValueMagenta || id == CSSValueMediumaquamarine || |
| 109 id == CSSValueMediumblue || id == CSSValueMediumorchid || |
| 110 id == CSSValueMediumpurple || id == CSSValueMediumseagreen || |
| 111 id == CSSValueMediumslateblue || id == CSSValueMediumspringgreen || |
| 112 id == CSSValueMediumturquoise || id == CSSValueMediumvioletred || |
| 113 id == CSSValueMidnightblue || id == CSSValueMintcream || |
| 114 id == CSSValueMistyrose || id == CSSValueMoccasin || |
| 115 id == CSSValueNavajowhite || id == CSSValueOldlace || |
| 116 id == CSSValueOlivedrab || id == CSSValueOrangered || |
| 117 id == CSSValueOrchid || id == CSSValuePalegoldenrod || |
| 118 id == CSSValuePalegreen || id == CSSValuePaleturquoise || |
| 119 id == CSSValuePalevioletred || id == CSSValuePapayawhip || |
| 120 id == CSSValuePeachpuff || id == CSSValuePeru || id == CSSValuePink || |
| 121 id == CSSValuePlum || id == CSSValuePowderblue || |
| 122 id == CSSValueRebeccapurple || id == CSSValueRosybrown || |
| 123 id == CSSValueRoyalblue || id == CSSValueSaddlebrown || |
| 124 id == CSSValueSalmon || id == CSSValueSandybrown || |
| 125 id == CSSValueSeagreen || id == CSSValueSeashell || |
| 126 id == CSSValueSienna || id == CSSValueSkyblue || |
| 127 id == CSSValueSlateblue || id == CSSValueSlategray || |
| 128 id == CSSValueSlategrey || id == CSSValueSnow || |
| 129 id == CSSValueSpringgreen || id == CSSValueSteelblue || |
| 130 id == CSSValueTan || id == CSSValueThistle || id == CSSValueTomato || |
| 131 id == CSSValueTurquoise || id == CSSValueViolet || |
| 132 id == CSSValueWheat || id == CSSValueWhitesmoke || |
| 133 id == CSSValueYellowgreen || id == CSSValueMenu; |
45 } | 134 } |
46 | 135 |
47 bool StyleColor::isSystemColor(CSSValueID id) { | 136 bool StyleColor::isSystemColor(CSSValueID id) { |
48 return (id >= CSSValueActiveborder && id <= CSSValueWindowtext) || | 137 return id == CSSValueActiveborder || id == CSSValueActivecaption || |
49 id == CSSValueMenu; | 138 id == CSSValueAppworkspace || id == CSSValueBackground || |
| 139 id == CSSValueButtonface || id == CSSValueButtonhighlight || |
| 140 id == CSSValueButtonshadow || id == CSSValueButtontext || |
| 141 id == CSSValueCaptiontext || id == CSSValueGraytext || |
| 142 id == CSSValueHighlight || id == CSSValueHighlighttext || |
| 143 id == CSSValueInactiveborder || id == CSSValueInactivecaption || |
| 144 id == CSSValueInactivecaptiontext || id == CSSValueInfobackground || |
| 145 id == CSSValueInfotext || id == CSSValueMenutext || |
| 146 id == CSSValueScrollbar || id == CSSValueThreeddarkshadow || |
| 147 id == CSSValueThreedface || id == CSSValueThreedhighlight || |
| 148 id == CSSValueThreedlightshadow || id == CSSValueThreedshadow || |
| 149 id == CSSValueWindow || id == CSSValueWindowframe || |
| 150 id == CSSValueWindowtext || id == CSSValueMenu; |
50 } | 151 } |
51 | 152 |
52 } // namespace blink | 153 } // namespace blink |
OLD | NEW |