| Index: ui/app_list/views/contents_view.h
|
| diff --git a/ui/app_list/views/contents_view.h b/ui/app_list/views/contents_view.h
|
| index ade7fdbf388fe4283e79e5a78e7a565b49903b8e..31ded63629aac5511ee5a63f77c8e58d77a35b87 100644
|
| --- a/ui/app_list/views/contents_view.h
|
| +++ b/ui/app_list/views/contents_view.h
|
| @@ -6,9 +6,11 @@
|
| #define UI_APP_LIST_VIEWS_CONTENTS_VIEW_H_
|
|
|
| #include <map>
|
| +#include <utility>
|
|
|
| #include "base/basictypes.h"
|
| #include "base/compiler_specific.h"
|
| +#include "base/memory/linked_ptr.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "ui/app_list/app_list_export.h"
|
| #include "ui/app_list/app_list_model.h"
|
| @@ -30,6 +32,7 @@ class AppListMainView;
|
| class AppListModel;
|
| class AppListViewDelegate;
|
| class AppsContainerView;
|
| +class ContentsAnimator;
|
| class ContentsSwitcherView;
|
| class PaginationModel;
|
| class SearchResultListView;
|
| @@ -105,6 +108,13 @@ class APP_LIST_EXPORT ContentsView : public views::View,
|
| // specify their own custom layout.
|
| gfx::Rect GetDefaultContentsBounds() const;
|
|
|
| + // Exposes GetAnimatorForTransition for tests.
|
| + ContentsAnimator* GetAnimatorForTransitionForTests(int from_page,
|
| + int to_page,
|
| + bool* reverse) const {
|
| + return GetAnimatorForTransition(from_page, to_page, reverse);
|
| + }
|
| +
|
| // Overridden from views::View:
|
| gfx::Size GetPreferredSize() const override;
|
| void Layout() override;
|
| @@ -127,10 +137,6 @@ class APP_LIST_EXPORT ContentsView : public views::View,
|
| // Returns the size of the default content area.
|
| gfx::Size GetDefaultContentsSize() const;
|
|
|
| - // Gets the origin (the off-screen resting place) for a given launcher page
|
| - // with index |page_index|.
|
| - gfx::Rect GetOffscreenPageBounds(int page_index) const;
|
| -
|
| // Calculates and sets the bounds for the subviews. If there is currently an
|
| // animation, this positions the views as appropriate for the current frame.
|
| void UpdatePageBounds();
|
| @@ -154,6 +160,19 @@ class APP_LIST_EXPORT ContentsView : public views::View,
|
| // launcher-page pagination.
|
| PaginationModel* GetAppsPaginationModel();
|
|
|
| + // Adds a ContentsAnimator for a transition from |from_page| to |to_page|.
|
| + void AddAnimator(int from_page,
|
| + int to_page,
|
| + scoped_ptr<ContentsAnimator> animator);
|
| +
|
| + // Gets a ContentsAnimator for a transition from |from_page| to |to_page|. If
|
| + // the animator should be run in reverse (because it is a |to_page| to
|
| + // |from_page| animator), |reverse| is set to true; otherwise it is set to
|
| + // false.
|
| + ContentsAnimator* GetAnimatorForTransition(int from_page,
|
| + int to_page,
|
| + bool* reverse) const;
|
| +
|
| // Special sub views of the ContentsView. All owned by the views hierarchy.
|
| AppsContainerView* apps_container_view_;
|
| SearchResultListView* search_results_view_;
|
| @@ -177,6 +196,14 @@ class APP_LIST_EXPORT ContentsView : public views::View,
|
| // Manages the pagination for the launcher pages.
|
| PaginationModel pagination_model_;
|
|
|
| + // Maps from {A, B} pair to ContentsAnimator, where A and B are page
|
| + // |view_model_| indices for an animation from A to B.
|
| + std::map<std::pair<int, int>, linked_ptr<ContentsAnimator>>
|
| + contents_animators_;
|
| +
|
| + // The animator for transitions not found in |contents_animators_|.
|
| + scoped_ptr<ContentsAnimator> default_animator_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(ContentsView);
|
| };
|
|
|
|
|