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

Unified Diff: ui/app_list/views/contents_view.cc

Issue 186483004: Add a skeleton Start Page to the experimental app list. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ares_change_experimental_animation
Patch Set: address commnets Created 6 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 side-by-side diff with in-line comments
Download patch
Index: ui/app_list/views/contents_view.cc
diff --git a/ui/app_list/views/contents_view.cc b/ui/app_list/views/contents_view.cc
index 60968c39aa9f287f250cd14271494df446cadbd9..a2f8cb358846d87373f1ac8fc5d9eb356a8f82de 100644
--- a/ui/app_list/views/contents_view.cc
+++ b/ui/app_list/views/contents_view.cc
@@ -15,7 +15,9 @@
#include "ui/app_list/views/app_list_main_view.h"
#include "ui/app_list/views/apps_container_view.h"
#include "ui/app_list/views/apps_grid_view.h"
+#include "ui/app_list/views/search_box_view.h"
#include "ui/app_list/views/search_result_list_view.h"
+#include "ui/app_list/views/start_page_view.h"
#include "ui/events/event.h"
#include "ui/views/animation/bounds_animator.h"
#include "ui/views/view_model.h"
@@ -28,6 +30,7 @@ namespace {
// Indexes of interesting views in ViewModel of ContentsView.
const int kIndexAppsContainer = 0;
const int kIndexSearchResults = 1;
+const int kIndexStartPage = 2;
const int kMinMouseWheelToSwitchPage = 20;
const int kMinScrollToSwitchPage = 20;
@@ -44,6 +47,10 @@ SearchResultListView* GetSearchResultListView(views::ViewModel* model) {
model->view_at(kIndexSearchResults));
}
+StartPageView* GetStartPageView(views::ViewModel* model) {
+ return static_cast<StartPageView*>(model->view_at(kIndexStartPage));
+}
+
} // namespace
ContentsView::ContentsView(AppListMainView* app_list_main_view,
@@ -53,7 +60,8 @@ ContentsView::ContentsView(AppListMainView* app_list_main_view,
: show_state_(SHOW_APPS),
pagination_model_(pagination_model),
view_model_(new views::ViewModel),
- bounds_animator_(new views::BoundsAnimator(this)) {
+ bounds_animator_(new views::BoundsAnimator(this)),
+ app_list_main_view_(app_list_main_view) {
DCHECK(model);
pagination_model_->SetTransitionDurations(
kPageTransitionDurationInMs,
@@ -69,6 +77,15 @@ ContentsView::ContentsView(AppListMainView* app_list_main_view,
AddChildView(search_results_view);
view_model_->Add(search_results_view, kIndexSearchResults);
+ if (app_list::switches::IsExperimentalAppListEnabled()) {
+ content::WebContents* start_page_contents =
+ view_delegate->GetStartPageContents();
+ StartPageView* start_page_view =
+ new StartPageView(app_list_main_view, start_page_contents);
+ AddChildView(start_page_view);
+ view_model_->Add(start_page_view, kIndexStartPage);
+ }
+
GetSearchResultListView(view_model_.get())->SetResults(model->results());
}
@@ -107,6 +124,13 @@ void ContentsView::ShowStateChanged() {
results_view->SetSelectedIndex(0);
results_view->UpdateAutoLaunchState();
+ // Don't show the search box for the start page.
+ app_list_main_view_->search_box_view()->SetVisible(show_state_ !=
tapted 2014/05/08 08:19:50 call app_list_main_view_->OnContentsViewShowStateC
calamity 2014/05/08 08:31:31 Done.
+ SHOW_START_PAGE);
+
+ if (show_state_ == SHOW_START_PAGE)
+ GetStartPageView(view_model_.get())->Reset();
+
AnimateToIdealBounds();
}
@@ -124,6 +148,9 @@ void ContentsView::CalculateIdealBounds() {
case SHOW_SEARCH_RESULTS:
incoming_view_index = kIndexSearchResults;
break;
+ case SHOW_START_PAGE:
+ incoming_view_index = kIndexStartPage;
+ break;
default:
NOTREACHED();
}
@@ -206,6 +233,8 @@ bool ContentsView::OnKeyPressed(const ui::KeyEvent& event) {
return GetAppsContainerView(view_model_.get())->OnKeyPressed(event);
case SHOW_SEARCH_RESULTS:
return GetSearchResultListView(view_model_.get())->OnKeyPressed(event);
+ case SHOW_START_PAGE:
+ return GetStartPageView(view_model_.get())->OnKeyPressed(event);
default:
NOTREACHED() << "Unknown show state " << show_state_;
}

Powered by Google App Engine
This is Rietveld 408576698