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

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

Issue 645853013: Remove some platform specific stuff from views. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/app_list/views/contents_view.h ('k') | ui/app_list/views/folder_background_view.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
deleted file mode 100644
index 80df04b7628ebd54bb14ff86c8915ce658bfe3e7..0000000000000000000000000000000000000000
--- a/ui/app_list/views/contents_view.cc
+++ /dev/null
@@ -1,318 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ui/app_list/views/contents_view.h"
-
-#include <algorithm>
-#include <vector>
-
-#include "base/logging.h"
-#include "ui/app_list/app_list_constants.h"
-#include "ui/app_list/app_list_switches.h"
-#include "ui/app_list/app_list_view_delegate.h"
-#include "ui/app_list/views/app_list_folder_view.h"
-#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/contents_switcher_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/gfx/animation/tween.h"
-#include "ui/resources/grit/ui_resources.h"
-#include "ui/views/view_model.h"
-#include "ui/views/view_model_utils.h"
-
-namespace app_list {
-
-ContentsView::ContentsView(AppListMainView* app_list_main_view)
- : search_results_view_(NULL),
- start_page_view_(NULL),
- app_list_main_view_(app_list_main_view),
- contents_switcher_view_(NULL),
- view_model_(new views::ViewModel),
- page_before_search_(0) {
- pagination_model_.SetTransitionDurations(kPageTransitionDurationInMs,
- kOverscrollPageTransitionDurationMs);
- pagination_model_.AddObserver(this);
-}
-
-ContentsView::~ContentsView() {
- pagination_model_.RemoveObserver(this);
- if (contents_switcher_view_)
- pagination_model_.RemoveObserver(contents_switcher_view_);
-}
-
-void ContentsView::InitNamedPages(AppListModel* model,
- AppListViewDelegate* view_delegate) {
- DCHECK(model);
-
- if (app_list::switches::IsExperimentalAppListEnabled()) {
- std::vector<views::View*> custom_page_views =
- view_delegate->CreateCustomPageWebViews(GetLocalBounds().size());
- for (std::vector<views::View*>::const_iterator it =
- custom_page_views.begin();
- it != custom_page_views.end();
- ++it) {
- AddLauncherPage(*it, IDR_APP_LIST_NOTIFICATIONS_ICON);
- }
-
- start_page_view_ = new StartPageView(app_list_main_view_, view_delegate);
- AddLauncherPage(
- start_page_view_, IDR_APP_LIST_SEARCH_ICON, NAMED_PAGE_START);
- } else {
- search_results_view_ =
- new SearchResultListView(app_list_main_view_, view_delegate);
- AddLauncherPage(search_results_view_, 0, NAMED_PAGE_SEARCH_RESULTS);
- search_results_view_->SetResults(model->results());
- }
-
- apps_container_view_ = new AppsContainerView(app_list_main_view_, model);
-
- AddLauncherPage(
- apps_container_view_, IDR_APP_LIST_APPS_ICON, NAMED_PAGE_APPS);
-
- int initial_page_index = app_list::switches::IsExperimentalAppListEnabled()
- ? GetPageIndexForNamedPage(NAMED_PAGE_START)
- : GetPageIndexForNamedPage(NAMED_PAGE_APPS);
- DCHECK_GE(initial_page_index, 0);
-
- page_before_search_ = initial_page_index;
- pagination_model_.SelectPage(initial_page_index, false);
-
- // Needed to update the main search box visibility.
- ActivePageChanged(false);
-}
-
-void ContentsView::CancelDrag() {
- if (apps_container_view_->apps_grid_view()->has_dragged_view())
- apps_container_view_->apps_grid_view()->EndDrag(true);
- if (apps_container_view_->app_list_folder_view()
- ->items_grid_view()
- ->has_dragged_view()) {
- apps_container_view_->app_list_folder_view()->items_grid_view()->EndDrag(
- true);
- }
-}
-
-void ContentsView::SetDragAndDropHostOfCurrentAppList(
- ApplicationDragAndDropHost* drag_and_drop_host) {
- apps_container_view_->SetDragAndDropHostOfCurrentAppList(drag_and_drop_host);
-}
-
-void ContentsView::SetContentsSwitcherView(
- ContentsSwitcherView* contents_switcher_view) {
- DCHECK(!contents_switcher_view_);
- contents_switcher_view_ = contents_switcher_view;
- if (contents_switcher_view_)
- pagination_model_.AddObserver(contents_switcher_view_);
-}
-
-void ContentsView::SetActivePage(int page_index) {
- if (GetActivePageIndex() == page_index)
- return;
-
- SetActivePageInternal(page_index, false);
-}
-
-int ContentsView::GetActivePageIndex() const {
- // The active page is changed at the beginning of an animation, not the end.
- return pagination_model_.SelectedTargetPage();
-}
-
-bool ContentsView::IsNamedPageActive(NamedPage named_page) const {
- int active_page_index = GetActivePageIndex();
- return active_page_index >= 0 &&
- GetPageIndexForNamedPage(named_page) == active_page_index;
-}
-
-int ContentsView::GetPageIndexForNamedPage(NamedPage named_page) const {
- // Find the index of the view corresponding to the given named_page.
- std::map<NamedPage, int>::const_iterator it =
- named_page_to_view_.find(named_page);
- if (it == named_page_to_view_.end())
- return -1;
-
- return it->second;
-}
-
-int ContentsView::NumLauncherPages() const {
- return pagination_model_.total_pages();
-}
-
-void ContentsView::SetActivePageInternal(int page_index,
- bool show_search_results) {
- if (!show_search_results)
- page_before_search_ = page_index;
- // Start animating to the new page.
- pagination_model_.SelectPage(page_index, true);
- ActivePageChanged(show_search_results);
-}
-
-void ContentsView::ActivePageChanged(bool show_search_results) {
- // TODO(xiyuan): Highlight default match instead of the first.
- if (IsNamedPageActive(NAMED_PAGE_SEARCH_RESULTS) &&
- search_results_view_->visible()) {
- search_results_view_->SetSelectedIndex(0);
- }
- if (search_results_view_)
- search_results_view_->UpdateAutoLaunchState();
-
- if (IsNamedPageActive(NAMED_PAGE_START)) {
- if (show_search_results)
- start_page_view_->ShowSearchResults();
- else
- start_page_view_->Reset();
- }
-
- // Notify parent AppListMainView of the page change.
- app_list_main_view_->UpdateSearchBoxVisibility();
-}
-
-void ContentsView::ShowSearchResults(bool show) {
- int search_page = GetPageIndexForNamedPage(
- app_list::switches::IsExperimentalAppListEnabled()
- ? NAMED_PAGE_START
- : NAMED_PAGE_SEARCH_RESULTS);
- DCHECK_GE(search_page, 0);
-
- SetActivePageInternal(show ? search_page : page_before_search_, show);
-}
-
-bool ContentsView::IsShowingSearchResults() const {
- return app_list::switches::IsExperimentalAppListEnabled()
- ? IsNamedPageActive(NAMED_PAGE_START) &&
- start_page_view_->IsShowingSearchResults()
- : IsNamedPageActive(NAMED_PAGE_SEARCH_RESULTS);
-}
-
-gfx::Rect ContentsView::GetOffscreenPageBounds(int page_index) const {
- gfx::Rect bounds(GetContentsBounds());
- // The start page and search page origins are above; all other pages' origins
- // are below.
- int page_height = bounds.height();
- bool origin_above =
- GetPageIndexForNamedPage(NAMED_PAGE_START) == page_index ||
- GetPageIndexForNamedPage(NAMED_PAGE_SEARCH_RESULTS) == page_index;
- bounds.set_y(origin_above ? -page_height : page_height);
- return bounds;
-}
-
-void ContentsView::UpdatePageBounds() {
- // The bounds calculations will potentially be mid-transition (depending on
- // the state of the PaginationModel).
- int current_page = std::max(0, pagination_model_.selected_page());
- int target_page = current_page;
- double progress = 1;
- if (pagination_model_.has_transition()) {
- const PaginationModel::Transition& transition =
- pagination_model_.transition();
- if (pagination_model_.is_valid_page(transition.target_page)) {
- target_page = transition.target_page;
- progress = transition.progress;
- }
- }
-
- // Move |current_page| from 0 to its origin. Move |target_page| from its
- // origin to 0.
- gfx::Rect on_screen(GetContentsBounds());
- gfx::Rect current_page_origin(GetOffscreenPageBounds(current_page));
- gfx::Rect target_page_origin(GetOffscreenPageBounds(target_page));
- gfx::Rect current_page_rect(
- gfx::Tween::RectValueBetween(progress, on_screen, current_page_origin));
- gfx::Rect target_page_rect(
- gfx::Tween::RectValueBetween(progress, target_page_origin, on_screen));
-
- view_model_->view_at(current_page)->SetBoundsRect(current_page_rect);
- view_model_->view_at(target_page)->SetBoundsRect(target_page_rect);
-}
-
-PaginationModel* ContentsView::GetAppsPaginationModel() {
- return apps_container_view_->apps_grid_view()->pagination_model();
-}
-
-void ContentsView::ShowFolderContent(AppListFolderItem* item) {
- apps_container_view_->ShowActiveFolder(item);
-}
-
-void ContentsView::Prerender() {
- apps_container_view_->apps_grid_view()->Prerender();
-}
-
-views::View* ContentsView::GetPageView(int index) {
- return view_model_->view_at(index);
-}
-
-void ContentsView::AddBlankPageForTesting() {
- AddLauncherPage(new views::View, 0);
-}
-
-int ContentsView::AddLauncherPage(views::View* view, int resource_id) {
- int page_index = view_model_->view_size();
- AddChildView(view);
- view_model_->Add(view, page_index);
- if (contents_switcher_view_ && resource_id)
- contents_switcher_view_->AddSwitcherButton(resource_id, page_index);
- pagination_model_.SetTotalPages(view_model_->view_size());
- return page_index;
-}
-
-int ContentsView::AddLauncherPage(views::View* view,
- int resource_id,
- NamedPage named_page) {
- int page_index = AddLauncherPage(view, resource_id);
- named_page_to_view_.insert(std::pair<NamedPage, int>(named_page, page_index));
- return page_index;
-}
-
-gfx::Size ContentsView::GetPreferredSize() const {
- const gfx::Size container_size =
- apps_container_view_->apps_grid_view()->GetPreferredSize();
- const gfx::Size results_size = search_results_view_
- ? search_results_view_->GetPreferredSize()
- : gfx::Size();
-
- int width = std::max(container_size.width(), results_size.width());
- int height = std::max(container_size.height(), results_size.height());
- return gfx::Size(width, height);
-}
-
-void ContentsView::Layout() {
- // Immediately finish all current animations.
- pagination_model_.FinishAnimation();
-
- // Move the current view onto the screen, and all other views off screen to
- // the left. (Since we are not animating, we don't need to be careful about
- // which side we place the off-screen views onto.)
- gfx::Rect rect(GetContentsBounds());
- if (rect.IsEmpty())
- return;
-
- gfx::Rect offscreen_target(rect);
- offscreen_target.set_x(-rect.width());
-
- for (int i = 0; i < view_model_->view_size(); ++i) {
- view_model_->view_at(i)->SetBoundsRect(
- i == pagination_model_.SelectedTargetPage() ? rect : offscreen_target);
- }
-}
-
-bool ContentsView::OnKeyPressed(const ui::KeyEvent& event) {
- return view_model_->view_at(GetActivePageIndex())->OnKeyPressed(event);
-}
-
-void ContentsView::TotalPagesChanged() {
-}
-
-void ContentsView::SelectedPageChanged(int old_selected, int new_selected) {
-}
-
-void ContentsView::TransitionStarted() {
-}
-
-void ContentsView::TransitionChanged() {
- UpdatePageBounds();
-}
-
-} // namespace app_list
« no previous file with comments | « ui/app_list/views/contents_view.h ('k') | ui/app_list/views/folder_background_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698