Roll src/third_party/WebKit d0dd976:1cfa05a (svn 202498:202500)
[chromium-blink-merge.git] / cc / layers / nine_patch_layer.cc
blob575090cad9ec2b43054620ed0ea65bab96af19df
1 // Copyright 2012 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.
5 #include "cc/layers/nine_patch_layer.h"
7 #include "cc/layers/nine_patch_layer_impl.h"
8 #include "cc/resources/scoped_ui_resource.h"
9 #include "cc/resources/ui_resource_bitmap.h"
10 #include "cc/trees/layer_tree_host.h"
12 namespace cc {
14 scoped_refptr<NinePatchLayer> NinePatchLayer::Create(
15 const LayerSettings& settings) {
16 return make_scoped_refptr(new NinePatchLayer(settings));
19 NinePatchLayer::NinePatchLayer(const LayerSettings& settings)
20 : UIResourceLayer(settings), fill_center_(false) {
23 NinePatchLayer::~NinePatchLayer() {}
25 scoped_ptr<LayerImpl> NinePatchLayer::CreateLayerImpl(
26 LayerTreeImpl* tree_impl) {
27 return NinePatchLayerImpl::Create(tree_impl, id());
30 void NinePatchLayer::SetBorder(const gfx::Rect& border) {
31 if (border == border_)
32 return;
33 border_ = border;
34 SetNeedsCommit();
37 void NinePatchLayer::SetAperture(const gfx::Rect& aperture) {
38 if (image_aperture_ == aperture)
39 return;
41 image_aperture_ = aperture;
42 SetNeedsCommit();
45 void NinePatchLayer::SetFillCenter(bool fill_center) {
46 if (fill_center_ == fill_center)
47 return;
49 fill_center_ = fill_center;
50 SetNeedsCommit();
53 void NinePatchLayer::PushPropertiesTo(LayerImpl* layer) {
54 UIResourceLayer::PushPropertiesTo(layer);
55 NinePatchLayerImpl* layer_impl = static_cast<NinePatchLayerImpl*>(layer);
57 if (!ui_resource_holder_) {
58 layer_impl->SetUIResourceId(0);
59 } else {
60 DCHECK(layer_tree_host());
62 layer_impl->SetLayout(image_aperture_, border_, fill_center_);
66 } // namespace cc