| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ash/shelf/shelf_layout_manager.h" | 5 #include "ash/shelf/shelf_layout_manager.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <cmath> | 8 #include <cmath> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 187 private: | 187 private: |
| 188 ShelfLayoutManager* shelf_layout_manager_; | 188 ShelfLayoutManager* shelf_layout_manager_; |
| 189 WmRootWindowController* root_window_controller_; | 189 WmRootWindowController* root_window_controller_; |
| 190 | 190 |
| 191 DISALLOW_COPY_AND_ASSIGN(RootWindowControllerObserverImpl); | 191 DISALLOW_COPY_AND_ASSIGN(RootWindowControllerObserverImpl); |
| 192 }; | 192 }; |
| 193 | 193 |
| 194 // ShelfLayoutManager ---------------------------------------------------------- | 194 // ShelfLayoutManager ---------------------------------------------------------- |
| 195 | 195 |
| 196 ShelfLayoutManager::ShelfLayoutManager(ShelfWidget* shelf_widget) | 196 ShelfLayoutManager::ShelfLayoutManager(ShelfWidget* shelf_widget) |
| 197 : SnapToPixelLayoutManager(shelf_widget->GetNativeView()->parent()), | 197 : root_window_(shelf_widget->GetNativeView()->GetRootWindow()), |
| 198 root_window_(shelf_widget->GetNativeView()->GetRootWindow()), | |
| 199 updating_bounds_(false), | 198 updating_bounds_(false), |
| 200 shelf_widget_(shelf_widget), | 199 shelf_widget_(shelf_widget), |
| 201 workspace_controller_(NULL), | 200 workspace_controller_(NULL), |
| 202 window_overlaps_shelf_(false), | 201 window_overlaps_shelf_(false), |
| 203 mouse_over_shelf_when_auto_hide_timer_started_(false), | 202 mouse_over_shelf_when_auto_hide_timer_started_(false), |
| 204 bezel_event_filter_(new ShelfBezelEventFilter(this)), | 203 bezel_event_filter_(new ShelfBezelEventFilter(this)), |
| 205 gesture_drag_status_(GESTURE_DRAG_NONE), | 204 gesture_drag_status_(GESTURE_DRAG_NONE), |
| 206 gesture_drag_amount_(0.f), | 205 gesture_drag_amount_(0.f), |
| 207 gesture_drag_auto_hide_state_(SHELF_AUTO_HIDE_SHOWN), | 206 gesture_drag_auto_hide_state_(SHELF_AUTO_HIDE_SHOWN), |
| 208 update_shelf_observer_(NULL), | 207 update_shelf_observer_(NULL), |
| (...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 493 UpdateVisibilityState(); | 492 UpdateVisibilityState(); |
| 494 gesture_drag_status_ = GESTURE_DRAG_NONE; | 493 gesture_drag_status_ = GESTURE_DRAG_NONE; |
| 495 } | 494 } |
| 496 | 495 |
| 497 void ShelfLayoutManager::SetAnimationDurationOverride( | 496 void ShelfLayoutManager::SetAnimationDurationOverride( |
| 498 int duration_override_in_ms) { | 497 int duration_override_in_ms) { |
| 499 duration_override_in_ms_ = duration_override_in_ms; | 498 duration_override_in_ms_ = duration_override_in_ms; |
| 500 } | 499 } |
| 501 | 500 |
| 502 //////////////////////////////////////////////////////////////////////////////// | 501 //////////////////////////////////////////////////////////////////////////////// |
| 503 // ShelfLayoutManager, aura::LayoutManager implementation: | 502 // ShelfLayoutManager, wm::WmSnapToPixelLayoutManager implementation: |
| 504 | 503 |
| 505 void ShelfLayoutManager::OnWindowResized() { | 504 void ShelfLayoutManager::OnWindowResized() { |
| 506 LayoutShelf(); | 505 LayoutShelf(); |
| 507 } | 506 } |
| 508 | 507 |
| 509 void ShelfLayoutManager::SetChildBounds(aura::Window* child, | 508 void ShelfLayoutManager::SetChildBounds(WmWindow* child, |
| 510 const gfx::Rect& requested_bounds) { | 509 const gfx::Rect& requested_bounds) { |
| 511 SnapToPixelLayoutManager::SetChildBounds(child, requested_bounds); | 510 wm::WmSnapToPixelLayoutManager::SetChildBounds(child, requested_bounds); |
| 512 // We may contain other widgets (such as frame maximize bubble) but they don't | 511 // We may contain other widgets (such as frame maximize bubble) but they don't |
| 513 // effect the layout in anyway. | 512 // effect the layout in anyway. |
| 514 if (!updating_bounds_ && | 513 if (!updating_bounds_ && |
| 515 ((shelf_widget_->GetNativeView() == child) || | 514 ((WmLookup::Get()->GetWindowForWidget(shelf_widget_) == child) || |
| 516 (shelf_widget_->status_area_widget()->GetNativeView() == child))) { | 515 (WmLookup::Get()->GetWindowForWidget( |
| 516 shelf_widget_->status_area_widget()) == child))) { |
| 517 LayoutShelf(); | 517 LayoutShelf(); |
| 518 } | 518 } |
| 519 } | 519 } |
| 520 | 520 |
| 521 void ShelfLayoutManager::OnLockStateChanged(bool locked) { | 521 void ShelfLayoutManager::OnLockStateChanged(bool locked) { |
| 522 // Force the shelf to layout for alignment (bottom if locked, restore | 522 // Force the shelf to layout for alignment (bottom if locked, restore |
| 523 // the previous alignment otherwise). | 523 // the previous alignment otherwise). |
| 524 state_.is_screen_locked = locked; | 524 state_.is_screen_locked = locked; |
| 525 UpdateShelfVisibilityAfterLoginUIChange(); | 525 UpdateShelfVisibilityAfterLoginUIChange(); |
| 526 } | 526 } |
| (...skipping 658 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1185 if (ash::MaterialDesignController::IsShelfMaterial()) { | 1185 if (ash::MaterialDesignController::IsShelfMaterial()) { |
| 1186 return (state.visibility_state == SHELF_AUTO_HIDE && | 1186 return (state.visibility_state == SHELF_AUTO_HIDE && |
| 1187 state.auto_hide_state == SHELF_AUTO_HIDE_SHOWN) | 1187 state.auto_hide_state == SHELF_AUTO_HIDE_SHOWN) |
| 1188 ? 1.0f | 1188 ? 1.0f |
| 1189 : 0.0f; | 1189 : 0.0f; |
| 1190 } | 1190 } |
| 1191 return (state.visibility_state == SHELF_AUTO_HIDE) ? 1.0f : 0.0f; | 1191 return (state.visibility_state == SHELF_AUTO_HIDE) ? 1.0f : 0.0f; |
| 1192 } | 1192 } |
| 1193 | 1193 |
| 1194 } // namespace ash | 1194 } // namespace ash |
| OLD | NEW |