Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(166)

Side by Side Diff: ui/gfx/native_theme_linux.cc

Issue 7778036: ui/gfx: Get rid of a few static variables from NativeTheme* type. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: use base::LazyInstance Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ui/gfx/native_theme_linux.h ('k') | ui/gfx/native_theme_win.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/gfx/native_theme_linux.h" 5 #include "ui/gfx/native_theme_linux.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "base/lazy_instance.h"
9 #include "base/logging.h" 10 #include "base/logging.h"
10 #include "grit/gfx_resources.h" 11 #include "grit/gfx_resources.h"
11 #include "third_party/skia/include/effects/SkGradientShader.h" 12 #include "third_party/skia/include/effects/SkGradientShader.h"
12 #include "ui/base/resource/resource_bundle.h" 13 #include "ui/base/resource/resource_bundle.h"
13 #include "ui/gfx/color_utils.h" 14 #include "ui/gfx/color_utils.h"
14 #include "ui/gfx/rect.h" 15 #include "ui/gfx/rect.h"
15 #include "ui/gfx/size.h" 16 #include "ui/gfx/size.h"
16 17
17 namespace gfx { 18 namespace gfx {
18 19
(...skipping 17 matching lines...) Expand all
36 static const SkColor kSliderThumbLightGrey = SkColorSetRGB(0xf4, 0xf2, 0xef); 37 static const SkColor kSliderThumbLightGrey = SkColorSetRGB(0xf4, 0xf2, 0xef);
37 static const SkColor kSliderThumbDarkGrey = SkColorSetRGB(0xea, 0xe5, 0xe0); 38 static const SkColor kSliderThumbDarkGrey = SkColorSetRGB(0xea, 0xe5, 0xe0);
38 static const SkColor kSliderThumbBorderDarkGrey = 39 static const SkColor kSliderThumbBorderDarkGrey =
39 SkColorSetRGB(0x9d, 0x96, 0x8e); 40 SkColorSetRGB(0x9d, 0x96, 0x8e);
40 41
41 // static 42 // static
42 const NativeTheme* NativeTheme::instance() { 43 const NativeTheme* NativeTheme::instance() {
43 return NativeThemeLinux::instance(); 44 return NativeThemeLinux::instance();
44 } 45 }
45 46
47 static base::LazyInstance<NativeThemeLinux> g_native_theme(
48 base::LINKER_INITIALIZED);
49
50 NativeThemeLinux::NativeThemeLinux() {
51 }
52
53 NativeThemeLinux::~NativeThemeLinux() {
54 }
55
46 #if !defined(OS_CHROMEOS) 56 #if !defined(OS_CHROMEOS)
47 // Chromeos has a different look. 57 // Chromeos has a different look.
48 // static 58 // static
49 const NativeThemeLinux* NativeThemeLinux::instance() { 59 const NativeThemeLinux* NativeThemeLinux::instance() {
50 // The global NativeThemeLinux instance. 60 return g_native_theme.Pointer();
51 static NativeThemeLinux s_native_theme;
52 return &s_native_theme;
53 } 61 }
54 #endif 62 #endif
55 63
56 // Get lightness adjusted color. 64 // Get lightness adjusted color.
57 static SkColor BrightenColor(const color_utils::HSL& hsl, SkAlpha alpha, 65 static SkColor BrightenColor(const color_utils::HSL& hsl,
58 double lightness_amount) { 66 SkAlpha alpha,
67 double lightness_amount) {
59 color_utils::HSL adjusted = hsl; 68 color_utils::HSL adjusted = hsl;
60 adjusted.l += lightness_amount; 69 adjusted.l += lightness_amount;
61 if (adjusted.l > 1.0) 70 if (adjusted.l > 1.0)
62 adjusted.l = 1.0; 71 adjusted.l = 1.0;
63 if (adjusted.l < 0.0) 72 if (adjusted.l < 0.0)
64 adjusted.l = 0.0; 73 adjusted.l = 0.0;
65 74
66 return color_utils::HSLToSkColor(adjusted, alpha); 75 return color_utils::HSLToSkColor(adjusted, alpha);
67 } 76 }
68 77
69 NativeThemeLinux::NativeThemeLinux() {
70 }
71
72 NativeThemeLinux::~NativeThemeLinux() {
73 }
74
75 gfx::Size NativeThemeLinux::GetPartSize(Part part, 78 gfx::Size NativeThemeLinux::GetPartSize(Part part,
76 State state, 79 State state,
77 const ExtraParams& extra) const { 80 const ExtraParams& extra) const {
78 switch (part) { 81 switch (part) {
79 case kScrollbarDownArrow: 82 case kScrollbarDownArrow:
80 case kScrollbarUpArrow: 83 case kScrollbarUpArrow:
81 return gfx::Size(scrollbar_width_, button_length_); 84 return gfx::Size(scrollbar_width_, button_length_);
82 case kScrollbarLeftArrow: 85 case kScrollbarLeftArrow:
83 case kScrollbarRightArrow: 86 case kScrollbarRightArrow:
84 return gfx::Size(button_length_, scrollbar_width_); 87 return gfx::Size(button_length_, scrollbar_width_);
(...skipping 841 matching lines...) Expand 10 before | Expand all | Expand 10 after
926 SkScalar min_diff = Clamp((hsv1[1] + hsv2[1]) * 1.2, 0.28, 0.5); 929 SkScalar min_diff = Clamp((hsv1[1] + hsv2[1]) * 1.2, 0.28, 0.5);
927 SkScalar diff = Clamp(fabs(hsv1[2] - hsv2[2]) / 2, min_diff, 0.5); 930 SkScalar diff = Clamp(fabs(hsv1[2] - hsv2[2]) / 2, min_diff, 0.5);
928 931
929 if (hsv1[2] + hsv2[2] > 1.0) 932 if (hsv1[2] + hsv2[2] > 1.0)
930 diff = -diff; 933 diff = -diff;
931 934
932 return SaturateAndBrighten(hsv2, -0.2, diff); 935 return SaturateAndBrighten(hsv2, -0.2, diff);
933 } 936 }
934 937
935 } // namespace gfx 938 } // namespace gfx
OLDNEW
« no previous file with comments | « ui/gfx/native_theme_linux.h ('k') | ui/gfx/native_theme_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698