From efbdb3ac428aa1829161729189604865e606691b Mon Sep 17 00:00:00 2001 From: "clholgat@chromium.org" Date: Fri, 4 Oct 2013 00:35:13 +0000 Subject: Generic UIResourceLayer for shared resources. Separated the UIResource management from the NinePatchLayer because we need it for other things as well. BUG=235290 Review URL: https://codereview.chromium.org/24716003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226908 0039d316-1c4b-4281-b951-d872f2087c98 --- .../web_nine_patch_layer_impl.cc | 31 ++++++++++++++++++++-- .../web_nine_patch_layer_impl.h | 9 ++++++- 2 files changed, 37 insertions(+), 3 deletions(-) (limited to 'webkit/renderer') diff --git a/webkit/renderer/compositor_bindings/web_nine_patch_layer_impl.cc b/webkit/renderer/compositor_bindings/web_nine_patch_layer_impl.cc index 0c64a06..80c643a 100644 --- a/webkit/renderer/compositor_bindings/web_nine_patch_layer_impl.cc +++ b/webkit/renderer/compositor_bindings/web_nine_patch_layer_impl.cc @@ -23,8 +23,35 @@ WebKit::WebLayer* WebNinePatchLayerImpl::layer() { return layer_.get(); } void WebNinePatchLayerImpl::setBitmap(SkBitmap bitmap, const WebKit::WebRect& aperture) { - static_cast(layer_->layer())->SetBitmap( - bitmap, gfx::Rect(aperture)); + setBitmap(bitmap); + setAperture(aperture); + setBorder(WebKit::WebRect(aperture.x, aperture.y, + bitmap.width() - aperture.width, + bitmap.height() - aperture.height)); +} + +void WebNinePatchLayerImpl::setBitmap(SkBitmap bitmap) { + cc::NinePatchLayer* nine_patch = + static_cast(layer_->layer()); + nine_patch->SetBitmap(bitmap); +} + +void WebNinePatchLayerImpl::setAperture(const WebKit::WebRect& aperture) { + cc::NinePatchLayer* nine_patch = + static_cast(layer_->layer()); + nine_patch->SetAperture(gfx::Rect(aperture)); +} + +void WebNinePatchLayerImpl::setBorder(const WebKit::WebRect& border) { + cc::NinePatchLayer* nine_patch = + static_cast(layer_->layer()); + nine_patch->SetBorder(gfx::Rect(border)); +} + +void WebNinePatchLayerImpl::setFillCenter(bool fill_center) { + cc::NinePatchLayer* nine_patch = + static_cast(layer_->layer()); + nine_patch->SetFillCenter(fill_center); } } // namespace webkit diff --git a/webkit/renderer/compositor_bindings/web_nine_patch_layer_impl.h b/webkit/renderer/compositor_bindings/web_nine_patch_layer_impl.h index 34c8eff..2a5720d 100644 --- a/webkit/renderer/compositor_bindings/web_nine_patch_layer_impl.h +++ b/webkit/renderer/compositor_bindings/web_nine_patch_layer_impl.h @@ -21,7 +21,14 @@ class WebNinePatchLayerImpl : public WebKit::WebNinePatchLayer { // WebKit::WebNinePatchLayer implementation. virtual WebKit::WebLayer* layer(); - virtual void setBitmap(SkBitmap, const WebKit::WebRect& aperture); + + // TODO(ccameron): Remove setBitmap(SkBitmap, WebKit::WebRect) in favor of + // setBitmap(), setAperture(), and setBorder(); + virtual void setBitmap(SkBitmap bitmap, const WebKit::WebRect& aperture); + virtual void setBitmap(SkBitmap bitmap); + virtual void setAperture(const WebKit::WebRect& aperture); + virtual void setBorder(const WebKit::WebRect& border); + virtual void setFillCenter(bool fill_center); private: scoped_ptr layer_; -- cgit v1.1