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

Side by Side Diff: ash/app_list/app_list_presenter_delegate.cc

Issue 2886253002: mash: remove more shell/shelf WmWindow usage. (Closed)
Patch Set: Fix WmShelf::ForWindow. Created 3 years, 7 months 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 unified diff | Download patch
OLDNEW
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/app_list/app_list_presenter_delegate.h" 5 #include "ash/app_list/app_list_presenter_delegate.h"
6 6
7 #include "ash/ash_switches.h" 7 #include "ash/ash_switches.h"
8 #include "ash/public/cpp/shelf_types.h" 8 #include "ash/public/cpp/shelf_types.h"
9 #include "ash/public/cpp/shell_window_ids.h" 9 #include "ash/public/cpp/shell_window_ids.h"
10 #include "ash/root_window_controller.h" 10 #include "ash/root_window_controller.h"
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 88
89 void AppListPresenterDelegate::Init(app_list::AppListView* view, 89 void AppListPresenterDelegate::Init(app_list::AppListView* view,
90 int64_t display_id, 90 int64_t display_id,
91 int current_apps_page) { 91 int current_apps_page) {
92 // App list needs to know the new shelf layout in order to calculate its 92 // App list needs to know the new shelf layout in order to calculate its
93 // UI layout when AppListView visibility changes. 93 // UI layout when AppListView visibility changes.
94 ash::Shell::GetPrimaryRootWindowController() 94 ash::Shell::GetPrimaryRootWindowController()
95 ->GetShelfLayoutManager() 95 ->GetShelfLayoutManager()
96 ->UpdateAutoHideState(); 96 ->UpdateAutoHideState();
97 view_ = view; 97 view_ = view;
98 WmWindow* wm_root_window = 98 aura::Window* root_window =
99 ShellPort::Get()->GetRootWindowForDisplayId(display_id); 99 ShellPort::Get()->GetRootWindowForDisplayId(display_id);
100 aura::Window* root_window = wm_root_window->aura_window();
101 aura::Window* container = GetRootWindowController(root_window) 100 aura::Window* container = GetRootWindowController(root_window)
102 ->GetContainer(kShellWindowId_AppListContainer); 101 ->GetContainer(kShellWindowId_AppListContainer);
103 102
104 view->Initialize(container, current_apps_page); 103 view->Initialize(container, current_apps_page);
105 104
106 if (!app_list::features::IsFullscreenAppListEnabled()) { 105 if (!app_list::features::IsFullscreenAppListEnabled()) {
107 view->MaybeSetAnchorPoint(GetCenterOfDisplayForWindow( 106 view->MaybeSetAnchorPoint(GetCenterOfDisplayForWindow(
108 wm_root_window, GetMinimumBoundsHeightForAppList(view))); 107 WmWindow::Get(root_window), GetMinimumBoundsHeightForAppList(view)));
109 } 108 }
110 keyboard::KeyboardController* keyboard_controller = 109 keyboard::KeyboardController* keyboard_controller =
111 keyboard::KeyboardController::GetInstance(); 110 keyboard::KeyboardController::GetInstance();
112 if (keyboard_controller) 111 if (keyboard_controller)
113 keyboard_controller->AddObserver(this); 112 keyboard_controller->AddObserver(this);
114 Shell::Get()->AddPreTargetHandler(this); 113 Shell::Get()->AddPreTargetHandler(this);
115 WmShelf* shelf = WmShelf::ForWindow(wm_root_window); 114 WmShelf* shelf = WmShelf::ForWindow(root_window);
116 shelf->AddObserver(this); 115 shelf->AddObserver(this);
117 116
118 // By setting us as DnD recipient, the app list knows that we can 117 // By setting us as DnD recipient, the app list knows that we can
119 // handle items. 118 // handle items.
120 view->SetDragAndDropHostOfCurrentAppList( 119 view->SetDragAndDropHostOfCurrentAppList(
121 shelf->shelf_widget()->GetDragAndDropHostForAppList()); 120 shelf->shelf_widget()->GetDragAndDropHostForAppList());
122 } 121 }
123 122
124 void AppListPresenterDelegate::OnShown(int64_t display_id) { 123 void AppListPresenterDelegate::OnShown(int64_t display_id) {
125 is_visible_ = true; 124 is_visible_ = true;
126 // Update applist button status when app list visibility is changed. 125 // Update applist button status when app list visibility is changed.
127 WmWindow* root_window = 126 aura::Window* root_window =
128 ShellPort::Get()->GetRootWindowForDisplayId(display_id); 127 ShellPort::Get()->GetRootWindowForDisplayId(display_id);
129 AppListButton* app_list_button = 128 AppListButton* app_list_button =
130 WmShelf::ForWindow(root_window)->shelf_widget()->GetAppListButton(); 129 WmShelf::ForWindow(root_window)->shelf_widget()->GetAppListButton();
131 if (app_list_button) 130 if (app_list_button)
132 app_list_button->OnAppListShown(); 131 app_list_button->OnAppListShown();
133 } 132 }
134 133
135 void AppListPresenterDelegate::OnDismissed() { 134 void AppListPresenterDelegate::OnDismissed() {
136 DCHECK(is_visible_); 135 DCHECK(is_visible_);
137 DCHECK(view_); 136 DCHECK(view_);
138 137
139 is_visible_ = false; 138 is_visible_ = false;
140 139
141 // Update applist button status when app list visibility is changed. 140 // Update applist button status when app list visibility is changed.
142 WmWindow* window = WmWindow::Get(view_->GetWidget()->GetNativeWindow()); 141 WmShelf* shelf = WmShelf::ForWindow(view_->GetWidget()->GetNativeWindow());
143 AppListButton* app_list_button = 142 AppListButton* app_list_button = shelf->shelf_widget()->GetAppListButton();
144 WmShelf::ForWindow(window)->shelf_widget()->GetAppListButton();
145 if (app_list_button) 143 if (app_list_button)
146 app_list_button->OnAppListDismissed(); 144 app_list_button->OnAppListDismissed();
147 } 145 }
148 146
149 void AppListPresenterDelegate::UpdateBounds() { 147 void AppListPresenterDelegate::UpdateBounds() {
150 if (!view_ || !is_visible_) 148 if (!view_ || !is_visible_)
151 return; 149 return;
152 150
153 view_->UpdateBounds(); 151 view_->UpdateBounds();
154 view_->MaybeSetAnchorPoint(GetCenterOfDisplayForWindow( 152 view_->MaybeSetAnchorPoint(GetCenterOfDisplayForWindow(
155 WmWindow::Get(view_->GetWidget()->GetNativeWindow()), 153 WmWindow::Get(view_->GetWidget()->GetNativeWindow()),
156 GetMinimumBoundsHeightForAppList(view_))); 154 GetMinimumBoundsHeightForAppList(view_)));
157 } 155 }
158 156
159 gfx::Vector2d AppListPresenterDelegate::GetVisibilityAnimationOffset( 157 gfx::Vector2d AppListPresenterDelegate::GetVisibilityAnimationOffset(
160 aura::Window* root_window) { 158 aura::Window* root_window) {
161 DCHECK(Shell::HasInstance()); 159 DCHECK(Shell::HasInstance());
162 160
163 // App list needs to know the new shelf layout in order to calculate its 161 // App list needs to know the new shelf layout in order to calculate its
164 // UI layout when AppListView visibility changes. 162 // UI layout when AppListView visibility changes.
165 WmShelf* shelf = WmShelf::ForWindow(WmWindow::Get(root_window)); 163 WmShelf* shelf = WmShelf::ForWindow(root_window);
166 shelf->UpdateAutoHideState(); 164 shelf->UpdateAutoHideState();
167 165
168 switch (shelf->alignment()) { 166 switch (shelf->alignment()) {
169 case SHELF_ALIGNMENT_BOTTOM: 167 case SHELF_ALIGNMENT_BOTTOM:
170 case SHELF_ALIGNMENT_BOTTOM_LOCKED: 168 case SHELF_ALIGNMENT_BOTTOM_LOCKED:
171 return gfx::Vector2d(0, kAnimationOffset); 169 return gfx::Vector2d(0, kAnimationOffset);
172 case SHELF_ALIGNMENT_LEFT: 170 case SHELF_ALIGNMENT_LEFT:
173 return gfx::Vector2d(-kAnimationOffset, 0); 171 return gfx::Vector2d(-kAnimationOffset, 0);
174 case SHELF_ALIGNMENT_RIGHT: 172 case SHELF_ALIGNMENT_RIGHT:
175 return gfx::Vector2d(kAnimationOffset, 0); 173 return gfx::Vector2d(kAnimationOffset, 0);
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 } 240 }
243 241
244 //////////////////////////////////////////////////////////////////////////////// 242 ////////////////////////////////////////////////////////////////////////////////
245 // AppListPresenterDelegate, WmShelfObserver implementation: 243 // AppListPresenterDelegate, WmShelfObserver implementation:
246 244
247 void AppListPresenterDelegate::OnShelfIconPositionsChanged() { 245 void AppListPresenterDelegate::OnShelfIconPositionsChanged() {
248 UpdateBounds(); 246 UpdateBounds();
249 } 247 }
250 248
251 } // namespace ash 249 } // namespace ash
OLDNEW
« no previous file with comments | « ash/app_list/app_list_delegate_impl.cc ('k') | ash/app_list/app_list_presenter_delegate_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698