| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #ifndef UI_APP_LIST_VIEWS_APP_LIST_VIEW_H_ | 5 #ifndef UI_APP_LIST_VIEWS_APP_LIST_VIEW_H_ |
| 6 #define UI_APP_LIST_VIEWS_APP_LIST_VIEW_H_ | 6 #define UI_APP_LIST_VIEWS_APP_LIST_VIEW_H_ |
| 7 | 7 |
| 8 #include <memory> | 8 #include <memory> |
| 9 | 9 |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 class AppListViewTestApi; | 35 class AppListViewTestApi; |
| 36 } | 36 } |
| 37 | 37 |
| 38 // AppListView is the top-level view and controller of app list UI. It creates | 38 // AppListView is the top-level view and controller of app list UI. It creates |
| 39 // and hosts a AppsGridView and passes AppListModel to it for display. | 39 // and hosts a AppsGridView and passes AppListModel to it for display. |
| 40 class APP_LIST_EXPORT AppListView : public views::BubbleDialogDelegateView, | 40 class APP_LIST_EXPORT AppListView : public views::BubbleDialogDelegateView, |
| 41 public SpeechUIModelObserver, | 41 public SpeechUIModelObserver, |
| 42 public display::DisplayObserver { | 42 public display::DisplayObserver { |
| 43 public: | 43 public: |
| 44 enum AppListState { | 44 enum AppListState { |
| 45 // If set, closes |app_list_main_view_| and dismisses the delegate. | 45 // Closes |app_list_main_view_| and dismisses the delegate. |
| 46 CLOSED = 0, | 46 CLOSED = 0, |
| 47 | 47 // The initial state for the app list when neither maximize or side shelf |
| 48 // The initial state for the app list. If set, the widget will peek over | 48 // modes are active. If set, the widget will peek over the shelf by |
| 49 // the shelf by kPeekingAppListHeight DIPs. | 49 // kPeekingAppListHeight DIPs. |
| 50 PEEKING, | 50 PEEKING, |
| 51 | 51 // Entered when text is entered into the search box from peeking mode. |
| 52 // If set, the widget will be repositioned to take up the whole screen. | 52 HALF, |
| 53 FULLSCREEN, | 53 // Default app list state in maximize and side shelf modes. Entered from an |
| 54 // upward swipe from |PEEKING| or from clicking the chevron. |
| 55 FULLSCREEN_ALL_APPS, |
| 56 // Entered from an upward swipe from |HALF| or by entering text in the |
| 57 // search box from |FULLSCREEN_ALL_APPS|. |
| 58 FULLSCREEN_SEARCH, |
| 54 }; | 59 }; |
| 55 | 60 |
| 56 // Does not take ownership of |delegate|. | 61 // Does not take ownership of |delegate|. |
| 57 explicit AppListView(AppListViewDelegate* delegate); | 62 explicit AppListView(AppListViewDelegate* delegate); |
| 58 ~AppListView() override; | 63 ~AppListView() override; |
| 59 | 64 |
| 60 // Initializes the widget as a bubble or fullscreen view depending on if the | 65 // Initializes the widget as a bubble or fullscreen view depending on if the |
| 61 // fullscreen app list feature is set. |parent| and |initial_apps_page| are | 66 // fullscreen app list feature is set. |parent| and |initial_apps_page| are |
| 62 // used for both the bubble and fullscreen initialization. | 67 // used for both the bubble and fullscreen initialization. |is_maximize_mode| |
| 63 void Initialize(gfx::NativeView parent, int initial_apps_page); | 68 // is whether the display is in maximize mode and |is_side_shelf| is whether |
| 69 // the shelf is oriented on the side, and both are used for fullscreen |
| 70 // app list initialization. |
| 71 void Initialize(gfx::NativeView parent, |
| 72 int initial_apps_page, |
| 73 bool is_maximize_mode, |
| 74 bool is_side_shelf); |
| 64 | 75 |
| 65 void SetBubbleArrow(views::BubbleBorder::Arrow arrow); | 76 void SetBubbleArrow(views::BubbleBorder::Arrow arrow); |
| 66 | 77 |
| 67 void MaybeSetAnchorPoint(const gfx::Point& anchor_point); | 78 void MaybeSetAnchorPoint(const gfx::Point& anchor_point); |
| 68 | 79 |
| 69 // If |drag_and_drop_host| is not NULL it will be called upon drag and drop | 80 // If |drag_and_drop_host| is not NULL it will be called upon drag and drop |
| 70 // operations outside the application list. This has to be called after | 81 // operations outside the application list. This has to be called after |
| 71 // Initialize was called since the app list object needs to exist so that | 82 // Initialize was called since the app list object needs to exist so that |
| 72 // it can set the host. | 83 // it can set the host. |
| 73 void SetDragAndDropHostOfCurrentAppList( | 84 void SetDragAndDropHostOfCurrentAppList( |
| (...skipping 28 matching lines...) Expand all Loading... |
| 102 PaginationModel* GetAppsPaginationModel(); | 113 PaginationModel* GetAppsPaginationModel(); |
| 103 | 114 |
| 104 // Overridden from views::View: | 115 // Overridden from views::View: |
| 105 bool AcceleratorPressed(const ui::Accelerator& accelerator) override; | 116 bool AcceleratorPressed(const ui::Accelerator& accelerator) override; |
| 106 void Layout() override; | 117 void Layout() override; |
| 107 void SchedulePaintInRect(const gfx::Rect& rect) override; | 118 void SchedulePaintInRect(const gfx::Rect& rect) override; |
| 108 | 119 |
| 109 // Changes the app list state. | 120 // Changes the app list state. |
| 110 void SetState(AppListState new_state); | 121 void SetState(AppListState new_state); |
| 111 | 122 |
| 112 bool is_fullscreen() const { return app_list_state_ == FULLSCREEN; } | 123 // Changes the app list state depending on the current |app_list_state_| and |
| 124 // whether the search box is empty. |
| 125 void SetStateFromSearchBoxView(bool search_box_is_empty); |
| 126 |
| 127 bool is_fullscreen() const { |
| 128 return app_list_state_ == FULLSCREEN_ALL_APPS || |
| 129 app_list_state_ == FULLSCREEN_SEARCH; |
| 130 } |
| 131 |
| 113 AppListState app_list_state() const { return app_list_state_; } | 132 AppListState app_list_state() const { return app_list_state_; } |
| 114 | 133 |
| 134 // Called when maximize mode starts and ends. |
| 135 void OnMaximizeModeChanged(bool started); |
| 136 |
| 115 private: | 137 private: |
| 116 friend class test::AppListViewTestApi; | 138 friend class test::AppListViewTestApi; |
| 117 | 139 |
| 118 void InitContents(gfx::NativeView parent, int initial_apps_page); | 140 void InitContents(gfx::NativeView parent, int initial_apps_page); |
| 119 | 141 |
| 120 void InitChildWidgets(); | 142 void InitChildWidgets(); |
| 121 | 143 |
| 122 // Initializes the widget for fullscreen mode. | 144 // Initializes the widget for fullscreen mode. |
| 123 void InitializeFullscreen(gfx::NativeView parent, int initial_apps_page); | 145 void InitializeFullscreen(gfx::NativeView parent, int initial_apps_page); |
| 124 | 146 |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 167 AppListMainView* app_list_main_view_; | 189 AppListMainView* app_list_main_view_; |
| 168 SpeechView* speech_view_; | 190 SpeechView* speech_view_; |
| 169 views::Widget* fullscreen_widget_ = nullptr; // Owned by AppListView. | 191 views::Widget* fullscreen_widget_ = nullptr; // Owned by AppListView. |
| 170 | 192 |
| 171 views::View* search_box_focus_host_; // Owned by the views hierarchy. | 193 views::View* search_box_focus_host_; // Owned by the views hierarchy. |
| 172 views::Widget* search_box_widget_; // Owned by the app list's widget. | 194 views::Widget* search_box_widget_; // Owned by the app list's widget. |
| 173 SearchBoxView* search_box_view_; // Owned by |search_box_widget_|. | 195 SearchBoxView* search_box_view_; // Owned by |search_box_widget_|. |
| 174 // Owned by the app list's widget. Null if the fullscreen app list is not | 196 // Owned by the app list's widget. Null if the fullscreen app list is not |
| 175 // enabled. | 197 // enabled. |
| 176 views::View* app_list_background_shield_ = nullptr; | 198 views::View* app_list_background_shield_ = nullptr; |
| 199 // Whether maximize mode is active. |
| 200 bool is_maximize_mode_ = false; |
| 201 // Whether the shelf is oriented on the side. |
| 202 bool is_side_shelf_ = false; |
| 203 |
| 177 // The gap between the initial gesture event and the top of the window. | 204 // The gap between the initial gesture event and the top of the window. |
| 178 gfx::Point initial_drag_point_; | 205 gfx::Point initial_drag_point_; |
| 179 // The velocity of the gesture event. | 206 // The velocity of the gesture event. |
| 180 float last_fling_velocity_ = 0; | 207 float last_fling_velocity_ = 0; |
| 181 // Whether the fullscreen app list feature is enabled. | 208 // Whether the fullscreen app list feature is enabled. |
| 182 const bool is_fullscreen_app_list_enabled_; | 209 const bool is_fullscreen_app_list_enabled_; |
| 183 // The state of the app list, controlled via SetState(). | 210 // The state of the app list, controlled via SetState(). |
| 184 AppListState app_list_state_; | 211 AppListState app_list_state_; |
| 185 | 212 |
| 186 // An observer that notifies AppListView when the display has changed. | 213 // An observer that notifies AppListView when the display has changed. |
| 187 ScopedObserver<display::Screen, display::DisplayObserver> display_observer_; | 214 ScopedObserver<display::Screen, display::DisplayObserver> display_observer_; |
| 188 | 215 |
| 189 // A semi-transparent white overlay that covers the app list while dialogs are | 216 // A semi-transparent white overlay that covers the app list while dialogs are |
| 190 // open. | 217 // open. |
| 191 views::View* overlay_view_; | 218 views::View* overlay_view_; |
| 192 | 219 |
| 193 std::unique_ptr<HideViewAnimationObserver> animation_observer_; | 220 std::unique_ptr<HideViewAnimationObserver> animation_observer_; |
| 194 | 221 |
| 195 // For UMA and testing. If non-null, triggered when the app list is painted. | 222 // For UMA and testing. If non-null, triggered when the app list is painted. |
| 196 base::Closure next_paint_callback_; | 223 base::Closure next_paint_callback_; |
| 197 | 224 |
| 198 DISALLOW_COPY_AND_ASSIGN(AppListView); | 225 DISALLOW_COPY_AND_ASSIGN(AppListView); |
| 199 }; | 226 }; |
| 200 | 227 |
| 201 } // namespace app_list | 228 } // namespace app_list |
| 202 | 229 |
| 203 #endif // UI_APP_LIST_VIEWS_APP_LIST_VIEW_H_ | 230 #endif // UI_APP_LIST_VIEWS_APP_LIST_VIEW_H_ |
| OLD | NEW |