| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "chrome/browser/ui/libgtkui/native_theme_gtk2.h" | 5 #include "chrome/browser/ui/libgtkui/native_theme_gtk2.h" |
| 6 | 6 |
| 7 #include <gtk/gtk.h> | 7 #include <gtk/gtk.h> |
| 8 | 8 |
| 9 #include "chrome/browser/ui/libgtkui/chrome_gtk_frame.h" | 9 #include "chrome/browser/ui/libgtkui/chrome_gtk_frame.h" |
| 10 #include "chrome/browser/ui/libgtkui/chrome_gtk_menu_subclasses.h" | 10 #include "chrome/browser/ui/libgtkui/chrome_gtk_menu_subclasses.h" |
| (...skipping 22 matching lines...) Expand all Loading... |
| 33 SELECTED = 3, | 33 SELECTED = 3, |
| 34 INSENSITIVE = 4, | 34 INSENSITIVE = 4, |
| 35 }; | 35 }; |
| 36 | 36 |
| 37 // Same order as enum WidgetState above | 37 // Same order as enum WidgetState above |
| 38 const GtkStateType stateMap[] = { | 38 const GtkStateType stateMap[] = { |
| 39 GTK_STATE_NORMAL, GTK_STATE_ACTIVE, GTK_STATE_PRELIGHT, | 39 GTK_STATE_NORMAL, GTK_STATE_ACTIVE, GTK_STATE_PRELIGHT, |
| 40 GTK_STATE_SELECTED, GTK_STATE_INSENSITIVE, | 40 GTK_STATE_SELECTED, GTK_STATE_INSENSITIVE, |
| 41 }; | 41 }; |
| 42 | 42 |
| 43 SkColor GetFGColor(GtkWidget* widget, WidgetState state) { | 43 SkColor GetFgColor(GtkWidget* widget, WidgetState state) { |
| 44 return GdkColorToSkColor(gtk_rc_get_style(widget)->fg[stateMap[state]]); | 44 return GdkColorToSkColor(gtk_rc_get_style(widget)->fg[stateMap[state]]); |
| 45 } | 45 } |
| 46 SkColor GetBGColor(GtkWidget* widget, WidgetState state) { | 46 SkColor GetBgColor(GtkWidget* widget, WidgetState state) { |
| 47 return GdkColorToSkColor(gtk_rc_get_style(widget)->bg[stateMap[state]]); | 47 return GdkColorToSkColor(gtk_rc_get_style(widget)->bg[stateMap[state]]); |
| 48 } | 48 } |
| 49 | 49 |
| 50 SkColor GetTextColor(GtkWidget* widget, WidgetState state) { | 50 SkColor GetTextColor(GtkWidget* widget, WidgetState state) { |
| 51 return GdkColorToSkColor(gtk_rc_get_style(widget)->text[stateMap[state]]); | 51 return GdkColorToSkColor(gtk_rc_get_style(widget)->text[stateMap[state]]); |
| 52 } | 52 } |
| 53 SkColor GetTextAAColor(GtkWidget* widget, WidgetState state) { | 53 SkColor GetTextAAColor(GtkWidget* widget, WidgetState state) { |
| 54 return GdkColorToSkColor(gtk_rc_get_style(widget)->text_aa[stateMap[state]]); | 54 return GdkColorToSkColor(gtk_rc_get_style(widget)->text_aa[stateMap[state]]); |
| 55 } | 55 } |
| 56 SkColor GetBaseColor(GtkWidget* widget, WidgetState state) { | 56 SkColor GetBaseColor(GtkWidget* widget, WidgetState state) { |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 125 canvas->drawRect(gfx::RectToSkRect(rect), paint); | 125 canvas->drawRect(gfx::RectToSkRect(rect), paint); |
| 126 } | 126 } |
| 127 | 127 |
| 128 SkColor NativeThemeGtk2::GetSystemColor(ColorId color_id) const { | 128 SkColor NativeThemeGtk2::GetSystemColor(ColorId color_id) const { |
| 129 const SkColor kPositiveTextColor = SkColorSetRGB(0x0b, 0x80, 0x43); | 129 const SkColor kPositiveTextColor = SkColorSetRGB(0x0b, 0x80, 0x43); |
| 130 const SkColor kNegativeTextColor = SkColorSetRGB(0xc5, 0x39, 0x29); | 130 const SkColor kNegativeTextColor = SkColorSetRGB(0xc5, 0x39, 0x29); |
| 131 | 131 |
| 132 switch (color_id) { | 132 switch (color_id) { |
| 133 // Windows | 133 // Windows |
| 134 case kColorId_WindowBackground: | 134 case kColorId_WindowBackground: |
| 135 return GetBGColor(GetWindow(), SELECTED); | 135 return GetBgColor(GetWindow(), SELECTED); |
| 136 | 136 |
| 137 // Dialogs | 137 // Dialogs |
| 138 case kColorId_DialogBackground: | 138 case kColorId_DialogBackground: |
| 139 case kColorId_BubbleBackground: | 139 case kColorId_BubbleBackground: |
| 140 return GetBGColor(GetWindow(), NORMAL); | 140 return GetBgColor(GetWindow(), NORMAL); |
| 141 | 141 |
| 142 // FocusableBorder | 142 // FocusableBorder |
| 143 case kColorId_FocusedBorderColor: | 143 case kColorId_FocusedBorderColor: |
| 144 return GetBGColor(GetEntry(), SELECTED); | 144 return GetBgColor(GetEntry(), SELECTED); |
| 145 case kColorId_UnfocusedBorderColor: | 145 case kColorId_UnfocusedBorderColor: |
| 146 return GetTextAAColor(GetEntry(), NORMAL); | 146 return GetTextAAColor(GetEntry(), NORMAL); |
| 147 | 147 |
| 148 // MenuItem | 148 // MenuItem |
| 149 case kColorId_SelectedMenuItemForegroundColor: | 149 case kColorId_SelectedMenuItemForegroundColor: |
| 150 return GetTextColor(GetMenuItem(), SELECTED); | 150 return GetTextColor(GetMenuItem(), SELECTED); |
| 151 case kColorId_FocusedMenuItemBackgroundColor: | 151 case kColorId_FocusedMenuItemBackgroundColor: |
| 152 return GetBGColor(GetMenuItem(), SELECTED); | 152 return GetBgColor(GetMenuItem(), SELECTED); |
| 153 | 153 |
| 154 case kColorId_EnabledMenuItemForegroundColor: | 154 case kColorId_EnabledMenuItemForegroundColor: |
| 155 return GetTextColor(GetMenuItem(), NORMAL); | 155 return GetTextColor(GetMenuItem(), NORMAL); |
| 156 case kColorId_MenuItemSubtitleColor: | 156 case kColorId_MenuItemSubtitleColor: |
| 157 case kColorId_DisabledMenuItemForegroundColor: | 157 case kColorId_DisabledMenuItemForegroundColor: |
| 158 return GetTextColor(GetMenuItem(), INSENSITIVE); | 158 return GetTextColor(GetMenuItem(), INSENSITIVE); |
| 159 case kColorId_FocusedMenuButtonBorderColor: | 159 case kColorId_FocusedMenuButtonBorderColor: |
| 160 return GetBGColor(GetEntry(), NORMAL); | 160 return GetBgColor(GetEntry(), NORMAL); |
| 161 case kColorId_HoverMenuButtonBorderColor: | 161 case kColorId_HoverMenuButtonBorderColor: |
| 162 return GetTextAAColor(GetEntry(), PRELIGHT); | 162 return GetTextAAColor(GetEntry(), PRELIGHT); |
| 163 case kColorId_MenuBorderColor: | 163 case kColorId_MenuBorderColor: |
| 164 case kColorId_EnabledMenuButtonBorderColor: | 164 case kColorId_EnabledMenuButtonBorderColor: |
| 165 case kColorId_MenuSeparatorColor: { | 165 case kColorId_MenuSeparatorColor: { |
| 166 return GetTextColor(GetMenuItem(), INSENSITIVE); | 166 return GetTextColor(GetMenuItem(), INSENSITIVE); |
| 167 } | 167 } |
| 168 case kColorId_MenuBackgroundColor: | 168 case kColorId_MenuBackgroundColor: |
| 169 return GetBGColor(GetMenu(), NORMAL); | 169 return GetBgColor(GetMenu(), NORMAL); |
| 170 | 170 |
| 171 // Label | 171 // Label |
| 172 case kColorId_LabelEnabledColor: | 172 case kColorId_LabelEnabledColor: |
| 173 return GetTextColor(GetEntry(), NORMAL); | 173 return GetTextColor(GetEntry(), NORMAL); |
| 174 case kColorId_LabelDisabledColor: | 174 case kColorId_LabelDisabledColor: |
| 175 return GetTextColor(GetLabel(), INSENSITIVE); | 175 return GetTextColor(GetLabel(), INSENSITIVE); |
| 176 case kColorId_LabelTextSelectionColor: | 176 case kColorId_LabelTextSelectionColor: |
| 177 return GetTextColor(GetLabel(), SELECTED); | 177 return GetTextColor(GetLabel(), SELECTED); |
| 178 case kColorId_LabelTextSelectionBackgroundFocused: | 178 case kColorId_LabelTextSelectionBackgroundFocused: |
| 179 return GetBaseColor(GetLabel(), SELECTED); | 179 return GetBaseColor(GetLabel(), SELECTED); |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 231 return GetTextColor(GetEntry(), ACTIVE); | 231 return GetTextColor(GetEntry(), ACTIVE); |
| 232 case kColorId_TextfieldReadOnlyBackground: | 232 case kColorId_TextfieldReadOnlyBackground: |
| 233 return GetBaseColor(GetEntry(), ACTIVE); | 233 return GetBaseColor(GetEntry(), ACTIVE); |
| 234 case kColorId_TextfieldSelectionColor: | 234 case kColorId_TextfieldSelectionColor: |
| 235 return GetTextColor(GetEntry(), SELECTED); | 235 return GetTextColor(GetEntry(), SELECTED); |
| 236 case kColorId_TextfieldSelectionBackgroundFocused: | 236 case kColorId_TextfieldSelectionBackgroundFocused: |
| 237 return GetBaseColor(GetEntry(), SELECTED); | 237 return GetBaseColor(GetEntry(), SELECTED); |
| 238 | 238 |
| 239 // Tooltips | 239 // Tooltips |
| 240 case kColorId_TooltipBackground: | 240 case kColorId_TooltipBackground: |
| 241 return GetBGColor(GetTooltip(), NORMAL); | 241 return GetBgColor(GetTooltip(), NORMAL); |
| 242 case kColorId_TooltipText: | 242 case kColorId_TooltipText: |
| 243 return GetFGColor(GetTooltip(), NORMAL); | 243 return GetFgColor(GetTooltip(), NORMAL); |
| 244 | 244 |
| 245 // Trees and Tables (implemented on GTK using the same class) | 245 // Trees and Tables (implemented on GTK using the same class) |
| 246 case kColorId_TableBackground: | 246 case kColorId_TableBackground: |
| 247 case kColorId_TreeBackground: | 247 case kColorId_TreeBackground: |
| 248 return GetBGColor(GetTree(), NORMAL); | 248 return GetBgColor(GetTree(), NORMAL); |
| 249 case kColorId_TableText: | 249 case kColorId_TableText: |
| 250 case kColorId_TreeText: | 250 case kColorId_TreeText: |
| 251 return GetTextColor(GetTree(), NORMAL); | 251 return GetTextColor(GetTree(), NORMAL); |
| 252 case kColorId_TableSelectedText: | 252 case kColorId_TableSelectedText: |
| 253 case kColorId_TableSelectedTextUnfocused: | 253 case kColorId_TableSelectedTextUnfocused: |
| 254 case kColorId_TreeSelectedText: | 254 case kColorId_TreeSelectedText: |
| 255 case kColorId_TreeSelectedTextUnfocused: | 255 case kColorId_TreeSelectedTextUnfocused: |
| 256 return GetTextColor(GetTree(), SELECTED); | 256 return GetTextColor(GetTree(), SELECTED); |
| 257 case kColorId_TableSelectionBackgroundFocused: | 257 case kColorId_TableSelectionBackgroundFocused: |
| 258 case kColorId_TableSelectionBackgroundUnfocused: | 258 case kColorId_TableSelectionBackgroundUnfocused: |
| 259 case kColorId_TreeSelectionBackgroundFocused: | 259 case kColorId_TreeSelectionBackgroundFocused: |
| 260 case kColorId_TreeSelectionBackgroundUnfocused: | 260 case kColorId_TreeSelectionBackgroundUnfocused: |
| 261 return GetBGColor(GetTree(), SELECTED); | 261 return GetBgColor(GetTree(), SELECTED); |
| 262 case kColorId_TreeArrow: | 262 case kColorId_TreeArrow: |
| 263 return GetFGColor(GetTree(), NORMAL); | 263 return GetFgColor(GetTree(), NORMAL); |
| 264 case kColorId_TableGroupingIndicatorColor: | 264 case kColorId_TableGroupingIndicatorColor: |
| 265 return GetTextAAColor(GetTree(), NORMAL); | 265 return GetTextAAColor(GetTree(), NORMAL); |
| 266 | 266 |
| 267 // Results Table | 267 // Results Table |
| 268 case kColorId_ResultsTableNormalBackground: | 268 case kColorId_ResultsTableNormalBackground: |
| 269 return GetSystemColor(kColorId_TextfieldDefaultBackground); | 269 return GetSystemColor(kColorId_TextfieldDefaultBackground); |
| 270 case kColorId_ResultsTableHoveredBackground: | 270 case kColorId_ResultsTableHoveredBackground: |
| 271 return color_utils::AlphaBlend( | 271 return color_utils::AlphaBlend( |
| 272 GetSystemColor(kColorId_TextfieldDefaultBackground), | 272 GetSystemColor(kColorId_TextfieldDefaultBackground), |
| 273 GetSystemColor(kColorId_TextfieldSelectionBackgroundFocused), 0x80); | 273 GetSystemColor(kColorId_TextfieldSelectionBackgroundFocused), 0x80); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 322 } | 322 } |
| 323 | 323 |
| 324 // Throbber | 324 // Throbber |
| 325 case kColorId_ThrobberSpinningColor: | 325 case kColorId_ThrobberSpinningColor: |
| 326 case kColorId_ThrobberLightColor: | 326 case kColorId_ThrobberLightColor: |
| 327 return GetSystemColor(kColorId_TextfieldSelectionBackgroundFocused); | 327 return GetSystemColor(kColorId_TextfieldSelectionBackgroundFocused); |
| 328 | 328 |
| 329 case kColorId_ThrobberWaitingColor: | 329 case kColorId_ThrobberWaitingColor: |
| 330 return color_utils::AlphaBlend( | 330 return color_utils::AlphaBlend( |
| 331 GetSystemColor(kColorId_TextfieldSelectionBackgroundFocused), | 331 GetSystemColor(kColorId_TextfieldSelectionBackgroundFocused), |
| 332 GetBGColor(GetWindow(), NORMAL), 0x80); | 332 GetBgColor(GetWindow(), NORMAL), 0x80); |
| 333 | 333 |
| 334 // Alert icons | 334 // Alert icons |
| 335 // Just fall back to the same colors as Aura. | 335 // Just fall back to the same colors as Aura. |
| 336 case kColorId_AlertSeverityLow: | 336 case kColorId_AlertSeverityLow: |
| 337 case kColorId_AlertSeverityMedium: | 337 case kColorId_AlertSeverityMedium: |
| 338 case kColorId_AlertSeverityHigh: { | 338 case kColorId_AlertSeverityHigh: { |
| 339 ui::NativeTheme* fallback_theme = | 339 ui::NativeTheme* fallback_theme = |
| 340 color_utils::IsDark(GetTextColor(GetEntry(), NORMAL)) | 340 color_utils::IsDark(GetTextColor(GetEntry(), NORMAL)) |
| 341 ? ui::NativeTheme::GetInstanceForNativeUi() | 341 ? ui::NativeTheme::GetInstanceForNativeUi() |
| 342 : ui::NativeThemeDarkAura::instance(); | 342 : ui::NativeThemeDarkAura::instance(); |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 441 | 441 |
| 442 if (!fake_menu_item) { | 442 if (!fake_menu_item) { |
| 443 fake_menu_item = gtk_custom_menu_item_new(); | 443 fake_menu_item = gtk_custom_menu_item_new(); |
| 444 gtk_menu_shell_append(GTK_MENU_SHELL(GetMenu()), fake_menu_item); | 444 gtk_menu_shell_append(GTK_MENU_SHELL(GetMenu()), fake_menu_item); |
| 445 } | 445 } |
| 446 | 446 |
| 447 return fake_menu_item; | 447 return fake_menu_item; |
| 448 } | 448 } |
| 449 | 449 |
| 450 } // namespace libgtkui | 450 } // namespace libgtkui |
| OLD | NEW |