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

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

Issue 913133007: Allow scroll events to open custom launcher pages. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/start_page_view.h" 5 #include "ui/app_list/views/start_page_view.h"
6 6
7 #include "base/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "ui/app_list/app_list_constants.h" 8 #include "ui/app_list/app_list_constants.h"
9 #include "ui/app_list/app_list_item.h" 9 #include "ui/app_list/app_list_item.h"
10 #include "ui/app_list/app_list_model.h" 10 #include "ui/app_list/app_list_model.h"
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 } 225 }
226 226
227 void StartPageView::Reset() { 227 void StartPageView::Reset() {
228 tiles_container_->Update(); 228 tiles_container_->Update();
229 } 229 }
230 230
231 void StartPageView::UpdateForTesting() { 231 void StartPageView::UpdateForTesting() {
232 tiles_container_->Update(); 232 tiles_container_->Update();
233 } 233 }
234 234
235 void StartPageView::OpenCustomLauncherPage() {
236 // Switch to the custom page.
237 ContentsView* contents_view = app_list_main_view_->contents_view();
238 int custom_page_index = contents_view->GetPageIndexForState(
239 AppListModel::STATE_CUSTOM_LAUNCHER_PAGE);
240 contents_view->SetActivePage(custom_page_index);
241 }
242
235 const std::vector<SearchResultTileItemView*>& StartPageView::tile_views() 243 const std::vector<SearchResultTileItemView*>& StartPageView::tile_views()
236 const { 244 const {
237 return tiles_container_->tile_views(); 245 return tiles_container_->tile_views();
238 } 246 }
239 247
240 TileItemView* StartPageView::all_apps_button() const { 248 TileItemView* StartPageView::all_apps_button() const {
241 return tiles_container_->all_apps_button(); 249 return tiles_container_->all_apps_button();
242 } 250 }
243 251
244 void StartPageView::OnShow() { 252 void StartPageView::OnShow() {
245 UpdateCustomPageClickzoneVisibility();
246 tiles_container_->Update(); 253 tiles_container_->Update();
247 tiles_container_->ClearSelectedIndex(); 254 tiles_container_->ClearSelectedIndex();
248 } 255 }
249 256
250 void StartPageView::OnHide() {
251 UpdateCustomPageClickzoneVisibility();
252 }
253
254 void StartPageView::Layout() { 257 void StartPageView::Layout() {
255 gfx::Rect bounds(GetContentsBounds()); 258 gfx::Rect bounds(GetContentsBounds());
256 bounds.set_height(instant_container_->GetHeightForWidth(bounds.width())); 259 bounds.set_height(instant_container_->GetHeightForWidth(bounds.width()));
257 instant_container_->SetBoundsRect(bounds); 260 instant_container_->SetBoundsRect(bounds);
258 261
259 // Tiles begin where the instant container ends. 262 // Tiles begin where the instant container ends.
260 bounds.set_y(bounds.bottom()); 263 bounds.set_y(bounds.bottom());
261 bounds.set_height(tiles_container_->GetHeightForWidth(bounds.width())); 264 bounds.set_height(tiles_container_->GetHeightForWidth(bounds.width()));
262 tiles_container_->SetBoundsRect(bounds); 265 tiles_container_->SetBoundsRect(bounds);
263 } 266 }
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 302
300 int selection_index = selected_index + dir; 303 int selection_index = selected_index + dir;
301 if (tiles_container_->IsValidSelectionIndex(selection_index)) { 304 if (tiles_container_->IsValidSelectionIndex(selection_index)) {
302 tiles_container_->SetSelectedIndex(selection_index); 305 tiles_container_->SetSelectedIndex(selection_index);
303 return true; 306 return true;
304 } 307 }
305 308
306 return false; 309 return false;
307 } 310 }
308 311
312 bool StartPageView::OnMousePressed(const ui::MouseEvent& event) {
313 ContentsView* contents_view = app_list_main_view_->contents_view();
314 if (!contents_view->GetCustomPageCollapsedBounds().Contains(event.location()))
315 return false;
316
317 OpenCustomLauncherPage();
318 return true;
319 }
320
321 bool StartPageView::OnMouseWheel(const ui::MouseWheelEvent& event) {
322 if (event.y_offset() > 0) {
calamity 2015/02/12 04:32:24 I don't know if we want mousewheel/gesture everywh
tapted 2015/02/13 04:18:41 Done.
323 OpenCustomLauncherPage();
324 return true;
325 }
326 return false;
327 }
328
329 void StartPageView::OnGestureEvent(ui::GestureEvent* event) {
330 if (event->details().scroll_y() > 0)
331 OpenCustomLauncherPage();
332 }
calamity 2015/02/12 04:32:24 I think these all need to be gated by app_list_ma
tapted 2015/02/13 04:18:41 Done.
333
309 gfx::Rect StartPageView::GetSearchBoxBounds() const { 334 gfx::Rect StartPageView::GetSearchBoxBounds() const {
310 return search_box_spacer_view_->bounds(); 335 return search_box_spacer_view_->bounds();
311 } 336 }
312 337
313 void StartPageView::UpdateCustomPageClickzoneVisibility() {
314 // This can get called before InitWidgets(), so we cannot guarantee that
315 // custom_page_clickzone_ will not be null.
316 views::Widget* custom_page_clickzone =
317 app_list_main_view_->GetCustomPageClickzone();
318 if (!custom_page_clickzone)
319 return;
320
321 if (app_list_main_view_->contents_view()->ShouldShowCustomPageClickzone()) {
322 custom_page_clickzone->ShowInactive();
323 return;
324 }
325
326 custom_page_clickzone->Hide();
327 }
328
329 TileItemView* StartPageView::GetTileItemView(size_t index) { 338 TileItemView* StartPageView::GetTileItemView(size_t index) {
330 return tiles_container_->GetTileItemView(index); 339 return tiles_container_->GetTileItemView(index);
331 } 340 }
332 341
333 } // namespace app_list 342 } // namespace app_list
OLDNEW
« ui/app_list/views/app_list_view.cc ('K') | « ui/app_list/views/start_page_view.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698