OLD | NEW |
| (Empty) |
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/native_theme_gtk.h" | |
6 | |
7 #include <gtk/gtk.h> | |
8 | |
9 #include "base/basictypes.h" | |
10 #include "base/logging.h" | |
11 #include "ui/gfx/skia_utils_gtk.h" | |
12 | |
13 #error "The GTK+ port will be deleted later this week. If you are seeing this, y
ou are trying to compile it. Please check your gyp flags for 'use_aura=0' and re
move them." | |
14 | |
15 namespace { | |
16 | |
17 const SkColor kInvalidColorIdColor = SkColorSetRGB(255, 0, 128); | |
18 | |
19 // Theme colors returned by GetSystemColor(). | |
20 | |
21 // FocusableBorder: | |
22 const SkColor kFocusedBorderColor = SkColorSetRGB(0x4D, 0x90, 0xFE); | |
23 const SkColor kUnfocusedBorderColor = SkColorSetRGB(0xD9, 0xD9, 0xD9); | |
24 | |
25 // MenuItem | |
26 const SkColor kFocusedMenuItemBackgroundColor = SkColorSetARGB(13, 0, 0, 0); | |
27 const SkColor kHoverMenuItemBackgroundColor = SkColorSetRGB(204, 204, 204); | |
28 | |
29 // MenuButton | |
30 const SkColor kEnabledMenuButtonBorderColor = SkColorSetARGB(36, 0, 0, 0); | |
31 const SkColor kFocusedMenuButtonBorderColor = SkColorSetARGB(72, 0, 0, 0); | |
32 const SkColor kHoverMenuButtonBorderColor = SkColorSetARGB(72, 0, 0, 0); | |
33 | |
34 // Button: | |
35 const SkColor kButtonBackgroundColor = SkColorSetRGB(0xde, 0xde, 0xde); | |
36 const SkColor kButtonEnabledColor = SkColorSetRGB(6, 45, 117); | |
37 const SkColor kButtonDisabledColor = SkColorSetRGB(161, 161, 146); | |
38 const SkColor kButtonHighlightColor = SkColorSetARGB(200, 255, 255, 255); | |
39 const SkColor kButtonHoverColor = kButtonEnabledColor; | |
40 | |
41 } // namespace | |
42 | |
43 namespace ui { | |
44 | |
45 // static | |
46 NativeTheme* NativeTheme::instance() { | |
47 return NativeThemeGtk::instance(); | |
48 } | |
49 | |
50 // static | |
51 NativeThemeGtk* NativeThemeGtk::instance() { | |
52 CR_DEFINE_STATIC_LOCAL(NativeThemeGtk, s_native_theme, ()); | |
53 return &s_native_theme; | |
54 } | |
55 | |
56 SkColor NativeThemeGtk::GetSystemColor(ColorId color_id) const { | |
57 switch (color_id) { | |
58 case kColorId_DialogBackground: | |
59 // TODO(benrg): This code used to call gtk_widget_get_style() on the | |
60 // widget being styled. After refactoring, that widget is not available | |
61 // and we have to call gtk_widget_get_default_style(). Unfortunately, | |
62 // it turns out that this breaks everything (chromium bug 105609, | |
63 // chromium-os bug 23461). Need to figure out the right thing and do it. | |
64 return gfx::GdkColorToSkColor( | |
65 gtk_widget_get_default_style()->bg[GTK_STATE_NORMAL]); | |
66 | |
67 // FocusableBorder: | |
68 case kColorId_FocusedBorderColor: | |
69 return kFocusedBorderColor; | |
70 case kColorId_UnfocusedBorderColor: | |
71 return kUnfocusedBorderColor; | |
72 | |
73 // MenuItem | |
74 case kColorId_FocusedMenuItemBackgroundColor: | |
75 return kFocusedMenuItemBackgroundColor; | |
76 case kColorId_HoverMenuItemBackgroundColor: | |
77 return kHoverMenuItemBackgroundColor; | |
78 case kColorId_EnabledMenuButtonBorderColor: | |
79 return kEnabledMenuButtonBorderColor; | |
80 case kColorId_FocusedMenuButtonBorderColor: | |
81 return kFocusedMenuButtonBorderColor; | |
82 case kColorId_HoverMenuButtonBorderColor: | |
83 return kHoverMenuButtonBorderColor; | |
84 | |
85 // Button: | |
86 case kColorId_ButtonBackgroundColor: | |
87 return kButtonBackgroundColor; | |
88 case kColorId_ButtonEnabledColor: | |
89 return kButtonEnabledColor; | |
90 case kColorId_ButtonDisabledColor: | |
91 return kButtonDisabledColor; | |
92 case kColorId_ButtonHighlightColor: | |
93 return kButtonHighlightColor; | |
94 case kColorId_ButtonHoverColor: | |
95 return kButtonHoverColor; | |
96 | |
97 default: | |
98 NOTREACHED() << "Invalid color_id: " << color_id; | |
99 break; | |
100 } | |
101 return kInvalidColorIdColor; | |
102 } | |
103 | |
104 NativeThemeGtk::NativeThemeGtk() { | |
105 } | |
106 | |
107 NativeThemeGtk::~NativeThemeGtk() { | |
108 } | |
109 | |
110 } // namespace ui | |
OLD | NEW |