Chromium Code Reviews| Index: ui/aura_shell/shelf_layout_manager.h |
| diff --git a/ui/aura_shell/shelf_layout_controller.h b/ui/aura_shell/shelf_layout_manager.h |
| similarity index 61% |
| rename from ui/aura_shell/shelf_layout_controller.h |
| rename to ui/aura_shell/shelf_layout_manager.h |
| index a675699e5e1fa67c97d914d01ba41c82802e4c39..d5a26eb698ed4d0ae265bc3ba97ebc48dd3d227e 100644 |
| --- a/ui/aura_shell/shelf_layout_controller.h |
| +++ b/ui/aura_shell/shelf_layout_manager.h |
| @@ -2,12 +2,13 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -#ifndef UI_AURA_SHELL_SHELF_LAYOUT_CONTROLLER_H_ |
| -#define UI_AURA_SHELL_SHELF_LAYOUT_CONTROLLER_H_ |
| +#ifndef UI_AURA_SHELL_SHELF_LAYOUT_MANAGER_H_ |
| +#define UI_AURA_SHELL_SHELF_LAYOUT_MANAGER_H_ |
| #pragma once |
| #include "base/basictypes.h" |
| #include "base/compiler_specific.h" |
| +#include "ui/aura/layout_manager.h" |
| #include "ui/gfx/compositor/layer_animation_observer.h" |
| #include "ui/gfx/insets.h" |
| #include "ui/gfx/rect.h" |
| @@ -19,21 +20,27 @@ class Widget; |
| namespace aura_shell { |
| namespace internal { |
| -// ShelfLayoutController is responsible for showing and hiding the launcher and |
| -// status area as well as positioning them. |
| -class ShelfLayoutController : public ui::LayerAnimationObserver { |
| +// ShelfLayoutManager is a layout manager responsible for showing and hiding |
| +// the launcher and status area as well as positioning them. |
| +class ShelfLayoutManager : public aura::LayoutManager, |
| + public ui::LayerAnimationObserver { |
| public: |
| - ShelfLayoutController(views::Widget* launcher, |
| + ShelfLayoutManager(views::Widget* launcher, |
| views::Widget* status); |
|
sky
2011/12/02 19:25:53
nit: update indentation
Nikita (slow)
2011/12/05 14:41:46
Done.
|
| - virtual ~ShelfLayoutController(); |
| - |
| - // Stops any animations and sets the bounds of the launcher and status |
| - // widgets. |
| - void LayoutShelf(); |
| + virtual ~ShelfLayoutManager(); |
| // Sets the visbility of the shelf to |visible|. |
| void SetVisible(bool visible); |
| + // Overridden from aura::LayoutManager: |
| + virtual void OnWindowResized() OVERRIDE; |
| + virtual void OnWindowAddedToLayout(aura::Window* child) OVERRIDE; |
| + virtual void OnWillRemoveWindowFromLayout(aura::Window* child) OVERRIDE; |
| + virtual void OnChildWindowVisibilityChanged(aura::Window* child, |
| + bool visible) OVERRIDE; |
| + virtual void SetChildBounds(aura::Window* child, |
| + const gfx::Rect& requested_bounds) OVERRIDE; |
| + |
| private: |
| struct TargetBounds { |
| gfx::Rect launcher_bounds; |
| @@ -41,6 +48,10 @@ class ShelfLayoutController : public ui::LayerAnimationObserver { |
| gfx::Insets work_area_insets; |
| }; |
| + // Stops any animations and sets the bounds of the launcher and status |
| + // widgets. |
| + void LayoutShelf(); |
| + |
| // Stops any animations. |
| void StopAnimating(); |
| @@ -64,6 +75,10 @@ class ShelfLayoutController : public ui::LayerAnimationObserver { |
| // Are we animating? |
| bool animating_; |
| + // True when inside LayoutShelf method. Used to prevent calling LayoutShelf |
| + // again from SetChildBounds(). |
| + bool in_layout_; |
| + |
| // Current visibility. When the visibility changes this field is reset once |
| // the animation completes. |
| bool visible_; |
| @@ -74,10 +89,10 @@ class ShelfLayoutController : public ui::LayerAnimationObserver { |
| views::Widget* launcher_; |
| views::Widget* status_; |
| - DISALLOW_COPY_AND_ASSIGN(ShelfLayoutController); |
| + DISALLOW_COPY_AND_ASSIGN(ShelfLayoutManager); |
| }; |
| } // namespace internal |
| } // namespace aura_shell |
| -#endif // UI_AURA_SHELL_SHELF_LAYOUT_CONTROLLER_H_ |
| +#endif // UI_AURA_SHELL_SHELF_LAYOUT_MANAGER_H_ |