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

Side by Side Diff: content/child/webthemeengine_impl_default.cc

Issue 1911973002: Fix scrollbar buttons at hidpi when enable-use-zoom-for-dsf is on. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 7 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
« no previous file with comments | « content/child/webthemeengine_impl_default.h ('k') | content/renderer/render_view_impl.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 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 "content/child/webthemeengine_impl_default.h" 5 #include "content/child/webthemeengine_impl_default.h"
6 6
7 #include "build/build_config.h" 7 #include "build/build_config.h"
8 #include "skia/ext/platform_canvas.h" 8 #include "skia/ext/platform_canvas.h"
9 #include "third_party/WebKit/public/platform/WebRect.h" 9 #include "third_party/WebKit/public/platform/WebRect.h"
10 #include "third_party/WebKit/public/platform/WebSize.h" 10 #include "third_party/WebKit/public/platform/WebSize.h"
11 #include "ui/native_theme/native_theme.h" 11 #include "ui/native_theme/native_theme.h"
12 12
13 using blink::WebCanvas; 13 using blink::WebCanvas;
14 using blink::WebColor; 14 using blink::WebColor;
15 using blink::WebRect; 15 using blink::WebRect;
16 using blink::WebThemeEngine; 16 using blink::WebThemeEngine;
17 17
18 namespace content { 18 namespace content {
19 namespace {
20
21 #if defined(OS_WIN)
22 // The scrollbar metrics default to 17 dips which is the default value on
23 // Windows in most cases.
24 int32_t g_vertical_scroll_bar_width = 17;
25
26 // The height of a horizontal scroll bar in dips.
27 int32_t g_horizontal_scroll_bar_height = 17;
28
29 // The height of the arrow bitmap on a vertical scroll bar in dips.
30 int32_t g_vertical_arrow_bitmap_height = 17;
31
32 // The width of the arrow bitmap on a horizontal scroll bar in dips.
33 int32_t g_horizontal_arrow_bitmap_width = 17;
34 #endif
35
36 } // namespace
37 19
38 static ui::NativeTheme::Part NativeThemePart( 20 static ui::NativeTheme::Part NativeThemePart(
39 WebThemeEngine::Part part) { 21 WebThemeEngine::Part part) {
40 switch (part) { 22 switch (part) {
41 case WebThemeEngine::PartScrollbarDownArrow: 23 case WebThemeEngine::PartScrollbarDownArrow:
42 return ui::NativeTheme::kScrollbarDownArrow; 24 return ui::NativeTheme::kScrollbarDownArrow;
43 case WebThemeEngine::PartScrollbarLeftArrow: 25 case WebThemeEngine::PartScrollbarLeftArrow:
44 return ui::NativeTheme::kScrollbarLeftArrow; 26 return ui::NativeTheme::kScrollbarLeftArrow;
45 case WebThemeEngine::PartScrollbarRightArrow: 27 case WebThemeEngine::PartScrollbarRightArrow:
46 return ui::NativeTheme::kScrollbarRightArrow; 28 return ui::NativeTheme::kScrollbarRightArrow;
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 native_theme_extra_params->progress_bar.value_rect_height = 160 native_theme_extra_params->progress_bar.value_rect_height =
179 extra_params->progressBar.valueRectHeight; 161 extra_params->progressBar.valueRectHeight;
180 break; 162 break;
181 default: 163 default:
182 break; // Parts that have no extra params get here. 164 break; // Parts that have no extra params get here.
183 } 165 }
184 } 166 }
185 167
186 blink::WebSize WebThemeEngineImpl::getSize(WebThemeEngine::Part part) { 168 blink::WebSize WebThemeEngineImpl::getSize(WebThemeEngine::Part part) {
187 ui::NativeTheme::ExtraParams extra; 169 ui::NativeTheme::ExtraParams extra;
188 ui::NativeTheme::Part native_theme_part = NativeThemePart(part);
189 #if defined(OS_WIN)
190 switch (native_theme_part) {
191 case ui::NativeTheme::kScrollbarDownArrow:
192 case ui::NativeTheme::kScrollbarLeftArrow:
193 case ui::NativeTheme::kScrollbarRightArrow:
194 case ui::NativeTheme::kScrollbarUpArrow:
195 case ui::NativeTheme::kScrollbarHorizontalThumb:
196 case ui::NativeTheme::kScrollbarVerticalThumb:
197 case ui::NativeTheme::kScrollbarHorizontalTrack:
198 case ui::NativeTheme::kScrollbarVerticalTrack: {
199 return gfx::Size(g_vertical_scroll_bar_width,
200 g_vertical_scroll_bar_width);
201 }
202
203 default:
204 break;
205 }
206 #endif
207 return ui::NativeTheme::GetInstanceForWeb()->GetPartSize( 170 return ui::NativeTheme::GetInstanceForWeb()->GetPartSize(
208 native_theme_part, ui::NativeTheme::kNormal, extra); 171 NativeThemePart(part), ui::NativeTheme::kNormal, extra);
209 } 172 }
210 173
211 void WebThemeEngineImpl::paint( 174 void WebThemeEngineImpl::paint(
212 blink::WebCanvas* canvas, 175 blink::WebCanvas* canvas,
213 WebThemeEngine::Part part, 176 WebThemeEngine::Part part,
214 WebThemeEngine::State state, 177 WebThemeEngine::State state,
215 const blink::WebRect& rect, 178 const blink::WebRect& rect,
216 const WebThemeEngine::ExtraParams* extra_params) { 179 const WebThemeEngine::ExtraParams* extra_params) {
217 ui::NativeTheme::ExtraParams native_theme_extra_params; 180 ui::NativeTheme::ExtraParams native_theme_extra_params;
218 GetNativeThemeExtraParams( 181 GetNativeThemeExtraParams(
219 part, state, extra_params, &native_theme_extra_params); 182 part, state, extra_params, &native_theme_extra_params);
220 ui::NativeTheme::GetInstanceForWeb()->Paint( 183 ui::NativeTheme::GetInstanceForWeb()->Paint(
221 canvas, NativeThemePart(part), NativeThemeState(state), gfx::Rect(rect), 184 canvas, NativeThemePart(part), NativeThemeState(state), gfx::Rect(rect),
222 native_theme_extra_params); 185 native_theme_extra_params);
223 } 186 }
224 187
225 void WebThemeEngineImpl::paintStateTransition(blink::WebCanvas* canvas, 188 void WebThemeEngineImpl::paintStateTransition(blink::WebCanvas* canvas,
226 WebThemeEngine::Part part, 189 WebThemeEngine::Part part,
227 WebThemeEngine::State startState, 190 WebThemeEngine::State startState,
228 WebThemeEngine::State endState, 191 WebThemeEngine::State endState,
229 double progress, 192 double progress,
230 const blink::WebRect& rect) { 193 const blink::WebRect& rect) {
231 ui::NativeTheme::GetInstanceForWeb()->PaintStateTransition( 194 ui::NativeTheme::GetInstanceForWeb()->PaintStateTransition(
232 canvas, NativeThemePart(part), NativeThemeState(startState), 195 canvas, NativeThemePart(part), NativeThemeState(startState),
233 NativeThemeState(endState), progress, gfx::Rect(rect)); 196 NativeThemeState(endState), progress, gfx::Rect(rect));
234 } 197 }
235 198
236 #if defined(OS_WIN)
237 // static
238 void WebThemeEngineImpl::cacheScrollBarMetrics(
239 int32_t vertical_scroll_bar_width,
240 int32_t horizontal_scroll_bar_height,
241 int32_t vertical_arrow_bitmap_height,
242 int32_t horizontal_arrow_bitmap_width) {
243 g_vertical_scroll_bar_width = vertical_scroll_bar_width;
244 g_horizontal_scroll_bar_height = horizontal_scroll_bar_height;
245 g_vertical_arrow_bitmap_height = vertical_arrow_bitmap_height;
246 g_horizontal_arrow_bitmap_width = horizontal_arrow_bitmap_width;
247 }
248 #endif
249
250 } // namespace content 199 } // namespace content
OLDNEW
« no previous file with comments | « content/child/webthemeengine_impl_default.h ('k') | content/renderer/render_view_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698