| // Copyright 2015 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. |
| |
| #ifndef UI_APP_LIST_VIEWS_APP_LIST_PAGE_H_ |
| #define UI_APP_LIST_VIEWS_APP_LIST_PAGE_H_ |
| |
| #include "base/macros.h" |
| #include "ui/app_list/app_list_export.h" |
| #include "ui/app_list/app_list_model.h" |
| #include "ui/views/view.h" |
| |
| namespace app_list { |
| |
| class ContentsView; |
| |
| class APP_LIST_EXPORT AppListPage : public views::View { |
| public: |
| // Triggered when the page is about to be shown. |
| virtual void OnWillBeShown(); |
| |
| // Triggered after the page has been shown. |
| virtual void OnShown(); |
| |
| // Triggered when the page is about to be hidden. |
| virtual void OnWillBeHidden(); |
| |
| // Triggered after the page has been hidden. |
| virtual void OnHidden(); |
| |
| // Triggered after the animation has updated. |
| virtual void OnAnimationUpdated(double progress, |
| AppListModel::State from_state, |
| AppListModel::State to_state); |
| |
| // Returns where this page should move to when the given state is active. |
| virtual gfx::Rect GetPageBoundsForState(AppListModel::State state) const = 0; |
| |
| // Returns where the search box should be when this page is shown. Is at the |
| // top of the app list by default, in the contents view's coordinate space. |
| virtual gfx::Rect GetSearchBoxBounds() const; |
| |
| // Returns the z height of the search box for this page. |
| virtual int GetSearchBoxZHeight() const; |
| |
| void set_contents_view(ContentsView* contents_view) { |
| contents_view_ = contents_view; |
| } |
| |
| protected: |
| AppListPage(); |
| ~AppListPage() override; |
| |
| // Returns the area above the contents view, given the desired size of this |
| // page, in the contents view's coordinate space. |
| gfx::Rect GetAboveContentsOffscreenBounds(const gfx::Size& size) const; |
| |
| // Returns the area below the contents view, given the desired size of this |
| // page, in the contents view's coordinate space. |
| gfx::Rect GetBelowContentsOffscreenBounds(const gfx::Size& size) const; |
| |
| // Returns the entire bounds of the contents view, in the contents view's |
| // coordinate space. |
| gfx::Rect GetFullContentsBounds() const; |
| |
| // Returns the default bounds of pages inside the contents view, in the |
| // contents view's coordinate space. This is the area of the contents view |
| // below the search box. |
| gfx::Rect GetDefaultContentsBounds() const; |
| |
| private: |
| ContentsView* contents_view_; |
| |
| DISALLOW_COPY_AND_ASSIGN(AppListPage); |
| }; |
| |
| } // namespace app_list |
| |
| #endif // UI_APP_LIST_VIEWS_APP_LIST_PAGE_H_ |