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

Side by Side Diff: ui/native_theme/native_theme_aurawin.cc

Issue 148223015: Tweaks for scrollbar insets (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 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 | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/native_theme_aurawin.h" 5 #include "ui/native_theme/native_theme_aurawin.h"
6 6
7 #include "grit/ui_resources.h" 7 #include "grit/ui_resources.h"
8 #include "third_party/skia/include/core/SkCanvas.h" 8 #include "third_party/skia/include/core/SkCanvas.h"
9 #include "ui/base/nine_image_painter_factory.h" 9 #include "ui/base/nine_image_painter_factory.h"
10 #include "ui/base/resource/resource_bundle.h" 10 #include "ui/base/resource/resource_bundle.h"
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 State state) const { 102 State state) const {
103 if (direction == kInnerSpinButton) { 103 if (direction == kInnerSpinButton) {
104 NativeThemeAura::PaintArrowButton(gc, rect, direction, state); 104 NativeThemeAura::PaintArrowButton(gc, rect, direction, state);
105 return; 105 return;
106 } 106 }
107 PaintPainter(GetOrCreatePainter( 107 PaintPainter(GetOrCreatePainter(
108 kScrollbarArrowButtonImages, state, 108 kScrollbarArrowButtonImages, state,
109 scrollbar_arrow_button_painters_), 109 scrollbar_arrow_button_painters_),
110 gc, rect); 110 gc, rect);
111 111
112 // The arrow is slightly offset to better balance with the thumb.
113 gfx::Rect arrow_rect(rect);
114 if (direction == kScrollbarDownArrow || direction == kScrollbarUpArrow)
115 arrow_rect.Offset(1, 0);
116 else
117 arrow_rect.Offset(0, 1);
118
119 // Aura-win uses slightly different arrow colors. 112 // Aura-win uses slightly different arrow colors.
120 SkColor arrow_color = GetArrowColor(state); 113 SkColor arrow_color = GetArrowColor(state);
121 switch (state) { 114 switch (state) {
122 case kHovered: 115 case kHovered:
123 case kNormal: 116 case kNormal:
124 arrow_color = SkColorSetRGB(0x50, 0x50, 0x50); 117 arrow_color = SkColorSetRGB(0x50, 0x50, 0x50);
125 break; 118 break;
126 case kPressed: 119 case kPressed:
127 arrow_color = SK_ColorWHITE; 120 arrow_color = SK_ColorWHITE;
128 default: 121 default:
129 break; 122 break;
130 } 123 }
131 PaintArrow(gc, arrow_rect, direction, arrow_color); 124 PaintArrow(gc, rect, direction, arrow_color);
132 } 125 }
133 126
134 void NativeThemeAuraWin::PaintScrollbarTrack( 127 void NativeThemeAuraWin::PaintScrollbarTrack(
135 SkCanvas* sk_canvas, 128 SkCanvas* sk_canvas,
136 Part part, 129 Part part,
137 State state, 130 State state,
138 const ScrollbarTrackExtraParams& extra_params, 131 const ScrollbarTrackExtraParams& extra_params,
139 const gfx::Rect& rect) const { 132 const gfx::Rect& rect) const {
140 if (!scrollbar_track_painter_) 133 if (!scrollbar_track_painter_)
141 scrollbar_track_painter_ = CreateNineImagePainter(kScrollbarTrackImages); 134 scrollbar_track_painter_ = CreateNineImagePainter(kScrollbarTrackImages);
142 PaintPainter(scrollbar_track_painter_.get(), sk_canvas, rect); 135 PaintPainter(scrollbar_track_painter_.get(), sk_canvas, rect);
143 } 136 }
144 137
145 void NativeThemeAuraWin::PaintScrollbarThumb(SkCanvas* sk_canvas, 138 void NativeThemeAuraWin::PaintScrollbarThumb(SkCanvas* sk_canvas,
146 Part part, 139 Part part,
147 State state, 140 State state,
148 const gfx::Rect& rect) const { 141 const gfx::Rect& rect) const {
149 gfx::Rect thumb_rect(rect); 142 gfx::Rect thumb_rect(rect);
150 if (part == NativeTheme::kScrollbarVerticalThumb) 143 if (part == NativeTheme::kScrollbarVerticalThumb)
151 thumb_rect.Inset(3, 0, 1, 0); 144 thumb_rect.Inset(2, 0, 2, 0);
152 else 145 else
153 thumb_rect.Inset(0, 3, 0, 1); 146 thumb_rect.Inset(0, 2, 0, 2);
154 PaintPainter(GetOrCreatePainter( 147 PaintPainter(GetOrCreatePainter(
155 kScrollbarThumbImages, state, scrollbar_thumb_painters_), 148 kScrollbarThumbImages, state, scrollbar_thumb_painters_),
156 sk_canvas, thumb_rect); 149 sk_canvas, thumb_rect);
157 } 150 }
158 151
159 NineImagePainter* NativeThemeAuraWin::GetOrCreatePainter( 152 NineImagePainter* NativeThemeAuraWin::GetOrCreatePainter(
160 const int images[kMaxState][9], 153 const int images[kMaxState][9],
161 State state, 154 State state,
162 scoped_ptr<NineImagePainter> painters[kMaxState]) const { 155 scoped_ptr<NineImagePainter> painters[kMaxState]) const {
163 if (painters[state]) 156 if (painters[state])
164 return painters[state].get(); 157 return painters[state].get();
165 if (images[state][0] == 0) { 158 if (images[state][0] == 0) {
166 // Must always provide normal state images. 159 // Must always provide normal state images.
167 DCHECK_NE(kNormal, state); 160 DCHECK_NE(kNormal, state);
168 return GetOrCreatePainter(images, kNormal, painters); 161 return GetOrCreatePainter(images, kNormal, painters);
169 } 162 }
170 painters[state] = CreateNineImagePainter(images[state]); 163 painters[state] = CreateNineImagePainter(images[state]);
171 return painters[state].get(); 164 return painters[state].get();
172 } 165 }
173 166
174 void NativeThemeAuraWin::PaintPainter(NineImagePainter* painter, 167 void NativeThemeAuraWin::PaintPainter(NineImagePainter* painter,
175 SkCanvas* sk_canvas, 168 SkCanvas* sk_canvas,
176 const gfx::Rect& rect) const { 169 const gfx::Rect& rect) const {
177 DCHECK(painter); 170 DCHECK(painter);
178 scoped_ptr<gfx::Canvas> canvas(CreateCanvas(sk_canvas)); 171 scoped_ptr<gfx::Canvas> canvas(CreateCanvas(sk_canvas));
179 painter->Paint(canvas.get(), rect); 172 painter->Paint(canvas.get(), rect);
180 } 173 }
181 174
182 } // namespace ui 175 } // namespace ui
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698