summaryrefslogtreecommitdiffstats
path: root/chromium/ui/compositor/layer_owner.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/ui/compositor/layer_owner.h')
-rw-r--r--chromium/ui/compositor/layer_owner.h24
1 files changed, 22 insertions, 2 deletions
diff --git a/chromium/ui/compositor/layer_owner.h b/chromium/ui/compositor/layer_owner.h
index 8f115d5441c..27002e5db02 100644
--- a/chromium/ui/compositor/layer_owner.h
+++ b/chromium/ui/compositor/layer_owner.h
@@ -11,24 +11,43 @@
#include "ui/compositor/layer.h"
namespace ui {
+class LayerOwnerDelegate;
class COMPOSITOR_EXPORT LayerOwner {
public:
LayerOwner();
virtual ~LayerOwner();
+ void SetLayer(Layer* layer);
+
// Releases the owning reference to its layer, and returns it.
// This is used when you need to animate the presentation of the owner just
// prior to destroying it. The Owner can be destroyed soon after calling this
// function, and the caller is then responsible for disposing of the layer
// once any animation completes. Note that layer() will remain valid until the
// end of ~LayerOwner().
- Layer* AcquireLayer() WARN_UNUSED_RESULT;
+ scoped_ptr<Layer> AcquireLayer();
+
+ // Asks the owner to recreate the layer, returning the old Layer. NULL is
+ // returned if there is no existing layer, or recreate is not supported.
+ //
+ // This does not recurse. Existing children of the layer are moved to the new
+ // layer.
+ scoped_ptr<Layer> RecreateLayer();
ui::Layer* layer() { return layer_; }
const ui::Layer* layer() const { return layer_; }
+ void set_layer_owner_delegate(LayerOwnerDelegate* delegate) {
+ layer_owner_delegate_ = delegate;
+ }
+
protected:
+ void DestroyLayer();
+
+ bool OwnsLayer() const;
+
+ private:
// The LayerOwner owns its layer unless ownership is relinquished via a call
// to AcquireLayer(). After that moment |layer_| will still be valid but
// |layer_owner_| will be NULL. The reason for releasing ownership is that
@@ -37,7 +56,8 @@ class COMPOSITOR_EXPORT LayerOwner {
scoped_ptr<Layer> layer_owner_;
Layer* layer_;
- private:
+ LayerOwnerDelegate* layer_owner_delegate_;
+
DISALLOW_COPY_AND_ASSIGN(LayerOwner);
};