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

Side by Side Diff: ui/app_list/views/app_list_main_view.cc

Issue 683703002: Notify launcher page with onTransitionChanged event (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@launcher_page_api_show_state_notify
Patch Set: nullptr like it's 1999 Created 6 years, 1 month 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "ui/app_list/views/app_list_main_view.h" 5 #include "ui/app_list/views/app_list_main_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 AddChildView(contents_switcher_view_); 118 AddChildView(contents_switcher_view_);
119 119
120 search_box_view_->set_contents_view(contents_view_); 120 search_box_view_->set_contents_view(contents_view_);
121 UpdateSearchBoxVisibility(); 121 UpdateSearchBoxVisibility();
122 122
123 contents_view_->SetPaintToLayer(true); 123 contents_view_->SetPaintToLayer(true);
124 contents_view_->SetFillsBoundsOpaquely(false); 124 contents_view_->SetFillsBoundsOpaquely(false);
125 contents_view_->layer()->SetMasksToBounds(true); 125 contents_view_->layer()->SetMasksToBounds(true);
126 126
127 delegate_->StartSearch(); 127 delegate_->StartSearch();
128
129 FOR_EACH_OBSERVER(
130 AppListMainViewObserver, observers_, OnContentsViewCreated());
128 } 131 }
129 132
130 void AppListMainView::ShowAppListWhenReady() { 133 void AppListMainView::ShowAppListWhenReady() {
131 if (pending_icon_loaders_.empty()) { 134 if (pending_icon_loaders_.empty()) {
132 icon_loading_wait_timer_.Stop(); 135 icon_loading_wait_timer_.Stop();
133 GetWidget()->Show(); 136 GetWidget()->Show();
134 return; 137 return;
135 } 138 }
136 139
137 if (icon_loading_wait_timer_.IsRunning()) 140 if (icon_loading_wait_timer_.IsRunning())
(...skipping 22 matching lines...) Expand all
160 } 163 }
161 164
162 void AppListMainView::Prerender() { 165 void AppListMainView::Prerender() {
163 contents_view_->Prerender(); 166 contents_view_->Prerender();
164 } 167 }
165 168
166 void AppListMainView::ModelChanged() { 169 void AppListMainView::ModelChanged() {
167 pending_icon_loaders_.clear(); 170 pending_icon_loaders_.clear();
168 model_ = delegate_->GetModel(); 171 model_ = delegate_->GetModel();
169 search_box_view_->ModelChanged(); 172 search_box_view_->ModelChanged();
173
174 FOR_EACH_OBSERVER(
175 AppListMainViewObserver, observers_, OnContentsViewDestroying());
176
170 delete contents_view_; 177 delete contents_view_;
171 contents_view_ = NULL; 178 contents_view_ = NULL;
172 if (contents_switcher_view_) { 179 if (contents_switcher_view_) {
173 delete contents_switcher_view_; 180 delete contents_switcher_view_;
174 contents_switcher_view_ = NULL; 181 contents_switcher_view_ = NULL;
175 } 182 }
176 AddContentsViews(); 183 AddContentsViews();
177 Layout(); 184 Layout();
178 } 185 }
179 186
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 } 261 }
255 262
256 void AppListMainView::NotifySearchBoxVisibilityChanged() { 263 void AppListMainView::NotifySearchBoxVisibilityChanged() {
257 // Repaint the AppListView's background which will repaint the background for 264 // Repaint the AppListView's background which will repaint the background for
258 // the search box. This is needed because this view paints to a layer and 265 // the search box. This is needed because this view paints to a layer and
259 // won't propagate paints upward. 266 // won't propagate paints upward.
260 if (parent()) 267 if (parent())
261 parent()->SchedulePaint(); 268 parent()->SchedulePaint();
262 } 269 }
263 270
271 void AppListMainView::AddObserver(AppListMainViewObserver* observer) {
272 observers_.AddObserver(observer);
273 }
274
275 void AppListMainView::RemoveObserver(AppListMainViewObserver* observer) {
276 observers_.RemoveObserver(observer);
277 }
278
264 void AppListMainView::ActivateApp(AppListItem* item, int event_flags) { 279 void AppListMainView::ActivateApp(AppListItem* item, int event_flags) {
265 // TODO(jennyz): Activate the folder via AppListModel notification. 280 // TODO(jennyz): Activate the folder via AppListModel notification.
266 if (item->GetItemType() == AppListFolderItem::kItemType) 281 if (item->GetItemType() == AppListFolderItem::kItemType)
267 contents_view_->ShowFolderContent(static_cast<AppListFolderItem*>(item)); 282 contents_view_->ShowFolderContent(static_cast<AppListFolderItem*>(item));
268 else 283 else
269 item->Activate(event_flags); 284 item->Activate(event_flags);
270 } 285 }
271 286
272 void AppListMainView::GetShortcutPathForApp( 287 void AppListMainView::GetShortcutPathForApp(
273 const std::string& app_id, 288 const std::string& app_id,
(...skipping 28 matching lines...) Expand all
302 // Resubmit the query via a posted task so that all observers for the 317 // Resubmit the query via a posted task so that all observers for the
303 // uninstall notification are notified. 318 // uninstall notification are notified.
304 base::MessageLoop::current()->PostTask( 319 base::MessageLoop::current()->PostTask(
305 FROM_HERE, 320 FROM_HERE,
306 base::Bind(&AppListMainView::QueryChanged, 321 base::Bind(&AppListMainView::QueryChanged,
307 weak_ptr_factory_.GetWeakPtr(), 322 weak_ptr_factory_.GetWeakPtr(),
308 search_box_view_)); 323 search_box_view_));
309 } 324 }
310 325
311 } // namespace app_list 326 } // namespace app_list
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698