summaryrefslogtreecommitdiffstats
path: root/webkit/glue/webthemeengine_impl_win.cc
diff options
context:
space:
mode:
authoralokp@chromium.org <alokp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-08 17:36:26 +0000
committeralokp@chromium.org <alokp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-08 17:36:26 +0000
commitafc4ce91f94bc0cb976884e1c1c785a9e75f127a (patch)
tree0c64c063fe026abd1f2a81a97fe04b9dfd514702 /webkit/glue/webthemeengine_impl_win.cc
parent73689e53255c6ac22a90b0cd01fe40180ec2bbba (diff)
downloadchromium_src-afc4ce91f94bc0cb976884e1c1c785a9e75f127a.zip
chromium_src-afc4ce91f94bc0cb976884e1c1c785a9e75f127a.tar.gz
chromium_src-afc4ce91f94bc0cb976884e1c1c785a9e75f127a.tar.bz2
Eliminate skia::PlatformCanvas, a subclass of SkCanvas. Skia provides multiple types of SkCanvas classes that we would like to use. Unfortunately these classes are implemented as subclasses of SkCanvas. Subclassing SkCanvas in both Skia and Chromium makes it impossible to dynamically use any SkCanvas. There is also no reason for chromium to subclass SkCanvas. Most of the extra functionalities can be implemented by hanging meta-data from SkCanvas.
We cannot eliminate skia::PlatformCanvas in one step due to WebKit's dependency on skia::PlatformCanvas. WebKit::WebCanvas is typedef as skia::PlatformDevice. It should be SkCanvas. So we need to do it in multiple steps: 1. Prepare Chromium tree for the change in WebKit::WebCanvas tyepdef. This basically means adding a couple of static_cast<skia::PlatformCanvas>(WebCanvas). 2. Change WebKit::WebCanvas typedef from skia::PlatformCanvas to SkCanvas 3. Eliminate skia::PlatformCanvas in chromium This CL accomplishes the first step on windows. WebKit BUG=https://bugs.webkit.org/show_bug.cgi?id=57563 Review URL: http://codereview.chromium.org/6783023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80955 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/webthemeengine_impl_win.cc')
-rw-r--r--webkit/glue/webthemeengine_impl_win.cc40
1 files changed, 21 insertions, 19 deletions
diff --git a/webkit/glue/webthemeengine_impl_win.cc b/webkit/glue/webthemeengine_impl_win.cc
index dd3f356..61e78ca 100644
--- a/webkit/glue/webthemeengine_impl_win.cc
+++ b/webkit/glue/webthemeengine_impl_win.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -27,55 +27,55 @@ static RECT WebRectToRECT(const WebRect& rect) {
void WebThemeEngineImpl::paintButton(
WebCanvas* canvas, int part, int state, int classic_state,
const WebRect& rect) {
- HDC hdc = canvas->beginPlatformPaint();
+ HDC hdc = skia::BeginPlatformPaint(canvas);
RECT native_rect = WebRectToRECT(rect);
gfx::NativeThemeWin::instance()->PaintButton(
hdc, part, state, classic_state, &native_rect);
- canvas->endPlatformPaint();
+ skia::EndPlatformPaint(canvas);
}
void WebThemeEngineImpl::paintMenuList(
WebCanvas* canvas, int part, int state, int classic_state,
const WebRect& rect) {
- HDC hdc = canvas->beginPlatformPaint();
+ HDC hdc = skia::BeginPlatformPaint(canvas);
RECT native_rect = WebRectToRECT(rect);
gfx::NativeThemeWin::instance()->PaintMenuList(
hdc, part, state, classic_state, &native_rect);
- canvas->endPlatformPaint();
+ skia::EndPlatformPaint(canvas);
}
void WebThemeEngineImpl::paintScrollbarArrow(
WebCanvas* canvas, int state, int classic_state,
const WebRect& rect) {
- HDC hdc = canvas->beginPlatformPaint();
+ HDC hdc = skia::BeginPlatformPaint(canvas);
RECT native_rect = WebRectToRECT(rect);
gfx::NativeThemeWin::instance()->PaintScrollbarArrow(
hdc, state, classic_state, &native_rect);
- canvas->endPlatformPaint();
+ skia::EndPlatformPaint(canvas);
}
void WebThemeEngineImpl::paintScrollbarThumb(
WebCanvas* canvas, int part, int state, int classic_state,
const WebRect& rect) {
- HDC hdc = canvas->beginPlatformPaint();
+ HDC hdc = skia::BeginPlatformPaint(canvas);
RECT native_rect = WebRectToRECT(rect);
gfx::NativeThemeWin::instance()->PaintScrollbarThumb(
hdc, part, state, classic_state, &native_rect);
- canvas->endPlatformPaint();
+ skia::EndPlatformPaint(canvas);
}
void WebThemeEngineImpl::paintScrollbarTrack(
WebCanvas* canvas, int part, int state, int classic_state,
const WebRect& rect, const WebRect& align_rect) {
- HDC hdc = canvas->beginPlatformPaint();
+ HDC hdc = skia::BeginPlatformPaint(canvas);
RECT native_rect = WebRectToRECT(rect);
RECT native_align_rect = WebRectToRECT(align_rect);
@@ -83,26 +83,26 @@ void WebThemeEngineImpl::paintScrollbarTrack(
hdc, part, state, classic_state, &native_rect, &native_align_rect,
canvas);
- canvas->endPlatformPaint();
+ skia::EndPlatformPaint(canvas);
}
void WebThemeEngineImpl::paintSpinButton(
WebCanvas* canvas, int part, int state, int classic_state,
const WebRect& rect) {
- HDC hdc = canvas->beginPlatformPaint();
+ HDC hdc = skia::BeginPlatformPaint(canvas);
RECT native_rect = WebRectToRECT(rect);
gfx::NativeThemeWin::instance()->PaintSpinButton(
hdc, part, state, classic_state, &native_rect);
- canvas->endPlatformPaint();
+ skia::EndPlatformPaint(canvas);
}
void WebThemeEngineImpl::paintTextField(
WebCanvas* canvas, int part, int state, int classic_state,
const WebRect& rect, WebColor color, bool fill_content_area,
bool draw_edges) {
- HDC hdc = canvas->beginPlatformPaint();
+ HDC hdc = skia::BeginPlatformPaint(canvas);
RECT native_rect = WebRectToRECT(rect);
COLORREF c = skia::SkColorToCOLORREF(color);
@@ -111,32 +111,34 @@ void WebThemeEngineImpl::paintTextField(
hdc, part, state, classic_state, &native_rect, c, fill_content_area,
draw_edges);
- canvas->endPlatformPaint();
+ skia::EndPlatformPaint(canvas);
}
void WebThemeEngineImpl::paintTrackbar(
WebCanvas* canvas, int part, int state, int classic_state,
const WebRect& rect) {
- HDC hdc = canvas->beginPlatformPaint();
+ HDC hdc = skia::BeginPlatformPaint(canvas);
RECT native_rect = WebRectToRECT(rect);
gfx::NativeThemeWin::instance()->PaintTrackbar(
hdc, part, state, classic_state, &native_rect, canvas);
- canvas->endPlatformPaint();
+ skia::EndPlatformPaint(canvas);
}
void WebThemeEngineImpl::paintProgressBar(
WebCanvas* canvas, const WebRect& barRect, const WebRect& valueRect,
bool determinate, double animatedSeconds)
{
- HDC hdc = canvas->beginPlatformPaint();
+ HDC hdc = skia::BeginPlatformPaint(canvas);
+
RECT native_bar_rect = WebRectToRECT(barRect);
RECT native_value_rect = WebRectToRECT(valueRect);
gfx::NativeThemeWin::instance()->PaintProgressBar(
hdc, &native_bar_rect,
&native_value_rect, determinate, animatedSeconds, canvas);
- canvas->endPlatformPaint();
+
+ skia::EndPlatformPaint(canvas);
}
} // namespace webkit_glue