fallback_theme.cc revision 5c02ac1a9c1b504631c0a3d2b6e737b5d738bae1
1// Copyright (c) 2012 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#include "ui/native_theme/fallback_theme.h" 6 7#include "base/basictypes.h" 8#include "base/logging.h" 9#include "ui/gfx/color_utils.h" 10#include "ui/native_theme/common_theme.h" 11 12namespace ui { 13 14FallbackTheme::FallbackTheme() { 15} 16 17FallbackTheme::~FallbackTheme() { 18} 19 20SkColor FallbackTheme::GetSystemColor(ColorId color_id) const { 21 // This implementation returns hardcoded colors. 22 23 static const SkColor kInvalidColorIdColor = SkColorSetRGB(255, 0, 128); 24 // Menu: 25 static const SkColor kMenuBackgroundColor = SK_ColorWHITE; 26 // Windows: 27 static const SkColor kWindowBackgroundColor = SK_ColorWHITE; 28 // Dialogs: 29 static const SkColor kDialogBackgroundColor = SkColorSetRGB(251, 251, 251); 30 // FocusableBorder: 31 static const SkColor kFocusedBorderColor = SkColorSetRGB(0x4D, 0x90, 0xFE); 32 static const SkColor kUnfocusedBorderColor = SkColorSetRGB(0xD9, 0xD9, 0xD9); 33 // Button: 34 static const SkColor kButtonBackgroundColor = SkColorSetRGB(0xDE, 0xDE, 0xDE); 35 static const SkColor kButtonEnabledColor = SkColorSetRGB(0x22, 0x22, 0x22); 36 static const SkColor kButtonDisabledColor = SkColorSetRGB(0x99, 0x99, 0x99); 37 static const SkColor kButtonHighlightColor = SkColorSetRGB(0, 0, 0); 38 static const SkColor kButtonHoverColor = kButtonEnabledColor; 39 static const SkColor kButtonHoverBackgroundColor = 40 SkColorSetRGB(0xEA, 0xEA, 0xEA); 41 // MenuItem: 42 static const SkColor kEnabledMenuItemForegroundColor = kButtonEnabledColor; 43 static const SkColor kDisabledMenuItemForegroundColor = kButtonDisabledColor; 44 static const SkColor kFocusedMenuItemBackgroundColor = 45 SkColorSetRGB(0xF1, 0xF1, 0xF1); 46 static const SkColor kHoverMenuItemBackgroundColor = 47 SkColorSetARGB(204, 255, 255, 255); 48 static const SkColor kMenuSeparatorColor = SkColorSetRGB(0xED, 0xED, 0xED); 49 static const SkColor kEnabledMenuButtonBorderColor = 50 SkColorSetARGB(36, 0, 0, 0); 51 static const SkColor kFocusedMenuButtonBorderColor = 52 SkColorSetARGB(72, 0, 0, 0); 53 static const SkColor kHoverMenuButtonBorderColor = 54 SkColorSetARGB(72, 0, 0, 0); 55 // Label: 56 static const SkColor kLabelEnabledColor = kButtonEnabledColor; 57 static const SkColor kLabelDisabledColor = kButtonDisabledColor; 58 static const SkColor kLabelBackgroundColor = SK_ColorWHITE; 59 // Textfield: 60 static const SkColor kTextfieldDefaultColor = SK_ColorBLACK; 61 static const SkColor kTextfieldDefaultBackground = SK_ColorWHITE; 62 static const SkColor kTextfieldReadOnlyColor = SK_ColorDKGRAY; 63 static const SkColor kTextfieldReadOnlyBackground = SK_ColorWHITE; 64 static const SkColor kTextfieldSelectionBackgroundFocused = 65 SkColorSetARGB(0x54, 0x60, 0xA8, 0xEB); 66 static const SkColor kTextfieldSelectionColor = 67 color_utils::AlphaBlend(SK_ColorBLACK, 68 kTextfieldSelectionBackgroundFocused, 0xdd); 69 // Tooltip 70 static const SkColor kTooltipBackground = 0xFFFFFFCC; 71 // Tree 72 static const SkColor kTreeBackground = SK_ColorWHITE; 73 static const SkColor kTreeTextColor = SK_ColorBLACK; 74 static const SkColor kTreeSelectedTextColor = SK_ColorBLACK; 75 static const SkColor kTreeSelectionBackgroundColor = 76 SkColorSetRGB(0xEE, 0xEE, 0xEE); 77 static const SkColor kTreeArrowColor = SkColorSetRGB(0x7A, 0x7A, 0x7A); 78 // Table 79 static const SkColor kTableBackground = SK_ColorWHITE; 80 static const SkColor kTableTextColor = SK_ColorBLACK; 81 static const SkColor kTableSelectedTextColor = SK_ColorBLACK; 82 static const SkColor kTableSelectionBackgroundColor = 83 SkColorSetRGB(0xEE, 0xEE, 0xEE); 84 static const SkColor kTableGroupingIndicatorColor = 85 SkColorSetRGB(0xCC, 0xCC, 0xCC); 86 // Results Tables 87 static const SkColor kResultsTableHoveredBackground = 88 color_utils::AlphaBlend(kTextfieldSelectionBackgroundFocused, 89 kTextfieldDefaultBackground, 0x40); 90 static const SkColor kResultsTableNormalText = color_utils::AlphaBlend( 91 SK_ColorBLACK, kTextfieldDefaultBackground, 0xDD); 92 static const SkColor kResultsTableHoveredText = color_utils::AlphaBlend( 93 SK_ColorBLACK, kResultsTableHoveredBackground, 0xDD); 94 static const SkColor kResultsTableSelectedText = color_utils::AlphaBlend( 95 SK_ColorBLACK, kTextfieldSelectionBackgroundFocused, 0xDD); 96 static const SkColor kResultsTableNormalDimmedText = color_utils::AlphaBlend( 97 SK_ColorBLACK, kTextfieldDefaultBackground, 0xBB); 98 static const SkColor kResultsTableHoveredDimmedText = color_utils::AlphaBlend( 99 SK_ColorBLACK, kResultsTableHoveredBackground, 0xBB); 100 static const SkColor kResultsTableSelectedDimmedText = 101 color_utils::AlphaBlend( 102 SK_ColorBLACK, kTextfieldSelectionBackgroundFocused, 0xBB); 103 static const SkColor kResultsTableSelectedOrHoveredUrl = 104 SkColorSetARGB(0xff, 0x00, 0x66, 0x22); 105 static const SkColor kResultsTableNormalDivider = color_utils::AlphaBlend( 106 kResultsTableNormalText, kTextfieldDefaultBackground, 0x34); 107 static const SkColor kResultsTableHoveredDivider = color_utils::AlphaBlend( 108 kResultsTableHoveredText, kResultsTableHoveredBackground, 0x34); 109 static const SkColor kResultsTabSelectedDivider = color_utils::AlphaBlend( 110 kResultsTableSelectedText, kTextfieldSelectionBackgroundFocused, 0x34); 111 112 SkColor color; 113 if (CommonThemeGetSystemColor(color_id, &color)) 114 return color; 115 116 switch (color_id) { 117 // Windows 118 case kColorId_WindowBackground: 119 return kWindowBackgroundColor; 120 121 // Dialogs 122 case kColorId_DialogBackground: 123 return kDialogBackgroundColor; 124 125 // FocusableBorder 126 case kColorId_FocusedBorderColor: 127 return kFocusedBorderColor; 128 case kColorId_UnfocusedBorderColor: 129 return kUnfocusedBorderColor; 130 131 // Button 132 case kColorId_ButtonBackgroundColor: 133 return kButtonBackgroundColor; 134 case kColorId_ButtonEnabledColor: 135 return kButtonEnabledColor; 136 case kColorId_ButtonDisabledColor: 137 return kButtonDisabledColor; 138 case kColorId_ButtonHighlightColor: 139 return kButtonHighlightColor; 140 case kColorId_ButtonHoverColor: 141 return kButtonHoverColor; 142 case kColorId_ButtonHoverBackgroundColor: 143 return kButtonHoverBackgroundColor; 144 145 // MenuItem 146 case kColorId_EnabledMenuItemForegroundColor: 147 return kEnabledMenuItemForegroundColor; 148 case kColorId_DisabledMenuItemForegroundColor: 149 return kDisabledMenuItemForegroundColor; 150 case kColorId_DisabledEmphasizedMenuItemForegroundColor: 151 return SK_ColorBLACK; 152 case kColorId_SelectedMenuItemForegroundColor: 153 return kEnabledMenuItemForegroundColor; 154 case kColorId_FocusedMenuItemBackgroundColor: 155 return kFocusedMenuItemBackgroundColor; 156 case kColorId_HoverMenuItemBackgroundColor: 157 return kHoverMenuItemBackgroundColor; 158 case kColorId_MenuSeparatorColor: 159 return kMenuSeparatorColor; 160 case kColorId_EnabledMenuButtonBorderColor: 161 return kEnabledMenuButtonBorderColor; 162 case kColorId_FocusedMenuButtonBorderColor: 163 return kFocusedMenuButtonBorderColor; 164 case kColorId_HoverMenuButtonBorderColor: 165 return kHoverMenuButtonBorderColor; 166 167 // Label 168 case kColorId_LabelEnabledColor: 169 return kLabelEnabledColor; 170 case kColorId_LabelDisabledColor: 171 return kLabelDisabledColor; 172 case kColorId_LabelBackgroundColor: 173 return kLabelBackgroundColor; 174 175 // Textfield 176 case kColorId_TextfieldDefaultColor: 177 return kTextfieldDefaultColor; 178 case kColorId_TextfieldDefaultBackground: 179 return kTextfieldDefaultBackground; 180 case kColorId_TextfieldReadOnlyColor: 181 return kTextfieldReadOnlyColor; 182 case kColorId_TextfieldReadOnlyBackground: 183 return kTextfieldReadOnlyBackground; 184 case kColorId_TextfieldSelectionColor: 185 return kTextfieldSelectionColor; 186 case kColorId_TextfieldSelectionBackgroundFocused: 187 return kTextfieldSelectionBackgroundFocused; 188 189 // Tooltip 190 case kColorId_TooltipBackground: 191 return kTooltipBackground; 192 193 // Tree 194 case kColorId_TreeBackground: 195 return kTreeBackground; 196 case kColorId_TreeText: 197 return kTreeTextColor; 198 case kColorId_TreeSelectedText: 199 case kColorId_TreeSelectedTextUnfocused: 200 return kTreeSelectedTextColor; 201 case kColorId_TreeSelectionBackgroundFocused: 202 case kColorId_TreeSelectionBackgroundUnfocused: 203 return kTreeSelectionBackgroundColor; 204 case kColorId_TreeArrow: 205 return kTreeArrowColor; 206 207 // Table 208 case kColorId_TableBackground: 209 return kTableBackground; 210 case kColorId_TableText: 211 return kTableTextColor; 212 case kColorId_TableSelectedText: 213 case kColorId_TableSelectedTextUnfocused: 214 return kTableSelectedTextColor; 215 case kColorId_TableSelectionBackgroundFocused: 216 case kColorId_TableSelectionBackgroundUnfocused: 217 return kTableSelectionBackgroundColor; 218 case kColorId_TableGroupingIndicatorColor: 219 return kTableGroupingIndicatorColor; 220 221 // Results Tables 222 case kColorId_ResultsTableNormalBackground: 223 return kTextfieldDefaultBackground; 224 case kColorId_ResultsTableHoveredBackground: 225 return kResultsTableHoveredBackground; 226 case kColorId_ResultsTableSelectedBackground: 227 return kTextfieldSelectionBackgroundFocused; 228 case kColorId_ResultsTableNormalText: 229 return kResultsTableNormalText; 230 case kColorId_ResultsTableHoveredText: 231 return kResultsTableHoveredText; 232 case kColorId_ResultsTableSelectedText: 233 return kResultsTableSelectedText; 234 case kColorId_ResultsTableNormalDimmedText: 235 return kResultsTableNormalDimmedText; 236 case kColorId_ResultsTableHoveredDimmedText: 237 return kResultsTableHoveredDimmedText; 238 case kColorId_ResultsTableSelectedDimmedText: 239 return kResultsTableSelectedDimmedText; 240 case kColorId_ResultsTableNormalUrl: 241 return kTextfieldSelectionColor; 242 case kColorId_ResultsTableHoveredUrl: 243 case kColorId_ResultsTableSelectedUrl: 244 return kResultsTableSelectedOrHoveredUrl; 245 case kColorId_ResultsTableNormalDivider: 246 return kResultsTableNormalDivider; 247 case kColorId_ResultsTableHoveredDivider: 248 return kResultsTableHoveredDivider; 249 case kColorId_ResultsTableSelectedDivider: 250 return kResultsTabSelectedDivider; 251 252 case kColorId_MenuBackgroundColor: 253 return kMenuBackgroundColor; 254 case kColorId_MenuBorderColor: 255 NOTREACHED(); 256 break; 257 } 258 259 return kInvalidColorIdColor; 260} 261 262} // namespace ui 263