| // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef UI_GFX_COMPOSITOR_LAYER_PROPERTY_SETTER_H_ |
| #define UI_GFX_COMPOSITOR_LAYER_PROPERTY_SETTER_H_ |
| #pragma once |
| |
| #include "views/views_export.h" |
| |
| namespace gfx { |
| class Rect; |
| } |
| |
| namespace ui { |
| class Layer; |
| class Transform; |
| } |
| |
| namespace views { |
| |
| // When a property of layer needs to be changed it is set by way of |
| // LayerPropertySetter. This enables LayerPropertySetter to animate property |
| // changes. |
| class VIEWS_EXPORT LayerPropertySetter { |
| public: |
| // Creates a LayerPropertySetter that immediately sets the values on the |
| // layer. Ownership returns to caller. |
| static LayerPropertySetter* CreateDefaultSetter(); |
| |
| // Creates a LayerPropertySetter that animates changes. Ownership returns to |
| // caller. |
| static LayerPropertySetter* CreateAnimatingSetter(); |
| |
| virtual ~LayerPropertySetter() {} |
| |
| // Invoked when the LayerPropertySetter is to be used for a particular Layer. |
| // This is invoked whenever a new Layer is created. A LayerPropertySetter is |
| // only associated with one Layer at a time. |
| virtual void Installed(ui::Layer* layer) = 0; |
| |
| // Invoked when the Layer is destroyed. |
| virtual void Uninstalled(ui::Layer* layer) = 0; |
| |
| // Sets the transform on the Layer. |
| virtual void SetTransform(ui::Layer* layer, |
| const ui::Transform& transform) = 0; |
| |
| // Sets the bounds of the layer. |
| virtual void SetBounds(ui::Layer* layer, const gfx::Rect& bounds) = 0; |
| }; |
| |
| } // namespace views |
| |
| #endif // UI_GFX_COMPOSITOR_LAYER_PROPERTY_SETTER_H_ |