1 // Copyright 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 UI_WM_PUBLIC_ANIMATION_HOST_H_ 6 #define UI_WM_PUBLIC_ANIMATION_HOST_H_ 7 8 #include "base/compiler_specific.h" 9 #include "ui/aura/aura_export.h" 10 11 namespace gfx { 12 class Vector2d; 13 } 14 15 namespace aura { 16 class Window; 17 namespace client { 18 19 // Interface for top level window host of animation. Communicates additional 20 // bounds required for animation as well as animation completion for deferring 21 // window closes on hide. 22 class AURA_EXPORT AnimationHost { 23 public: 24 // Ensure the host window is at least this large so that transitions have 25 // sufficient space. 26 // The |top_left_delta| parameter contains the offset to be subtracted from 27 // the window bounds for the top left corner. 28 // The |bottom_right_delta| parameter contains the offset to be added to the 29 // window bounds for the bottom right. 30 virtual void SetHostTransitionOffsets( 31 const gfx::Vector2d& top_left_delta, 32 const gfx::Vector2d& bottom_right_delta) = 0; 33 34 // Called after the window has faded out on a hide. 35 virtual void OnWindowHidingAnimationCompleted() = 0; 36 37 protected: ~AnimationHost()38 virtual ~AnimationHost() {} 39 }; 40 41 AURA_EXPORT void SetAnimationHost(Window* window, 42 AnimationHost* animation_host); 43 AURA_EXPORT AnimationHost* GetAnimationHost(Window* window); 44 45 } // namespace client 46 } // namespace aura 47 48 #endif // UI_WM_PUBLIC_ANIMATION_HOST_H_ 49