Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(379)

Unified Diff: ui/aura_shell/shelf_layout_manager.h

Issue 8743014: [cros, Aura] Refresh status area widget bounds on StatusAreaView layout. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nit fixes, merge, prevent double deletion of ShelfLayoutManager Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/aura_shell/shelf_layout_controller.cc ('k') | ui/aura_shell/shelf_layout_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 59%
rename from ui/aura_shell/shelf_layout_controller.h
rename to ui/aura_shell/shelf_layout_manager.h
index a675699e5e1fa67c97d914d01ba41c82802e4c39..2c46867ba3fdf42f5f39e06d09370a063d5f8592 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,13 +20,17 @@ 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 the launcher.
+// Also supports showing and hiding the launcher/status area
+// as well as positioning them.
+class ShelfLayoutManager : public aura::LayoutManager,
+ public ui::LayerAnimationObserver {
public:
- ShelfLayoutController(views::Widget* launcher,
- views::Widget* status);
- virtual ~ShelfLayoutController();
+ ShelfLayoutManager(views::Widget* launcher,
+ views::Widget* status);
+ virtual ~ShelfLayoutManager();
+
+ bool in_layout() const { return in_layout_; }
// Stops any animations and sets the bounds of the launcher and status
// widgets.
@@ -34,6 +39,15 @@ class ShelfLayoutController : public ui::LayerAnimationObserver {
// 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;
@@ -64,6 +78,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 +92,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_
« no previous file with comments | « ui/aura_shell/shelf_layout_controller.cc ('k') | ui/aura_shell/shelf_layout_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698