| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 ASH_WM_OVERVIEW_WINDOW_SELECTOR_H_ | 5 #ifndef ASH_WM_OVERVIEW_WINDOW_SELECTOR_H_ |
| 6 #define ASH_WM_OVERVIEW_WINDOW_SELECTOR_H_ | 6 #define ASH_WM_OVERVIEW_WINDOW_SELECTOR_H_ |
| 7 | 7 |
| 8 #include <set> | 8 #include <set> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 class ASH_EXPORT WindowSelector | 49 class ASH_EXPORT WindowSelector |
| 50 : public gfx::DisplayObserver, | 50 : public gfx::DisplayObserver, |
| 51 public aura::WindowObserver, | 51 public aura::WindowObserver, |
| 52 public aura::client::ActivationChangeObserver, | 52 public aura::client::ActivationChangeObserver, |
| 53 public views::TextfieldController { | 53 public views::TextfieldController { |
| 54 public: | 54 public: |
| 55 // The distance between the top edge of the screen and the bottom edge of | 55 // The distance between the top edge of the screen and the bottom edge of |
| 56 // the text filtering textfield. | 56 // the text filtering textfield. |
| 57 static const int kTextFilterBottomEdge; | 57 static const int kTextFilterBottomEdge; |
| 58 | 58 |
| 59 // Returns true if the window can be selected in overview mode. |
| 60 static bool IsSelectable(aura::Window* window); |
| 61 |
| 59 enum Direction { | 62 enum Direction { |
| 60 LEFT, | 63 LEFT, |
| 61 UP, | 64 UP, |
| 62 RIGHT, | 65 RIGHT, |
| 63 DOWN | 66 DOWN |
| 64 }; | 67 }; |
| 65 | 68 |
| 66 typedef std::vector<aura::Window*> WindowList; | 69 typedef std::vector<aura::Window*> WindowList; |
| 67 typedef ScopedVector<WindowSelectorItem> WindowSelectorItemList; | 70 typedef ScopedVector<WindowSelectorItem> WindowSelectorItemList; |
| 68 | 71 |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 109 | 112 |
| 110 private: | 113 private: |
| 111 friend class WindowSelectorTest; | 114 friend class WindowSelectorTest; |
| 112 | 115 |
| 113 // Begins positioning windows such that all windows are visible on the screen. | 116 // Begins positioning windows such that all windows are visible on the screen. |
| 114 void StartOverview(); | 117 void StartOverview(); |
| 115 | 118 |
| 116 // Position all of the windows in the overview. | 119 // Position all of the windows in the overview. |
| 117 void PositionWindows(bool animate); | 120 void PositionWindows(bool animate); |
| 118 | 121 |
| 119 // Hide and track all hidden windows not in the overview item list. | |
| 120 void HideAndTrackNonOverviewWindows(); | |
| 121 | |
| 122 // |focus|, restores focus to the stored window. | 122 // |focus|, restores focus to the stored window. |
| 123 void ResetFocusRestoreWindow(bool focus); | 123 void ResetFocusRestoreWindow(bool focus); |
| 124 | 124 |
| 125 // Helper function that moves the selection widget to |direction| on the | 125 // Helper function that moves the selection widget to |direction| on the |
| 126 // corresponding window grid. | 126 // corresponding window grid. |
| 127 void Move(Direction direction, bool animate); | 127 void Move(Direction direction, bool animate); |
| 128 | 128 |
| 129 // Removes all observers that were registered during construction and/or | 129 // Removes all observers that were registered during construction and/or |
| 130 // initialization. | 130 // initialization. |
| 131 void RemoveAllObservers(); | 131 void RemoveAllObservers(); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 142 // this window. | 142 // this window. |
| 143 aura::Window* restore_focus_window_; | 143 aura::Window* restore_focus_window_; |
| 144 | 144 |
| 145 // True when performing operations that may cause window activations. This is | 145 // True when performing operations that may cause window activations. This is |
| 146 // used to prevent handling the resulting expected activation. | 146 // used to prevent handling the resulting expected activation. |
| 147 bool ignore_activations_; | 147 bool ignore_activations_; |
| 148 | 148 |
| 149 // List of all the window overview grids, one for each root window. | 149 // List of all the window overview grids, one for each root window. |
| 150 ScopedVector<WindowGrid> grid_list_; | 150 ScopedVector<WindowGrid> grid_list_; |
| 151 | 151 |
| 152 // Tracks windows which were hidden because they were not part of the | |
| 153 // overview. | |
| 154 aura::WindowTracker hidden_windows_; | |
| 155 | |
| 156 // Tracks the index of the root window the selection widget is in. | 152 // Tracks the index of the root window the selection widget is in. |
| 157 size_t selected_grid_index_; | 153 size_t selected_grid_index_; |
| 158 | 154 |
| 159 // The following variables are used for metric collection purposes. All of | 155 // The following variables are used for metric collection purposes. All of |
| 160 // them refer to this particular overview session and are not cumulative: | 156 // them refer to this particular overview session and are not cumulative: |
| 161 // The time when overview was started. | 157 // The time when overview was started. |
| 162 base::Time overview_start_time_; | 158 base::Time overview_start_time_; |
| 163 | 159 |
| 164 // The number of arrow key presses. | 160 // The number of arrow key presses. |
| 165 size_t num_key_presses_; | 161 size_t num_key_presses_; |
| (...skipping 19 matching lines...) Expand all Loading... |
| 185 // Tracks whether minimized windows are currently being restored for overview | 181 // Tracks whether minimized windows are currently being restored for overview |
| 186 // mode. | 182 // mode. |
| 187 bool restoring_minimized_windows_; | 183 bool restoring_minimized_windows_; |
| 188 | 184 |
| 189 DISALLOW_COPY_AND_ASSIGN(WindowSelector); | 185 DISALLOW_COPY_AND_ASSIGN(WindowSelector); |
| 190 }; | 186 }; |
| 191 | 187 |
| 192 } // namespace ash | 188 } // namespace ash |
| 193 | 189 |
| 194 #endif // ASH_WM_OVERVIEW_WINDOW_SELECTOR_H_ | 190 #endif // ASH_WM_OVERVIEW_WINDOW_SELECTOR_H_ |
| OLD | NEW |