• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "content/renderer/compositor_bindings/web_nine_patch_layer_impl.h"
6 
7 #include "base/command_line.h"
8 #include "cc/base/switches.h"
9 #include "cc/layers/nine_patch_layer.h"
10 #include "cc/layers/picture_image_layer.h"
11 #include "content/renderer/compositor_bindings/web_layer_impl.h"
12 #include "content/renderer/compositor_bindings/web_layer_impl_fixed_bounds.h"
13 
14 namespace content {
15 
WebNinePatchLayerImpl()16 WebNinePatchLayerImpl::WebNinePatchLayerImpl() {
17   layer_.reset(new WebLayerImpl(cc::NinePatchLayer::Create()));
18 }
19 
~WebNinePatchLayerImpl()20 WebNinePatchLayerImpl::~WebNinePatchLayerImpl() {
21 }
22 
layer()23 blink::WebLayer* WebNinePatchLayerImpl::layer() {
24   return layer_.get();
25 }
26 
setBitmap(SkBitmap bitmap,const blink::WebRect & aperture)27 void WebNinePatchLayerImpl::setBitmap(SkBitmap bitmap,
28                                       const blink::WebRect& aperture) {
29   setBitmap(bitmap);
30   setAperture(aperture);
31   setBorder(blink::WebRect(aperture.x,
32                            aperture.y,
33                            bitmap.width() - aperture.width,
34                            bitmap.height() - aperture.height));
35 }
36 
setBitmap(SkBitmap bitmap)37 void WebNinePatchLayerImpl::setBitmap(SkBitmap bitmap) {
38   cc::NinePatchLayer* nine_patch =
39       static_cast<cc::NinePatchLayer*>(layer_->layer());
40   nine_patch->SetBitmap(bitmap);
41 }
42 
setAperture(const blink::WebRect & aperture)43 void WebNinePatchLayerImpl::setAperture(const blink::WebRect& aperture) {
44   cc::NinePatchLayer* nine_patch =
45       static_cast<cc::NinePatchLayer*>(layer_->layer());
46   nine_patch->SetAperture(gfx::Rect(aperture));
47 }
48 
setBorder(const blink::WebRect & border)49 void WebNinePatchLayerImpl::setBorder(const blink::WebRect& border) {
50   cc::NinePatchLayer* nine_patch =
51       static_cast<cc::NinePatchLayer*>(layer_->layer());
52   nine_patch->SetBorder(gfx::Rect(border));
53 }
54 
setFillCenter(bool fill_center)55 void WebNinePatchLayerImpl::setFillCenter(bool fill_center) {
56   cc::NinePatchLayer* nine_patch =
57       static_cast<cc::NinePatchLayer*>(layer_->layer());
58   nine_patch->SetFillCenter(fill_center);
59 }
60 
61 }  // namespace content
62 
63