| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 "webkit/glue/webthemeengine_impl_android.h" | 5 #include "webkit/glue/webthemeengine_impl_android.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "skia/ext/platform_canvas.h" | 8 #include "skia/ext/platform_canvas.h" |
| 9 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebRect.h" | 9 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebRect.h" |
| 10 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebSize.h" | 10 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebSize.h" |
| 11 #include "ui/base/native_theme/native_theme.h" | 11 #include "ui/gfx/native_theme.h" |
| 12 | 12 |
| 13 using WebKit::WebCanvas; | 13 using WebKit::WebCanvas; |
| 14 using WebKit::WebColor; | 14 using WebKit::WebColor; |
| 15 using WebKit::WebRect; | 15 using WebKit::WebRect; |
| 16 using WebKit::WebThemeEngine; | 16 using WebKit::WebThemeEngine; |
| 17 | 17 |
| 18 namespace webkit_glue { | 18 namespace webkit_glue { |
| 19 | 19 |
| 20 static ui::NativeTheme::Part NativeThemePart( | 20 static gfx::NativeTheme::Part NativeThemePart( |
| 21 WebThemeEngine::Part part) { | 21 WebThemeEngine::Part part) { |
| 22 switch (part) { | 22 switch (part) { |
| 23 case WebThemeEngine::PartScrollbarDownArrow: | 23 case WebThemeEngine::PartScrollbarDownArrow: |
| 24 return ui::NativeTheme::kScrollbarDownArrow; | 24 return gfx::NativeTheme::kScrollbarDownArrow; |
| 25 case WebThemeEngine::PartScrollbarLeftArrow: | 25 case WebThemeEngine::PartScrollbarLeftArrow: |
| 26 return ui::NativeTheme::kScrollbarLeftArrow; | 26 return gfx::NativeTheme::kScrollbarLeftArrow; |
| 27 case WebThemeEngine::PartScrollbarRightArrow: | 27 case WebThemeEngine::PartScrollbarRightArrow: |
| 28 return ui::NativeTheme::kScrollbarRightArrow; | 28 return gfx::NativeTheme::kScrollbarRightArrow; |
| 29 case WebThemeEngine::PartScrollbarUpArrow: | 29 case WebThemeEngine::PartScrollbarUpArrow: |
| 30 return ui::NativeTheme::kScrollbarUpArrow; | 30 return gfx::NativeTheme::kScrollbarUpArrow; |
| 31 case WebThemeEngine::PartScrollbarHorizontalThumb: | 31 case WebThemeEngine::PartScrollbarHorizontalThumb: |
| 32 // Android doesn't draw scrollbars. | 32 // Android doesn't draw scrollbars. |
| 33 NOTREACHED(); | 33 NOTREACHED(); |
| 34 return static_cast<ui::NativeTheme::Part>(0); | 34 return static_cast<gfx::NativeTheme::Part>(0); |
| 35 case WebThemeEngine::PartScrollbarVerticalThumb: | 35 case WebThemeEngine::PartScrollbarVerticalThumb: |
| 36 // Android doesn't draw scrollbars. | 36 // Android doesn't draw scrollbars. |
| 37 NOTREACHED(); | 37 NOTREACHED(); |
| 38 return static_cast<ui::NativeTheme::Part>(0); | 38 return static_cast<gfx::NativeTheme::Part>(0); |
| 39 case WebThemeEngine::PartScrollbarHorizontalTrack: | 39 case WebThemeEngine::PartScrollbarHorizontalTrack: |
| 40 // Android doesn't draw scrollbars. | 40 // Android doesn't draw scrollbars. |
| 41 NOTREACHED(); | 41 NOTREACHED(); |
| 42 return static_cast<ui::NativeTheme::Part>(0); | 42 return static_cast<gfx::NativeTheme::Part>(0); |
| 43 case WebThemeEngine::PartScrollbarVerticalTrack: | 43 case WebThemeEngine::PartScrollbarVerticalTrack: |
| 44 // Android doesn't draw scrollbars. | 44 // Android doesn't draw scrollbars. |
| 45 NOTREACHED(); | 45 NOTREACHED(); |
| 46 return static_cast<ui::NativeTheme::Part>(0); | 46 return static_cast<gfx::NativeTheme::Part>(0); |
| 47 case WebThemeEngine::PartCheckbox: | 47 case WebThemeEngine::PartCheckbox: |
| 48 return ui::NativeTheme::kCheckbox; | 48 return gfx::NativeTheme::kCheckbox; |
| 49 case WebThemeEngine::PartRadio: | 49 case WebThemeEngine::PartRadio: |
| 50 return ui::NativeTheme::kRadio; | 50 return gfx::NativeTheme::kRadio; |
| 51 case WebThemeEngine::PartButton: | 51 case WebThemeEngine::PartButton: |
| 52 return ui::NativeTheme::kPushButton; | 52 return gfx::NativeTheme::kPushButton; |
| 53 case WebThemeEngine::PartTextField: | 53 case WebThemeEngine::PartTextField: |
| 54 return ui::NativeTheme::kTextField; | 54 return gfx::NativeTheme::kTextField; |
| 55 case WebThemeEngine::PartMenuList: | 55 case WebThemeEngine::PartMenuList: |
| 56 return ui::NativeTheme::kMenuList; | 56 return gfx::NativeTheme::kMenuList; |
| 57 case WebThemeEngine::PartSliderTrack: | 57 case WebThemeEngine::PartSliderTrack: |
| 58 return ui::NativeTheme::kSliderTrack; | 58 return gfx::NativeTheme::kSliderTrack; |
| 59 case WebThemeEngine::PartSliderThumb: | 59 case WebThemeEngine::PartSliderThumb: |
| 60 return ui::NativeTheme::kSliderThumb; | 60 return gfx::NativeTheme::kSliderThumb; |
| 61 case WebThemeEngine::PartInnerSpinButton: | 61 case WebThemeEngine::PartInnerSpinButton: |
| 62 return ui::NativeTheme::kInnerSpinButton; | 62 return gfx::NativeTheme::kInnerSpinButton; |
| 63 case WebThemeEngine::PartProgressBar: | 63 case WebThemeEngine::PartProgressBar: |
| 64 return ui::NativeTheme::kProgressBar; | 64 return gfx::NativeTheme::kProgressBar; |
| 65 default: | 65 default: |
| 66 return ui::NativeTheme::kScrollbarDownArrow; | 66 return gfx::NativeTheme::kScrollbarDownArrow; |
| 67 } | 67 } |
| 68 } | 68 } |
| 69 | 69 |
| 70 static ui::NativeTheme::State NativeThemeState( | 70 static gfx::NativeTheme::State NativeThemeState( |
| 71 WebThemeEngine::State state) { | 71 WebThemeEngine::State state) { |
| 72 switch (state) { | 72 switch (state) { |
| 73 case WebThemeEngine::StateDisabled: | 73 case WebThemeEngine::StateDisabled: |
| 74 return ui::NativeTheme::kDisabled; | 74 return gfx::NativeTheme::kDisabled; |
| 75 case WebThemeEngine::StateHover: | 75 case WebThemeEngine::StateHover: |
| 76 return ui::NativeTheme::kHovered; | 76 return gfx::NativeTheme::kHovered; |
| 77 case WebThemeEngine::StateNormal: | 77 case WebThemeEngine::StateNormal: |
| 78 return ui::NativeTheme::kNormal; | 78 return gfx::NativeTheme::kNormal; |
| 79 case WebThemeEngine::StatePressed: | 79 case WebThemeEngine::StatePressed: |
| 80 return ui::NativeTheme::kPressed; | 80 return gfx::NativeTheme::kPressed; |
| 81 default: | 81 default: |
| 82 return ui::NativeTheme::kDisabled; | 82 return gfx::NativeTheme::kDisabled; |
| 83 } | 83 } |
| 84 } | 84 } |
| 85 | 85 |
| 86 static void GetNativeThemeExtraParams( | 86 static void GetNativeThemeExtraParams( |
| 87 WebThemeEngine::Part part, | 87 WebThemeEngine::Part part, |
| 88 WebThemeEngine::State state, | 88 WebThemeEngine::State state, |
| 89 const WebThemeEngine::ExtraParams* extra_params, | 89 const WebThemeEngine::ExtraParams* extra_params, |
| 90 ui::NativeTheme::ExtraParams* native_theme_extra_params) { | 90 gfx::NativeTheme::ExtraParams* native_theme_extra_params) { |
| 91 switch (part) { | 91 switch (part) { |
| 92 case WebThemeEngine::PartScrollbarHorizontalTrack: | 92 case WebThemeEngine::PartScrollbarHorizontalTrack: |
| 93 case WebThemeEngine::PartScrollbarVerticalTrack: | 93 case WebThemeEngine::PartScrollbarVerticalTrack: |
| 94 // Android doesn't draw scrollbars. | 94 // Android doesn't draw scrollbars. |
| 95 NOTREACHED(); | 95 NOTREACHED(); |
| 96 break; | 96 break; |
| 97 case WebThemeEngine::PartCheckbox: | 97 case WebThemeEngine::PartCheckbox: |
| 98 native_theme_extra_params->button.checked = extra_params->button.checked; | 98 native_theme_extra_params->button.checked = extra_params->button.checked; |
| 99 native_theme_extra_params->button.indeterminate = | 99 native_theme_extra_params->button.indeterminate = |
| 100 extra_params->button.indeterminate; | 100 extra_params->button.indeterminate; |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 153 extra_params->progressBar.valueRectWidth; | 153 extra_params->progressBar.valueRectWidth; |
| 154 native_theme_extra_params->progress_bar.value_rect_height = | 154 native_theme_extra_params->progress_bar.value_rect_height = |
| 155 extra_params->progressBar.valueRectHeight; | 155 extra_params->progressBar.valueRectHeight; |
| 156 break; | 156 break; |
| 157 default: | 157 default: |
| 158 break; // Parts that have no extra params get here. | 158 break; // Parts that have no extra params get here. |
| 159 } | 159 } |
| 160 } | 160 } |
| 161 | 161 |
| 162 WebKit::WebSize WebThemeEngineImpl::getSize(WebThemeEngine::Part part) { | 162 WebKit::WebSize WebThemeEngineImpl::getSize(WebThemeEngine::Part part) { |
| 163 ui::NativeTheme::ExtraParams extra; | 163 gfx::NativeTheme::ExtraParams extra; |
| 164 return ui::NativeTheme::instance()->GetPartSize( | 164 return gfx::NativeTheme::instance()->GetPartSize( |
| 165 NativeThemePart(part), ui::NativeTheme::kNormal, extra); | 165 NativeThemePart(part), gfx::NativeTheme::kNormal, extra); |
| 166 } | 166 } |
| 167 | 167 |
| 168 void WebThemeEngineImpl::paint( | 168 void WebThemeEngineImpl::paint( |
| 169 WebKit::WebCanvas* canvas, | 169 WebKit::WebCanvas* canvas, |
| 170 WebThemeEngine::Part part, | 170 WebThemeEngine::Part part, |
| 171 WebThemeEngine::State state, | 171 WebThemeEngine::State state, |
| 172 const WebKit::WebRect& rect, | 172 const WebKit::WebRect& rect, |
| 173 const WebThemeEngine::ExtraParams* extra_params) { | 173 const WebThemeEngine::ExtraParams* extra_params) { |
| 174 ui::NativeTheme::ExtraParams native_theme_extra_params; | 174 gfx::NativeTheme::ExtraParams native_theme_extra_params; |
| 175 GetNativeThemeExtraParams( | 175 GetNativeThemeExtraParams( |
| 176 part, state, extra_params, &native_theme_extra_params); | 176 part, state, extra_params, &native_theme_extra_params); |
| 177 ui::NativeTheme::instance()->Paint( | 177 gfx::NativeTheme::instance()->Paint( |
| 178 canvas, | 178 canvas, |
| 179 NativeThemePart(part), | 179 NativeThemePart(part), |
| 180 NativeThemeState(state), | 180 NativeThemeState(state), |
| 181 gfx::Rect(rect), | 181 gfx::Rect(rect), |
| 182 native_theme_extra_params); | 182 native_theme_extra_params); |
| 183 } | 183 } |
| 184 } // namespace webkit_glue | 184 } // namespace webkit_glue |
| OLD | NEW |