Chromium Code Reviews| Index: content/child/webthemeengine_impl_default.cc |
| diff --git a/content/child/webthemeengine_impl_default.cc b/content/child/webthemeengine_impl_default.cc |
| index 7fa4ba7d6497c2d374257db255e91d283d2c24cc..f1e56ba56e90c7890a0033fe0eb0382ad597942c 100644 |
| --- a/content/child/webthemeengine_impl_default.cc |
| +++ b/content/child/webthemeengine_impl_default.cc |
| @@ -8,12 +8,12 @@ |
| #include "skia/ext/platform_canvas.h" |
| #include "third_party/WebKit/public/platform/WebRect.h" |
| #include "third_party/WebKit/public/platform/WebSize.h" |
| -#include "ui/native_theme/native_theme.h" |
| using blink::WebCanvas; |
| using blink::WebColor; |
| using blink::WebRect; |
| using blink::WebThemeEngine; |
| +using blink::WebScrollbarOverlayColorTheme; |
| namespace content { |
| namespace { |
| @@ -78,6 +78,20 @@ static ui::NativeTheme::Part NativeThemePart( |
| } |
| } |
| +static ui::NativeTheme::ScrollbarOverlayColorTheme |
| +NativeThemeScrollbarOverlayColorTheme(WebScrollbarOverlayColorTheme theme) { |
| + switch (theme) { |
| + case WebScrollbarOverlayColorTheme::WebScrollbarOverlayColorThemeDefault: |
| + return ui::NativeTheme::ScrollbarOverlayColorThemeDefault; |
| + case WebScrollbarOverlayColorTheme::WebScrollbarOverlayColorThemeLight: |
| + return ui::NativeTheme::ScrollbarOverlayColorThemeLight; |
| + case WebScrollbarOverlayColorTheme::WebScrollbarOverlayColorThemeDark: |
| + return ui::NativeTheme::ScrollbarOverlayColorThemeDark; |
| + default: |
| + return ui::NativeTheme::ScrollbarOverlayColorThemeDefault; |
| + } |
| +} |
| + |
| static ui::NativeTheme::State NativeThemeState( |
| WebThemeEngine::State state) { |
| switch (state) { |
| @@ -177,6 +191,12 @@ static void GetNativeThemeExtraParams( |
| native_theme_extra_params->progress_bar.value_rect_height = |
| extra_params->progressBar.valueRectHeight; |
| break; |
| + case WebThemeEngine::PartScrollbarHorizontalThumb: |
| + case WebThemeEngine::PartScrollbarVerticalThumb: |
| + native_theme_extra_params->scrollbar_thumb.scrollbar_theme = |
| + static_cast<ui::NativeTheme::ScrollbarOverlayColorTheme>( |
|
bokan
2016/10/21 20:11:38
use the NativeThemeScrollbarOverlayColorTheme func
|
| + extra_params->scrollbarThumb.scrollbarTheme); |
| + break; |
| default: |
| break; // Parts that have no extra params get here. |
| } |
| @@ -221,15 +241,18 @@ void WebThemeEngineImpl::paint( |
| native_theme_extra_params); |
| } |
| -void WebThemeEngineImpl::paintStateTransition(blink::WebCanvas* canvas, |
| - WebThemeEngine::Part part, |
| - WebThemeEngine::State startState, |
| - WebThemeEngine::State endState, |
| - double progress, |
| - const blink::WebRect& rect) { |
| +void WebThemeEngineImpl::paintStateTransition( |
| + blink::WebCanvas* canvas, |
| + WebThemeEngine::Part part, |
| + WebThemeEngine::State startState, |
| + WebThemeEngine::State endState, |
| + double progress, |
| + const blink::WebRect& rect, |
| + WebScrollbarOverlayColorTheme theme) { |
| ui::NativeTheme::GetInstanceForWeb()->PaintStateTransition( |
| canvas, NativeThemePart(part), NativeThemeState(startState), |
| - NativeThemeState(endState), progress, gfx::Rect(rect)); |
| + NativeThemeState(endState), progress, gfx::Rect(rect), |
| + NativeThemeScrollbarOverlayColorTheme(theme)); |
| } |
| #if defined(OS_WIN) |