OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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_VIEWS_TEST_FOCUS_MANAGER_TEST_H_ | 5 #ifndef UI_VIEWS_TEST_FOCUS_MANAGER_TEST_H_ |
6 #define UI_VIEWS_TEST_FOCUS_MANAGER_TEST_H_ | 6 #define UI_VIEWS_TEST_FOCUS_MANAGER_TEST_H_ |
7 | 7 |
8 #include "ui/views/focus/focus_manager.h" | 8 #include "ui/views/focus/focus_manager.h" |
9 #include "ui/views/focus/widget_focus_manager.h" | 9 #include "ui/views/focus/widget_focus_manager.h" |
10 #include "ui/views/test/views_test_base.h" | 10 #include "ui/views/test/views_test_base.h" |
11 #include "ui/views/widget/widget_delegate.h" | 11 #include "ui/views/widget/widget_delegate.h" |
12 | 12 |
13 namespace views { | 13 namespace views { |
14 | 14 |
15 class FocusChangeListener; | 15 class FocusChangeListener; |
16 | 16 |
17 class FocusManagerTest : public ViewsTestBase, public WidgetDelegate { | 17 class FocusManagerTest : public ViewsTestBase, public WidgetDelegate { |
18 public: | 18 public: |
19 FocusManagerTest(); | 19 FocusManagerTest(); |
20 virtual ~FocusManagerTest(); | 20 ~FocusManagerTest() override; |
21 | 21 |
22 // Convenience to obtain the focus manager for the test's hosting widget. | 22 // Convenience to obtain the focus manager for the test's hosting widget. |
23 FocusManager* GetFocusManager(); | 23 FocusManager* GetFocusManager(); |
24 | 24 |
25 // Overridden from ViewsTestBase: | 25 // Overridden from ViewsTestBase: |
26 virtual void SetUp() override; | 26 void SetUp() override; |
27 virtual void TearDown() override; | 27 void TearDown() override; |
28 | 28 |
29 // Overridden from WidgetDelegate: | 29 // Overridden from WidgetDelegate: |
30 virtual View* GetContentsView() override; | 30 View* GetContentsView() override; |
31 virtual Widget* GetWidget() override; | 31 Widget* GetWidget() override; |
32 virtual const Widget* GetWidget() const override; | 32 const Widget* GetWidget() const override; |
33 virtual void GetAccessiblePanes(std::vector<View*>* panes) override; | 33 void GetAccessiblePanes(std::vector<View*>* panes) override; |
34 | 34 |
35 protected: | 35 protected: |
36 // Called after the Widget is initialized and the content view is added. | 36 // Called after the Widget is initialized and the content view is added. |
37 // Override to add controls to the layout. | 37 // Override to add controls to the layout. |
38 virtual void InitContentView(); | 38 virtual void InitContentView(); |
39 | 39 |
40 void AddFocusChangeListener(FocusChangeListener* listener); | 40 void AddFocusChangeListener(FocusChangeListener* listener); |
41 void AddWidgetFocusChangeListener(WidgetFocusChangeListener* listener); | 41 void AddWidgetFocusChangeListener(WidgetFocusChangeListener* listener); |
42 | 42 |
43 // For testing FocusManager::RotatePaneFocus(). | 43 // For testing FocusManager::RotatePaneFocus(). |
44 void SetAccessiblePanes(const std::vector<View*>& panes); | 44 void SetAccessiblePanes(const std::vector<View*>& panes); |
45 | 45 |
46 private: | 46 private: |
47 View* contents_view_; | 47 View* contents_view_; |
48 FocusChangeListener* focus_change_listener_; | 48 FocusChangeListener* focus_change_listener_; |
49 WidgetFocusChangeListener* widget_focus_change_listener_; | 49 WidgetFocusChangeListener* widget_focus_change_listener_; |
50 std::vector<View*> accessible_panes_; | 50 std::vector<View*> accessible_panes_; |
51 | 51 |
52 DISALLOW_COPY_AND_ASSIGN(FocusManagerTest); | 52 DISALLOW_COPY_AND_ASSIGN(FocusManagerTest); |
53 }; | 53 }; |
54 | 54 |
55 typedef std::pair<View*, View*> ViewPair; | 55 typedef std::pair<View*, View*> ViewPair; |
56 | 56 |
57 // Use to record focus change notifications. | 57 // Use to record focus change notifications. |
58 class TestFocusChangeListener : public FocusChangeListener { | 58 class TestFocusChangeListener : public FocusChangeListener { |
59 public: | 59 public: |
60 TestFocusChangeListener(); | 60 TestFocusChangeListener(); |
61 virtual ~TestFocusChangeListener(); | 61 ~TestFocusChangeListener() override; |
62 | 62 |
63 const std::vector<ViewPair>& focus_changes() const { return focus_changes_; } | 63 const std::vector<ViewPair>& focus_changes() const { return focus_changes_; } |
64 void ClearFocusChanges(); | 64 void ClearFocusChanges(); |
65 | 65 |
66 // Overridden from FocusChangeListener: | 66 // Overridden from FocusChangeListener: |
67 virtual void OnWillChangeFocus(View* focused_before, | 67 void OnWillChangeFocus(View* focused_before, View* focused_now) override; |
68 View* focused_now) override; | 68 void OnDidChangeFocus(View* focused_before, View* focused_now) override; |
69 virtual void OnDidChangeFocus(View* focused_before, | |
70 View* focused_now) override; | |
71 | 69 |
72 private: | 70 private: |
73 // A vector of which views lost/gained focus. | 71 // A vector of which views lost/gained focus. |
74 std::vector<ViewPair> focus_changes_; | 72 std::vector<ViewPair> focus_changes_; |
75 | 73 |
76 DISALLOW_COPY_AND_ASSIGN(TestFocusChangeListener); | 74 DISALLOW_COPY_AND_ASSIGN(TestFocusChangeListener); |
77 }; | 75 }; |
78 | 76 |
79 typedef std::pair<gfx::NativeView, gfx::NativeView> NativeViewPair; | 77 typedef std::pair<gfx::NativeView, gfx::NativeView> NativeViewPair; |
80 | 78 |
81 // Use to record widget focus change notifications. | 79 // Use to record widget focus change notifications. |
82 class TestWidgetFocusChangeListener : public WidgetFocusChangeListener { | 80 class TestWidgetFocusChangeListener : public WidgetFocusChangeListener { |
83 public: | 81 public: |
84 TestWidgetFocusChangeListener(); | 82 TestWidgetFocusChangeListener(); |
85 virtual ~TestWidgetFocusChangeListener(); | 83 ~TestWidgetFocusChangeListener() override; |
86 | 84 |
87 const std::vector<NativeViewPair>& focus_changes() const { | 85 const std::vector<NativeViewPair>& focus_changes() const { |
88 return focus_changes_; | 86 return focus_changes_; |
89 } | 87 } |
90 void ClearFocusChanges(); | 88 void ClearFocusChanges(); |
91 | 89 |
92 // Overridden from WidgetFocusChangeListener: | 90 // Overridden from WidgetFocusChangeListener: |
93 virtual void OnNativeFocusChange(gfx::NativeView focused_before, | 91 void OnNativeFocusChange(gfx::NativeView focused_before, |
94 gfx::NativeView focused_now) override; | 92 gfx::NativeView focused_now) override; |
95 | 93 |
96 private: | 94 private: |
97 // Pairs of (focused_before, focused_now) parameters we've received via calls | 95 // Pairs of (focused_before, focused_now) parameters we've received via calls |
98 // to OnNativeFocusChange(), in oldest-to-newest-received order. | 96 // to OnNativeFocusChange(), in oldest-to-newest-received order. |
99 std::vector<NativeViewPair> focus_changes_; | 97 std::vector<NativeViewPair> focus_changes_; |
100 | 98 |
101 DISALLOW_COPY_AND_ASSIGN(TestWidgetFocusChangeListener); | 99 DISALLOW_COPY_AND_ASSIGN(TestWidgetFocusChangeListener); |
102 }; | 100 }; |
103 | 101 |
104 } // namespace views | 102 } // namespace views |
105 | 103 |
106 #endif // UI_VIEWS_TEST_FOCUS_MANAGER_TEST_H_ | 104 #endif // UI_VIEWS_TEST_FOCUS_MANAGER_TEST_H_ |
OLD | NEW |