summaryrefslogtreecommitdiffstats
path: root/webkit/glue/webthemeengine_impl_linux.cc
diff options
context:
space:
mode:
authorxiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-20 18:21:08 +0000
committerxiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-20 18:21:08 +0000
commita12f7fbe12afffb4b1b31ec0d6b0988f1f9a6554 (patch)
tree09b9fafb2e1d1ce9acb0307aa5689d6cfe72a0ef /webkit/glue/webthemeengine_impl_linux.cc
parentf224f15fb2d55747c3faf6e5e304c2eebcca12ab (diff)
downloadchromium_src-a12f7fbe12afffb4b1b31ec0d6b0988f1f9a6554.zip
chromium_src-a12f7fbe12afffb4b1b31ec0d6b0988f1f9a6554.tar.gz
chromium_src-a12f7fbe12afffb4b1b31ec0d6b0988f1f9a6554.tar.bz2
Move more web widgets painting from webkit to chrome.
- Move linux web widgets painting code from webkit; - Move dependent resources from webkit_resources into gfx_resources and follow the pattern in net package to add resource loading support to gfx package; - Update ChromeOS theme engine to follow mocks in chromium-os:9256. BUG=chromium-os:9256 TEST=Verify default web widgets has desired look on ChromeOS. Review URL: http://codereview.chromium.org/6254004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71969 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/webthemeengine_impl_linux.cc')
-rw-r--r--webkit/glue/webthemeengine_impl_linux.cc100
1 files changed, 88 insertions, 12 deletions
diff --git a/webkit/glue/webthemeengine_impl_linux.cc b/webkit/glue/webthemeengine_impl_linux.cc
index 518166e..067b203 100644
--- a/webkit/glue/webthemeengine_impl_linux.cc
+++ b/webkit/glue/webthemeengine_impl_linux.cc
@@ -38,6 +38,24 @@ static gfx::NativeThemeLinux::Part NativeThemePart(
return gfx::NativeThemeLinux::kScrollbarHorizontalTrack;
case WebKit::WebThemeEngine::PartScrollbarVerticalTrack:
return gfx::NativeThemeLinux::kScrollbarVerticalTrack;
+ case WebKit::WebThemeEngine::PartCheckbox:
+ return gfx::NativeThemeLinux::kCheckbox;
+ case WebKit::WebThemeEngine::PartRadio:
+ return gfx::NativeThemeLinux::kRadio;
+ case WebKit::WebThemeEngine::PartButton:
+ return gfx::NativeThemeLinux::kPushButton;
+ case WebKit::WebThemeEngine::PartTextField:
+ return gfx::NativeThemeLinux::kTextField;
+ case WebKit::WebThemeEngine::PartMenuList:
+ return gfx::NativeThemeLinux::kMenuList;
+ case WebKit::WebThemeEngine::PartSliderTrack:
+ return gfx::NativeThemeLinux::kSliderTrack;
+ case WebKit::WebThemeEngine::PartSliderThumb:
+ return gfx::NativeThemeLinux::kSliderThumb;
+ case WebKit::WebThemeEngine::PartInnerSpinButton:
+ return gfx::NativeThemeLinux::kInnerSpinButton;
+ case WebKit::WebThemeEngine::PartProgressBar:
+ return gfx::NativeThemeLinux::kProgressBar;
default:
return gfx::NativeThemeLinux::kScrollbarDownArrow;
}
@@ -49,7 +67,7 @@ static gfx::NativeThemeLinux::State NativeThemeState(
case WebKit::WebThemeEngine::StateDisabled:
return gfx::NativeThemeLinux::kDisabled;
case WebKit::WebThemeEngine::StateHover:
- return gfx::NativeThemeLinux::kHover;
+ return gfx::NativeThemeLinux::kHovered;
case WebKit::WebThemeEngine::StateNormal:
return gfx::NativeThemeLinux::kNormal;
case WebKit::WebThemeEngine::StatePressed:
@@ -64,21 +82,79 @@ static void GetNativeThemeExtraParams(
WebKit::WebThemeEngine::State state,
const WebKit::WebThemeEngine::ExtraParams* extra_params,
gfx::NativeThemeLinux::ExtraParams* native_theme_extra_params) {
- if (part == WebKit::WebThemeEngine::PartScrollbarHorizontalTrack ||
- part == WebKit::WebThemeEngine::PartScrollbarVerticalTrack) {
- native_theme_extra_params->scrollbar_track.track_x =
- extra_params->scrollbarTrack.trackX;
- native_theme_extra_params->scrollbar_track.track_y =
- extra_params->scrollbarTrack.trackY;
- native_theme_extra_params->scrollbar_track.track_width =
- extra_params->scrollbarTrack.trackWidth;
- native_theme_extra_params->scrollbar_track.track_height =
- extra_params->scrollbarTrack.trackHeight;
+ switch (part) {
+ case WebKit::WebThemeEngine::PartScrollbarHorizontalTrack:
+ case WebKit::WebThemeEngine::PartScrollbarVerticalTrack:
+ native_theme_extra_params->scrollbar_track.track_x =
+ extra_params->scrollbarTrack.trackX;
+ native_theme_extra_params->scrollbar_track.track_y =
+ extra_params->scrollbarTrack.trackY;
+ native_theme_extra_params->scrollbar_track.track_width =
+ extra_params->scrollbarTrack.trackWidth;
+ native_theme_extra_params->scrollbar_track.track_height =
+ extra_params->scrollbarTrack.trackHeight;
+ break;
+ case WebKit::WebThemeEngine::PartCheckbox:
+ native_theme_extra_params->button.checked = extra_params->button.checked;
+ native_theme_extra_params->button.indeterminate =
+ extra_params->button.indeterminate;
+ break;
+ case WebKit::WebThemeEngine::PartRadio:
+ native_theme_extra_params->button.checked = extra_params->button.checked;
+ break;
+ case WebKit::WebThemeEngine::PartButton:
+ native_theme_extra_params->button.is_default =
+ extra_params->button.isDefault;
+ native_theme_extra_params->button.background_color =
+ extra_params->button.backgroundColor;
+ break;
+ case WebKit::WebThemeEngine::PartTextField:
+ native_theme_extra_params->text_field.is_text_area =
+ extra_params->textField.isTextArea;
+ native_theme_extra_params->text_field.is_listbox =
+ extra_params->textField.isListbox;
+ native_theme_extra_params->text_field.background_color =
+ extra_params->textField.backgroundColor;
+ break;
+ case WebKit::WebThemeEngine::PartMenuList:
+ native_theme_extra_params->menu_list.arrow_x =
+ extra_params->menuList.arrowX;
+ native_theme_extra_params->menu_list.arrow_y =
+ extra_params->menuList.arrowY;
+ native_theme_extra_params->menu_list.background_color =
+ extra_params->menuList.backgroundColor;
+ break;
+ case WebKit::WebThemeEngine::PartSliderTrack:
+ case WebKit::WebThemeEngine::PartSliderThumb:
+ native_theme_extra_params->slider.vertical =
+ extra_params->slider.vertical;
+ native_theme_extra_params->slider.in_drag = extra_params->slider.inDrag;
+ break;
+ case WebKit::WebThemeEngine::PartInnerSpinButton:
+ native_theme_extra_params->inner_spin.spin_up =
+ extra_params->innerSpin.spinUp;
+ native_theme_extra_params->inner_spin.read_only =
+ extra_params->innerSpin.readOnly;
+ break;
+ case WebKit::WebThemeEngine::PartProgressBar:
+ native_theme_extra_params->progress_bar.determinate =
+ extra_params->progressBar.determinate;
+ native_theme_extra_params->progress_bar.value_rect_x =
+ extra_params->progressBar.valueRectX;
+ native_theme_extra_params->progress_bar.value_rect_y =
+ extra_params->progressBar.valueRectY;
+ native_theme_extra_params->progress_bar.value_rect_width =
+ extra_params->progressBar.valueRectWidth;
+ native_theme_extra_params->progress_bar.value_rect_height =
+ extra_params->progressBar.valueRectHeight;
+ break;
+ default:
+ break; // Parts that have no extra params get here.
}
}
WebKit::WebSize WebThemeEngineImpl::getSize(WebKit::WebThemeEngine::Part part) {
- return gfx::NativeThemeLinux::instance()->GetSize(NativeThemePart(part));
+ return gfx::NativeThemeLinux::instance()->GetPartSize(NativeThemePart(part));
}
void WebThemeEngineImpl::paint(