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

Unified Diff: ui/aura_shell/status_area_layout_manager.cc

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/status_area_layout_manager.h ('k') | ui/aura_shell/toplevel_layout_manager.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/aura_shell/status_area_layout_manager.cc
diff --git a/ui/aura_shell/status_area_layout_manager.cc b/ui/aura_shell/status_area_layout_manager.cc
new file mode 100644
index 0000000000000000000000000000000000000000..0ac94edec78bacbf87c47be8aff3b8d311633652
--- /dev/null
+++ b/ui/aura_shell/status_area_layout_manager.cc
@@ -0,0 +1,62 @@
+// 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.
+
+#include "ui/aura_shell/status_area_layout_manager.h"
+
+#include "base/auto_reset.h"
+#include "ui/aura_shell/shelf_layout_manager.h"
+
+namespace aura_shell {
+namespace internal {
+
+////////////////////////////////////////////////////////////////////////////////
+// StatusAreaLayoutManager, public:
+
+StatusAreaLayoutManager::StatusAreaLayoutManager(ShelfLayoutManager* shelf)
+ : in_layout_(false),
+ shelf_(shelf) {
+}
+
+StatusAreaLayoutManager::~StatusAreaLayoutManager() {
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// StatusAreaLayoutManager, aura::LayoutManager implementation:
+
+void StatusAreaLayoutManager::OnWindowResized() {
+ LayoutStatusArea();
+}
+
+void StatusAreaLayoutManager::OnWindowAddedToLayout(aura::Window* child) {
+}
+
+void StatusAreaLayoutManager::OnWillRemoveWindowFromLayout(
+ aura::Window* child) {
+}
+
+void StatusAreaLayoutManager::OnChildWindowVisibilityChanged(
+ aura::Window* child, bool visible) {
+}
+
+void StatusAreaLayoutManager::SetChildBounds(
+ aura::Window* child, const gfx::Rect& requested_bounds) {
+ SetChildBoundsDirect(child, requested_bounds);
+ if (!in_layout_)
+ LayoutStatusArea();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// StatusAreaLayoutManager, private:
+
+void StatusAreaLayoutManager::LayoutStatusArea() {
+ // Shelf layout manager may be already doing layout.
+ if (shelf_->in_layout())
+ return;
+
+ AutoReset<bool> auto_reset_in_layout(&in_layout_, true);
+ shelf_->LayoutShelf();
+}
+
+} // internal
+} // aura_shell
« no previous file with comments | « ui/aura_shell/status_area_layout_manager.h ('k') | ui/aura_shell/toplevel_layout_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698