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

Side by Side Diff: ash/wm/app_list_controller.cc

Issue 11017079: Remove Shell::shelf()|status_area_widget()|launcher() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 2 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 | Annotate | Revision Log
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/wm/app_list_controller.h" 5 #include "ash/wm/app_list_controller.h"
6 6
7 #include "ash/launcher/launcher.h" 7 #include "ash/launcher/launcher.h"
8 #include "ash/root_window_controller.h" 8 #include "ash/root_window_controller.h"
9 #include "ash/shell.h" 9 #include "ash/shell.h"
10 #include "ash/shell_delegate.h" 10 #include "ash/shell_delegate.h"
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 } 108 }
109 109
110 void AppListController::SetVisible(bool visible) { 110 void AppListController::SetVisible(bool visible) {
111 if (visible == is_visible_) 111 if (visible == is_visible_)
112 return; 112 return;
113 113
114 is_visible_ = visible; 114 is_visible_ = visible;
115 115
116 // App list needs to know the new shelf layout in order to calculate its 116 // App list needs to know the new shelf layout in order to calculate its
117 // UI layout when AppListView visibility changes. 117 // UI layout when AppListView visibility changes.
118 Shell::GetInstance()->shelf()->UpdateAutoHideState(); 118 Shell::GetPrimaryRootWindowController()->shelf()->UpdateAutoHideState();
119 119
120 if (view_) { 120 if (view_) {
121 ScheduleAnimation(); 121 ScheduleAnimation();
122 } else if (is_visible_) { 122 } else if (is_visible_) {
123 // AppListModel and AppListViewDelegate are owned by AppListView. They 123 // AppListModel and AppListViewDelegate are owned by AppListView. They
124 // will be released with AppListView on close. 124 // will be released with AppListView on close.
125 app_list::AppListView* view = new app_list::AppListView( 125 app_list::AppListView* view = new app_list::AppListView(
126 Shell::GetInstance()->delegate()->CreateAppListViewDelegate()); 126 Shell::GetInstance()->delegate()->CreateAppListViewDelegate());
127 view->InitAsBubble( 127 view->InitAsBubble(
128 Shell::GetPrimaryRootWindowController()->GetContainer( 128 Shell::GetPrimaryRootWindowController()->GetContainer(
129 kShellWindowId_AppListContainer), 129 kShellWindowId_AppListContainer),
130 pagination_model_.get(), 130 pagination_model_.get(),
131 Shell::GetInstance()->launcher()->GetAppListButtonView(), 131 Launcher::ForWindow(GetWindow())->GetAppListButtonView(),
132 gfx::Point(), 132 gfx::Point(),
133 GetBubbleArrowLocation()); 133 GetBubbleArrowLocation());
134 SetView(view); 134 SetView(view);
135 } 135 }
136 } 136 }
137 137
138 bool AppListController::IsVisible() const { 138 bool AppListController::IsVisible() const {
139 return view_ && view_->GetWidget()->IsVisible(); 139 return view_ && view_->GetWidget()->IsVisible();
140 } 140 }
141 141
142 aura::Window* AppListController::GetWindow() { 142 aura::Window* AppListController::GetWindow() {
143 return is_visible_ && view_ ? view_->GetWidget()->GetNativeWindow() : NULL; 143 return is_visible_ && view_ ? view_->GetWidget()->GetNativeWindow() : NULL;
144 } 144 }
145 145
146 //////////////////////////////////////////////////////////////////////////////// 146 ////////////////////////////////////////////////////////////////////////////////
147 // AppListController, private: 147 // AppListController, private:
148 148
149 void AppListController::SetView(app_list::AppListView* view) { 149 void AppListController::SetView(app_list::AppListView* view) {
150 DCHECK(view_ == NULL); 150 DCHECK(view_ == NULL);
151 151
152 if (is_visible_) { 152 if (is_visible_) {
153 view_ = view; 153 view_ = view;
154 views::Widget* widget = view_->GetWidget(); 154 views::Widget* widget = view_->GetWidget();
155 widget->AddObserver(this); 155 widget->AddObserver(this);
156 Shell::GetInstance()->AddEnvEventFilter(this); 156 Shell::GetInstance()->AddEnvEventFilter(this);
157 Shell::GetInstance()->launcher()->AddIconObserver(this); 157 Launcher::ForWindow(GetWindow())->AddIconObserver(this);
158 widget->GetNativeView()->GetRootWindow()->AddRootWindowObserver(this); 158 widget->GetNativeView()->GetRootWindow()->AddRootWindowObserver(this);
159 widget->GetNativeView()->GetFocusManager()->AddObserver(this); 159 widget->GetNativeView()->GetFocusManager()->AddObserver(this);
160 widget->SetOpacity(0); 160 widget->SetOpacity(0);
161 ScheduleAnimation(); 161 ScheduleAnimation();
162 162
163 view_->GetWidget()->Show(); 163 view_->GetWidget()->Show();
164 } else { 164 } else {
165 view->GetWidget()->Close(); 165 view->GetWidget()->Close();
166 } 166 }
167 } 167 }
168 168
169 void AppListController::ResetView() { 169 void AppListController::ResetView() {
170 if (!view_) 170 if (!view_)
171 return; 171 return;
172 172
173 views::Widget* widget = view_->GetWidget(); 173 views::Widget* widget = view_->GetWidget();
174 widget->RemoveObserver(this); 174 widget->RemoveObserver(this);
175 GetLayer(widget)->GetAnimator()->RemoveObserver(this); 175 GetLayer(widget)->GetAnimator()->RemoveObserver(this);
176 Shell::GetInstance()->RemoveEnvEventFilter(this); 176 Shell::GetInstance()->RemoveEnvEventFilter(this);
177 Shell::GetInstance()->launcher()->RemoveIconObserver(this); 177 Launcher::ForWindow(GetWindow())->RemoveIconObserver(this);
178 widget->GetNativeView()->GetRootWindow()->RemoveRootWindowObserver(this); 178 widget->GetNativeView()->GetRootWindow()->RemoveRootWindowObserver(this);
179 widget->GetNativeView()->GetFocusManager()->RemoveObserver(this); 179 widget->GetNativeView()->GetFocusManager()->RemoveObserver(this);
180 view_ = NULL; 180 view_ = NULL;
181 } 181 }
182 182
183 void AppListController::ScheduleAnimation() { 183 void AppListController::ScheduleAnimation() {
184 // Stop observing previous animation. 184 // Stop observing previous animation.
185 StopObservingImplicitAnimations(); 185 StopObservingImplicitAnimations();
186 186
187 views::Widget* widget = view_->GetWidget(); 187 views::Widget* widget = view_->GetWidget();
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
356 should_snap_back_ = false; 356 should_snap_back_ = false;
357 ui::ScopedLayerAnimationSettings animation(GetLayer(widget)->GetAnimator()); 357 ui::ScopedLayerAnimationSettings animation(GetLayer(widget)->GetAnimator());
358 animation.SetTransitionDuration( 358 animation.SetTransitionDuration(
359 base::TimeDelta::FromMilliseconds(kSnapBackAnimationDurationMs)); 359 base::TimeDelta::FromMilliseconds(kSnapBackAnimationDurationMs));
360 widget->SetBounds(view_bounds_); 360 widget->SetBounds(view_bounds_);
361 } 361 }
362 } 362 }
363 363
364 } // namespace internal 364 } // namespace internal
365 } // namespace ash 365 } // namespace ash
OLDNEW
« no previous file with comments | « ash/system/web_notification/web_notification_tray_unittest.cc ('k') | ash/wm/gestures/shelf_gesture_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698