| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 "ui/native_theme/common_theme.h" | 5 #include "ui/native_theme/common_theme.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
| 9 #include "third_party/skia/include/core/SkCanvas.h" | 9 #include "third_party/skia/include/core/SkCanvas.h" |
| 10 #include "ui/base/material_design/material_design_controller.h" | 10 #include "ui/base/material_design/material_design_controller.h" |
| 11 #include "ui/base/resource/resource_bundle.h" | 11 #include "ui/base/resource/resource_bundle.h" |
| 12 #include "ui/gfx/canvas.h" | 12 #include "ui/gfx/canvas.h" |
| 13 #include "ui/gfx/color_palette.h" | 13 #include "ui/gfx/color_palette.h" |
| 14 #include "ui/gfx/color_utils.h" | 14 #include "ui/gfx/color_utils.h" |
| 15 #include "ui/gfx/geometry/rect.h" | 15 #include "ui/gfx/geometry/rect.h" |
| 16 #include "ui/gfx/image/image_skia.h" | 16 #include "ui/gfx/image/image_skia.h" |
| 17 #include "ui/gfx/skia_util.h" | 17 #include "ui/gfx/skia_util.h" |
| 18 #include "ui/resources/grit/ui_resources.h" | 18 #include "ui/resources/grit/ui_resources.h" |
| 19 | 19 |
| 20 namespace ui { | 20 namespace ui { |
| 21 | 21 |
| 22 SkColor GetAuraColor(NativeTheme::ColorId color_id, | 22 SkColor GetAuraColor(NativeTheme::ColorId color_id, |
| 23 const NativeTheme* base_theme) { | 23 const NativeTheme* base_theme) { |
| 24 // Shared colors. | |
| 25 static const SkColor kTextfieldDefaultBackground = SK_ColorWHITE; | |
| 26 static const SkColor kTextfieldSelectionBackgroundFocused = | |
| 27 SkColorSetARGB(0x54, 0x60, 0xA8, 0xEB); | |
| 28 | |
| 29 // MD colors. | 24 // MD colors. |
| 30 if (ui::MaterialDesignController::IsModeMaterial()) { | 25 if (ui::MaterialDesignController::IsModeMaterial()) { |
| 31 // Dialogs: | 26 // Dialogs: |
| 32 static const SkColor kDialogBackgroundColorMd = SK_ColorWHITE; | 27 static const SkColor kDialogBackgroundColorMd = SK_ColorWHITE; |
| 33 // MenuItem: | 28 // MenuItem: |
| 34 static const SkColor kMenuHighlightBackgroundColorMd = | 29 static const SkColor kMenuHighlightBackgroundColorMd = |
| 35 SkColorSetARGB(0x14, 0x00, 0x00, 0x00); | 30 SkColorSetARGB(0x14, 0x00, 0x00, 0x00); |
| 36 static const SkColor kSelectedMenuItemForegroundColorMd = SK_ColorBLACK; | 31 static const SkColor kSelectedMenuItemForegroundColorMd = SK_ColorBLACK; |
| 37 // Link: | 32 // Link: |
| 38 static const SkColor kLinkDisabledColorMd = SK_ColorBLACK; | |
| 39 static const SkColor kLinkEnabledColorMd = gfx::kGoogleBlue700; | 33 static const SkColor kLinkEnabledColorMd = gfx::kGoogleBlue700; |
| 40 // Results tables: | 34 // Results tables: |
| 41 static const SkColor kResultsTableTextMd = SK_ColorBLACK; | 35 static const SkColor kResultsTableTextMd = SK_ColorBLACK; |
| 42 static const SkColor kResultsTableDimmedTextMd = | 36 static const SkColor kResultsTableDimmedTextMd = |
| 43 SkColorSetRGB(0x64, 0x64, 0x64); | 37 SkColorSetRGB(0x64, 0x64, 0x64); |
| 44 static const SkColor kPositiveTextColorMd = SkColorSetRGB(0x0b, 0x80, 0x43); | |
| 45 static const SkColor kNegativeTextColorMd = SkColorSetRGB(0xc5, 0x39, 0x29); | |
| 46 | 38 |
| 47 switch (color_id) { | 39 switch (color_id) { |
| 48 // Dialogs | 40 // Dialogs |
| 49 case NativeTheme::kColorId_DialogBackground: | 41 case NativeTheme::kColorId_DialogBackground: |
| 50 case NativeTheme::kColorId_BubbleBackground: | 42 case NativeTheme::kColorId_BubbleBackground: |
| 51 return kDialogBackgroundColorMd; | 43 return kDialogBackgroundColorMd; |
| 52 | 44 |
| 53 // MenuItem | 45 // MenuItem |
| 54 case NativeTheme::kColorId_FocusedMenuItemBackgroundColor: | 46 case NativeTheme::kColorId_FocusedMenuItemBackgroundColor: |
| 55 return kMenuHighlightBackgroundColorMd; | 47 return kMenuHighlightBackgroundColorMd; |
| 56 case NativeTheme::kColorId_SelectedMenuItemForegroundColor: | 48 case NativeTheme::kColorId_SelectedMenuItemForegroundColor: |
| 57 return kSelectedMenuItemForegroundColorMd; | 49 return kSelectedMenuItemForegroundColorMd; |
| 58 // Link | 50 // Link |
| 59 case NativeTheme::kColorId_LinkDisabled: | |
| 60 return kLinkDisabledColorMd; | |
| 61 case NativeTheme::kColorId_LinkEnabled: | 51 case NativeTheme::kColorId_LinkEnabled: |
| 62 case NativeTheme::kColorId_LinkPressed: | 52 case NativeTheme::kColorId_LinkPressed: |
| 63 // Normal and pressed share a color. | 53 // Normal and pressed share a color. |
| 64 return kLinkEnabledColorMd; | 54 return kLinkEnabledColorMd; |
| 65 | 55 |
| 66 // FocusableBorder | 56 // FocusableBorder |
| 67 case NativeTheme::kColorId_FocusedBorderColor: | 57 case NativeTheme::kColorId_FocusedBorderColor: |
| 68 return gfx::kGoogleBlue500; | 58 return gfx::kGoogleBlue500; |
| 69 case NativeTheme::kColorId_UnfocusedBorderColor: | 59 case NativeTheme::kColorId_UnfocusedBorderColor: |
| 70 return SkColorSetA(SK_ColorBLACK, 0x66); | 60 return SkColorSetA(SK_ColorBLACK, 0x66); |
| 71 | 61 |
| 72 // Results Tables | 62 // Results Tables |
| 73 case NativeTheme::kColorId_ResultsTableHoveredBackground: | 63 case NativeTheme::kColorId_ResultsTableHoveredBackground: |
| 74 return SkColorSetA(base_theme->GetSystemColor( | 64 return SkColorSetA(base_theme->GetSystemColor( |
| 75 NativeTheme::kColorId_ResultsTableNormalText), | 65 NativeTheme::kColorId_ResultsTableNormalText), |
| 76 0x0D); | 66 0x0D); |
| 77 case NativeTheme::kColorId_ResultsTableSelectedBackground: | 67 case NativeTheme::kColorId_ResultsTableSelectedBackground: |
| 78 return SkColorSetA(base_theme->GetSystemColor( | 68 return SkColorSetA(base_theme->GetSystemColor( |
| 79 NativeTheme::kColorId_ResultsTableNormalText), | 69 NativeTheme::kColorId_ResultsTableNormalText), |
| 80 0x14); | 70 0x14); |
| 81 case NativeTheme::kColorId_ResultsTableNormalText: | 71 case NativeTheme::kColorId_ResultsTableNormalText: |
| 82 case NativeTheme::kColorId_ResultsTableHoveredText: | 72 case NativeTheme::kColorId_ResultsTableHoveredText: |
| 83 case NativeTheme::kColorId_ResultsTableSelectedText: | 73 case NativeTheme::kColorId_ResultsTableSelectedText: |
| 84 case NativeTheme::kColorId_ResultsTableNormalHeadline: | |
| 85 case NativeTheme::kColorId_ResultsTableHoveredHeadline: | |
| 86 case NativeTheme::kColorId_ResultsTableSelectedHeadline: | |
| 87 return kResultsTableTextMd; | 74 return kResultsTableTextMd; |
| 88 case NativeTheme::kColorId_ResultsTableNormalDimmedText: | 75 case NativeTheme::kColorId_ResultsTableNormalDimmedText: |
| 89 case NativeTheme::kColorId_ResultsTableHoveredDimmedText: | 76 case NativeTheme::kColorId_ResultsTableHoveredDimmedText: |
| 90 case NativeTheme::kColorId_ResultsTableSelectedDimmedText: | 77 case NativeTheme::kColorId_ResultsTableSelectedDimmedText: |
| 91 return kResultsTableDimmedTextMd; | 78 return kResultsTableDimmedTextMd; |
| 92 case NativeTheme::kColorId_ResultsTableNormalUrl: | 79 case NativeTheme::kColorId_ResultsTableNormalUrl: |
| 93 case NativeTheme::kColorId_ResultsTableHoveredUrl: | 80 case NativeTheme::kColorId_ResultsTableHoveredUrl: |
| 94 case NativeTheme::kColorId_ResultsTableSelectedUrl: | 81 case NativeTheme::kColorId_ResultsTableSelectedUrl: |
| 95 return base_theme->GetSystemColor(NativeTheme::kColorId_LinkEnabled); | 82 return base_theme->GetSystemColor(NativeTheme::kColorId_LinkEnabled); |
| 96 case NativeTheme::kColorId_ResultsTablePositiveText: | |
| 97 case NativeTheme::kColorId_ResultsTablePositiveHoveredText: | |
| 98 case NativeTheme::kColorId_ResultsTablePositiveSelectedText: | |
| 99 return kPositiveTextColorMd; | |
| 100 case NativeTheme::kColorId_ResultsTableNegativeText: | |
| 101 case NativeTheme::kColorId_ResultsTableNegativeHoveredText: | |
| 102 case NativeTheme::kColorId_ResultsTableNegativeSelectedText: | |
| 103 return kNegativeTextColorMd; | |
| 104 | 83 |
| 105 default: | 84 default: |
| 106 break; | 85 break; |
| 107 } | 86 } |
| 108 } | 87 } |
| 109 | 88 |
| 110 // Pre-MD colors. | 89 // Pre-MD colors. |
| 111 // Windows: | 90 // Windows: |
| 112 static const SkColor kWindowBackgroundColor = SK_ColorWHITE; | 91 static const SkColor kWindowBackgroundColor = SK_ColorWHITE; |
| 113 // Dialogs: | 92 // Dialogs: |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 148 SkColorSetARGB(0xCC, 0xFF, 0xFF, 0xFF); | 127 SkColorSetARGB(0xCC, 0xFF, 0xFF, 0xFF); |
| 149 // Label: | 128 // Label: |
| 150 static const SkColor kLabelEnabledColor = kButtonEnabledColor; | 129 static const SkColor kLabelEnabledColor = kButtonEnabledColor; |
| 151 static const SkColor kLabelBackgroundColor = SK_ColorWHITE; | 130 static const SkColor kLabelBackgroundColor = SK_ColorWHITE; |
| 152 // Link: | 131 // Link: |
| 153 static const SkColor kLinkDisabledColor = SK_ColorBLACK; | 132 static const SkColor kLinkDisabledColor = SK_ColorBLACK; |
| 154 static const SkColor kLinkEnabledColor = SkColorSetRGB(0, 51, 153); | 133 static const SkColor kLinkEnabledColor = SkColorSetRGB(0, 51, 153); |
| 155 static const SkColor kLinkPressedColor = SK_ColorRED; | 134 static const SkColor kLinkPressedColor = SK_ColorRED; |
| 156 // Textfield: | 135 // Textfield: |
| 157 static const SkColor kTextfieldDefaultColor = SK_ColorBLACK; | 136 static const SkColor kTextfieldDefaultColor = SK_ColorBLACK; |
| 137 static const SkColor kTextfieldDefaultBackground = SK_ColorWHITE; |
| 158 static const SkColor kTextfieldReadOnlyColor = SK_ColorDKGRAY; | 138 static const SkColor kTextfieldReadOnlyColor = SK_ColorDKGRAY; |
| 159 static const SkColor kTextfieldReadOnlyBackground = SK_ColorWHITE; | 139 static const SkColor kTextfieldReadOnlyBackground = SK_ColorWHITE; |
| 140 static const SkColor kTextfieldSelectionBackgroundFocused = |
| 141 SkColorSetARGB(0x54, 0x60, 0xA8, 0xEB); |
| 160 static const SkColor kTextfieldSelectionColor = color_utils::AlphaBlend( | 142 static const SkColor kTextfieldSelectionColor = color_utils::AlphaBlend( |
| 161 SK_ColorBLACK, kTextfieldSelectionBackgroundFocused, 0xdd); | 143 SK_ColorBLACK, kTextfieldSelectionBackgroundFocused, 0xdd); |
| 162 // Tooltip | 144 // Tooltip |
| 163 static const SkColor kTooltipBackground = 0xFFFFFFCC; | 145 static const SkColor kTooltipBackground = 0xFFFFFFCC; |
| 164 static const SkColor kTooltipTextColor = kLabelEnabledColor; | 146 static const SkColor kTooltipTextColor = kLabelEnabledColor; |
| 165 // Tree | 147 // Tree |
| 166 static const SkColor kTreeBackground = SK_ColorWHITE; | 148 static const SkColor kTreeBackground = SK_ColorWHITE; |
| 167 static const SkColor kTreeTextColor = SK_ColorBLACK; | 149 static const SkColor kTreeTextColor = SK_ColorBLACK; |
| 168 static const SkColor kTreeSelectedTextColor = SK_ColorBLACK; | 150 static const SkColor kTreeSelectedTextColor = SK_ColorBLACK; |
| 169 static const SkColor kTreeSelectionBackgroundColor = | 151 static const SkColor kTreeSelectionBackgroundColor = |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 363 return kResultsTableHoveredBackground; | 345 return kResultsTableHoveredBackground; |
| 364 case NativeTheme::kColorId_ResultsTableSelectedBackground: | 346 case NativeTheme::kColorId_ResultsTableSelectedBackground: |
| 365 return kResultsTableSelectedBackground; | 347 return kResultsTableSelectedBackground; |
| 366 case NativeTheme::kColorId_ResultsTableNormalText: | 348 case NativeTheme::kColorId_ResultsTableNormalText: |
| 367 return kResultsTableNormalText; | 349 return kResultsTableNormalText; |
| 368 case NativeTheme::kColorId_ResultsTableHoveredText: | 350 case NativeTheme::kColorId_ResultsTableHoveredText: |
| 369 return kResultsTableHoveredText; | 351 return kResultsTableHoveredText; |
| 370 case NativeTheme::kColorId_ResultsTableSelectedText: | 352 case NativeTheme::kColorId_ResultsTableSelectedText: |
| 371 return kResultsTableSelectedText; | 353 return kResultsTableSelectedText; |
| 372 case NativeTheme::kColorId_ResultsTableNormalDimmedText: | 354 case NativeTheme::kColorId_ResultsTableNormalDimmedText: |
| 373 case NativeTheme::kColorId_ResultsTableNormalHeadline: | |
| 374 return kResultsTableNormalDimmedText; | 355 return kResultsTableNormalDimmedText; |
| 375 case NativeTheme::kColorId_ResultsTableHoveredDimmedText: | 356 case NativeTheme::kColorId_ResultsTableHoveredDimmedText: |
| 376 case NativeTheme::kColorId_ResultsTableHoveredHeadline: | |
| 377 return kResultsTableHoveredDimmedText; | 357 return kResultsTableHoveredDimmedText; |
| 378 case NativeTheme::kColorId_ResultsTableSelectedDimmedText: | 358 case NativeTheme::kColorId_ResultsTableSelectedDimmedText: |
| 379 case NativeTheme::kColorId_ResultsTableSelectedHeadline: | |
| 380 return kResultsTableSelectedDimmedText; | 359 return kResultsTableSelectedDimmedText; |
| 381 case NativeTheme::kColorId_ResultsTableNormalUrl: | 360 case NativeTheme::kColorId_ResultsTableNormalUrl: |
| 382 return kResultsTableNormalUrl; | 361 return kResultsTableNormalUrl; |
| 383 case NativeTheme::kColorId_ResultsTableHoveredUrl: | 362 case NativeTheme::kColorId_ResultsTableHoveredUrl: |
| 384 case NativeTheme::kColorId_ResultsTableSelectedUrl: | 363 case NativeTheme::kColorId_ResultsTableSelectedUrl: |
| 385 return kResultsTableSelectedOrHoveredUrl; | 364 return kResultsTableSelectedOrHoveredUrl; |
| 386 case NativeTheme::kColorId_ResultsTablePositiveText: | 365 case NativeTheme::kColorId_ResultsTablePositiveText: |
| 387 return kResultsTablePositiveText; | 366 return kResultsTablePositiveText; |
| 388 case NativeTheme::kColorId_ResultsTablePositiveHoveredText: | 367 case NativeTheme::kColorId_ResultsTablePositiveHoveredText: |
| 389 return kResultsTablePositiveHoveredText; | 368 return kResultsTablePositiveHoveredText; |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 435 } | 414 } |
| 436 if (menu_item.corner_radius > 0) { | 415 if (menu_item.corner_radius > 0) { |
| 437 const SkScalar radius = SkIntToScalar(menu_item.corner_radius); | 416 const SkScalar radius = SkIntToScalar(menu_item.corner_radius); |
| 438 canvas->drawRoundRect(gfx::RectToSkRect(rect), radius, radius, paint); | 417 canvas->drawRoundRect(gfx::RectToSkRect(rect), radius, radius, paint); |
| 439 return; | 418 return; |
| 440 } | 419 } |
| 441 canvas->drawRect(gfx::RectToSkRect(rect), paint); | 420 canvas->drawRect(gfx::RectToSkRect(rect), paint); |
| 442 } | 421 } |
| 443 | 422 |
| 444 } // namespace ui | 423 } // namespace ui |
| OLD | NEW |