shadow_layer_delegate.h revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
1// Copyright (c) 2013 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#ifndef CONTENT_BROWSER_WEB_CONTENTS_AURA_SHADOW_LAYER_DELEGATE_H_ 6#define CONTENT_BROWSER_WEB_CONTENTS_AURA_SHADOW_LAYER_DELEGATE_H_ 7 8#include "base/compiler_specific.h" 9#include "base/memory/scoped_ptr.h" 10#include "ui/compositor/layer_delegate.h" 11 12namespace aura { 13class Window; 14} 15 16namespace ui { 17class Layer; 18} 19 20namespace content { 21 22// ShadowLayerDelegate takes care of drawing a shadow on the left edge of 23// another layer. 24class ShadowLayerDelegate : public ui::LayerDelegate { 25 public: 26 explicit ShadowLayerDelegate(ui::Layer* shadow_for); 27 virtual ~ShadowLayerDelegate(); 28 29 // Returns the layer for the shadow. Note that the ShadowLayerDelegate owns 30 // the layer, and the layer is destroyed when the delegate is destroyed. 31 ui::Layer* layer() { return layer_.get(); } 32 33 private: 34 // Overridden from ui::LayerDelegate: 35 virtual void OnPaintLayer(gfx::Canvas* canvas) OVERRIDE; 36 virtual void OnDelegatedFrameDamage( 37 const gfx::Rect& damage_rect_in_dip) OVERRIDE; 38 virtual void OnDeviceScaleFactorChanged(float device_scale_factor) OVERRIDE; 39 virtual base::Closure PrepareForLayerBoundsChange() OVERRIDE; 40 41 scoped_ptr<ui::Layer> layer_; 42 43 DISALLOW_COPY_AND_ASSIGN(ShadowLayerDelegate); 44}; 45 46} // namespace content 47 48#endif // CONTENT_BROWSER_WEB_CONTENTS_AURA_SHADOW_LAYER_DELEGATE_H_ 49