OLD | NEW |
---|---|
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 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
217 views::View* web_view = view_delegate_->CreateStartPageWebView( | 217 views::View* web_view = view_delegate_->CreateStartPageWebView( |
218 gfx::Size(kWebViewWidth, kWebViewHeight)); | 218 gfx::Size(kWebViewWidth, kWebViewHeight)); |
219 if (web_view) { | 219 if (web_view) { |
220 web_view->SetFocusable(false); | 220 web_view->SetFocusable(false); |
221 instant_container_->AddChildView(web_view); | 221 instant_container_->AddChildView(web_view); |
222 } | 222 } |
223 | 223 |
224 instant_container_->AddChildView(search_box_spacer_view_); | 224 instant_container_->AddChildView(search_box_spacer_view_); |
225 } | 225 } |
226 | 226 |
227 void StartPageView::MaybeOpenCustomLauncherPage() { | |
228 // Switch to the custom page. | |
229 ContentsView* contents_view = app_list_main_view_->contents_view(); | |
230 if (!contents_view->ShouldShowCustomPageClickzone()) | |
calamity
2015/02/17 00:54:09
This ought to get a rename. I'll do it in my CL th
tapted
2015/02/17 03:06:01
Acknowledged.
| |
231 return; | |
232 | |
233 int custom_page_index = contents_view->GetPageIndexForState( | |
234 AppListModel::STATE_CUSTOM_LAUNCHER_PAGE); | |
235 contents_view->SetActivePage(custom_page_index); | |
236 } | |
237 | |
227 void StartPageView::Reset() { | 238 void StartPageView::Reset() { |
228 tiles_container_->Update(); | 239 tiles_container_->Update(); |
229 } | 240 } |
230 | 241 |
231 void StartPageView::UpdateForTesting() { | 242 void StartPageView::UpdateForTesting() { |
232 tiles_container_->Update(); | 243 tiles_container_->Update(); |
233 } | 244 } |
234 | 245 |
235 const std::vector<SearchResultTileItemView*>& StartPageView::tile_views() | 246 const std::vector<SearchResultTileItemView*>& StartPageView::tile_views() |
236 const { | 247 const { |
237 return tiles_container_->tile_views(); | 248 return tiles_container_->tile_views(); |
238 } | 249 } |
239 | 250 |
240 TileItemView* StartPageView::all_apps_button() const { | 251 TileItemView* StartPageView::all_apps_button() const { |
241 return tiles_container_->all_apps_button(); | 252 return tiles_container_->all_apps_button(); |
242 } | 253 } |
243 | 254 |
244 void StartPageView::OnShow() { | 255 void StartPageView::OnShow() { |
245 UpdateCustomPageClickzoneVisibility(); | |
246 tiles_container_->Update(); | 256 tiles_container_->Update(); |
247 tiles_container_->ClearSelectedIndex(); | 257 tiles_container_->ClearSelectedIndex(); |
248 } | 258 } |
249 | 259 |
250 void StartPageView::OnHide() { | |
251 UpdateCustomPageClickzoneVisibility(); | |
252 } | |
253 | |
254 void StartPageView::Layout() { | 260 void StartPageView::Layout() { |
255 gfx::Rect bounds(GetContentsBounds()); | 261 gfx::Rect bounds(GetContentsBounds()); |
256 bounds.set_height(instant_container_->GetHeightForWidth(bounds.width())); | 262 bounds.set_height(instant_container_->GetHeightForWidth(bounds.width())); |
257 instant_container_->SetBoundsRect(bounds); | 263 instant_container_->SetBoundsRect(bounds); |
258 | 264 |
259 // Tiles begin where the instant container ends. | 265 // Tiles begin where the instant container ends. |
260 bounds.set_y(bounds.bottom()); | 266 bounds.set_y(bounds.bottom()); |
261 bounds.set_height(tiles_container_->GetHeightForWidth(bounds.width())); | 267 bounds.set_height(tiles_container_->GetHeightForWidth(bounds.width())); |
262 tiles_container_->SetBoundsRect(bounds); | 268 tiles_container_->SetBoundsRect(bounds); |
263 } | 269 } |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
299 | 305 |
300 int selection_index = selected_index + dir; | 306 int selection_index = selected_index + dir; |
301 if (tiles_container_->IsValidSelectionIndex(selection_index)) { | 307 if (tiles_container_->IsValidSelectionIndex(selection_index)) { |
302 tiles_container_->SetSelectedIndex(selection_index); | 308 tiles_container_->SetSelectedIndex(selection_index); |
303 return true; | 309 return true; |
304 } | 310 } |
305 | 311 |
306 return false; | 312 return false; |
307 } | 313 } |
308 | 314 |
315 bool StartPageView::OnMousePressed(const ui::MouseEvent& event) { | |
316 ContentsView* contents_view = app_list_main_view_->contents_view(); | |
317 if (!contents_view->GetCustomPageCollapsedBounds().Contains(event.location())) | |
318 return false; | |
319 | |
320 MaybeOpenCustomLauncherPage(); | |
321 return true; | |
322 } | |
323 | |
324 bool StartPageView::OnMouseWheel(const ui::MouseWheelEvent& event) { | |
325 if (event.y_offset() > 0) { | |
326 MaybeOpenCustomLauncherPage(); | |
327 return true; | |
328 } | |
calamity
2015/02/17 00:54:09
nit: newline after early return
tapted
2015/02/17 03:06:01
Done.
| |
329 return false; | |
330 } | |
331 | |
332 void StartPageView::OnGestureEvent(ui::GestureEvent* event) { | |
333 if (event->type() == ui::ET_GESTURE_SCROLL_BEGIN && | |
334 event->details().scroll_y_hint() < 0) | |
335 MaybeOpenCustomLauncherPage(); | |
336 | |
337 ContentsView* contents_view = app_list_main_view_->contents_view(); | |
338 if (event->type() == ui::ET_GESTURE_TAP && | |
339 contents_view->GetCustomPageCollapsedBounds().Contains(event->location())) | |
340 MaybeOpenCustomLauncherPage(); | |
341 } | |
342 | |
343 void StartPageView::OnScrollEvent(ui::ScrollEvent* event) { | |
344 if (event->type() == ui::ET_SCROLL && event->y_offset() > 0) | |
345 MaybeOpenCustomLauncherPage(); | |
346 } | |
347 | |
309 gfx::Rect StartPageView::GetSearchBoxBounds() const { | 348 gfx::Rect StartPageView::GetSearchBoxBounds() const { |
310 return search_box_spacer_view_->bounds(); | 349 return search_box_spacer_view_->bounds(); |
311 } | 350 } |
312 | 351 |
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) { | 352 TileItemView* StartPageView::GetTileItemView(size_t index) { |
330 return tiles_container_->GetTileItemView(index); | 353 return tiles_container_->GetTileItemView(index); |
331 } | 354 } |
332 | 355 |
333 } // namespace app_list | 356 } // namespace app_list |
OLD | NEW |