| Index: ash/wm/workspace/phantom_window_controller.h
|
| diff --git a/ash/wm/workspace/phantom_window_controller.h b/ash/wm/workspace/phantom_window_controller.h
|
| index 77d4a2860353a0393c0d703f8c09187f4c3788ba..a6ab601b414b1cf67fdf96935bfba49f2e24a919 100644
|
| --- a/ash/wm/workspace/phantom_window_controller.h
|
| +++ b/ash/wm/workspace/phantom_window_controller.h
|
| @@ -9,17 +9,12 @@
|
| #include "base/basictypes.h"
|
| #include "base/gtest_prod_util.h"
|
| #include "base/memory/scoped_ptr.h"
|
| -#include "ui/gfx/animation/animation_delegate.h"
|
| #include "ui/gfx/rect.h"
|
|
|
| namespace aura {
|
| class Window;
|
| }
|
|
|
| -namespace gfx {
|
| -class SlideAnimation;
|
| -}
|
| -
|
| namespace views {
|
| class Widget;
|
| }
|
| @@ -28,14 +23,14 @@ namespace ash {
|
| namespace internal {
|
|
|
| // PhantomWindowController is responsible for showing a phantom representation
|
| -// of a window. It's used used during dragging a window to show a snap location.
|
| -class ASH_EXPORT PhantomWindowController : public gfx::AnimationDelegate {
|
| +// of a window. It's used to show a preview of how snapping or docking a window
|
| +// will affect the window's bounds.
|
| +class ASH_EXPORT PhantomWindowController {
|
| public:
|
| explicit PhantomWindowController(aura::Window* window);
|
| - virtual ~PhantomWindowController();
|
|
|
| - // Bounds last passed to Show().
|
| - const gfx::Rect& bounds_in_screen() const { return bounds_in_screen_; }
|
| + // Hides the phantom window without any animation.
|
| + virtual ~PhantomWindowController();
|
|
|
| // Animates the phantom window towards |bounds_in_screen|.
|
| // Creates two (if start bounds intersect any root window other than the
|
| @@ -44,28 +39,20 @@ class ASH_EXPORT PhantomWindowController : public gfx::AnimationDelegate {
|
| // This does not immediately show the window.
|
| void Show(const gfx::Rect& bounds_in_screen);
|
|
|
| - // Hides the phantom.
|
| - void Hide();
|
| -
|
| - // Returns true if the phantom is showing.
|
| - bool IsShowing() const;
|
| -
|
| // If set, the phantom window is stacked below this window, otherwise it
|
| // is stacked above the window passed to the constructor.
|
| void set_phantom_below_window(aura::Window* phantom_below_window) {
|
| phantom_below_window_ = phantom_below_window;
|
| }
|
|
|
| - // gfx::AnimationDelegate overrides:
|
| - virtual void AnimationProgressed(const gfx::Animation* animation) OVERRIDE;
|
| -
|
| private:
|
| - FRIEND_TEST_ALL_PREFIXES(WorkspaceWindowResizerTest, PhantomWindowShow);
|
| + friend class PhantomWindowControllerTest;
|
|
|
| // Creates, shows and returns a phantom widget at |bounds|
|
| // with kShellWindowId_ShelfContainer in |root_window| as a parent.
|
| - views::Widget* CreatePhantomWidget(aura::Window* root_window,
|
| - const gfx::Rect& bounds_in_screen);
|
| + scoped_ptr<views::Widget> CreatePhantomWidget(
|
| + aura::Window* root_window,
|
| + const gfx::Rect& bounds_in_screen);
|
|
|
| // Window the phantom is placed beneath.
|
| aura::Window* window_;
|
| @@ -73,26 +60,18 @@ class ASH_EXPORT PhantomWindowController : public gfx::AnimationDelegate {
|
| // If set, the phantom window should get stacked below this window.
|
| aura::Window* phantom_below_window_;
|
|
|
| - // Initially the bounds of |window_| (in screen coordinates).
|
| - // Each time Show() is invoked |start_bounds_| is then reset to the bounds of
|
| - // |phantom_widget_| and |bounds_| is set to the value passed into Show().
|
| - // The animation animates between these two values.
|
| - gfx::Rect start_bounds_;
|
| -
|
| // Target bounds of the animation in screen coordinates.
|
| - gfx::Rect bounds_in_screen_;
|
| -
|
| - // The primary phantom representation of the window. It is parented by the
|
| - // root window matching the target bounds.
|
| - views::Widget* phantom_widget_;
|
| + gfx::Rect target_bounds_in_screen_;
|
|
|
| - // If the animation starts on another display, this is the secondary phantom
|
| - // representation of the window used on the initial display, otherwise this is
|
| - // NULL. This allows animation to progress from one display into the other.
|
| - views::Widget* phantom_widget_start_;
|
| + // Phantom representation of the window which is in the root window matching
|
| + // |target_bounds_in_screen_|.
|
| + scoped_ptr<views::Widget> phantom_widget_in_target_root_;
|
|
|
| - // Used to transition the bounds.
|
| - scoped_ptr<gfx::SlideAnimation> animation_;
|
| + // Phantom representation of the window which is in the root window matching
|
| + // the window's initial bounds. This allows animations to progress from one
|
| + // display to the other. NULL if the phantom window starts and ends in the
|
| + // same root window.
|
| + scoped_ptr<views::Widget> phantom_widget_in_start_root_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(PhantomWindowController);
|
| };
|
|
|