Upstream version 10.38.222.0
[platform/framework/web/crosswalk.git] / src / content / renderer / compositor_bindings / web_nine_patch_layer_impl.cc
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
16 WebNinePatchLayerImpl::WebNinePatchLayerImpl() {
17   layer_.reset(new WebLayerImpl(cc::NinePatchLayer::Create()));
18 }
19
20 WebNinePatchLayerImpl::~WebNinePatchLayerImpl() {
21 }
22
23 blink::WebLayer* WebNinePatchLayerImpl::layer() {
24   return layer_.get();
25 }
26
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
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
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
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
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