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 #include "ash/frame/custom_frame_view_ash.h" | 5 #include "ash/frame/custom_frame_view_ash.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "ash/common/ash_layout_constants.h" | 9 #include "ash/common/ash_layout_constants.h" |
10 #include "ash/frame/caption_buttons/frame_caption_button.h" | 10 #include "ash/frame/caption_buttons/frame_caption_button.h" |
(...skipping 16 matching lines...) Expand all Loading... |
27 public: | 27 public: |
28 TestWidgetDelegate() {} | 28 TestWidgetDelegate() {} |
29 ~TestWidgetDelegate() override {} | 29 ~TestWidgetDelegate() override {} |
30 | 30 |
31 views::NonClientFrameView* CreateNonClientFrameView( | 31 views::NonClientFrameView* CreateNonClientFrameView( |
32 views::Widget* widget) override { | 32 views::Widget* widget) override { |
33 custom_frame_view_ = new CustomFrameViewAsh(widget); | 33 custom_frame_view_ = new CustomFrameViewAsh(widget); |
34 return custom_frame_view_; | 34 return custom_frame_view_; |
35 } | 35 } |
36 | 36 |
37 CustomFrameViewAsh* custom_frame_view() const { | 37 CustomFrameViewAsh* custom_frame_view() const { return custom_frame_view_; } |
38 return custom_frame_view_; | |
39 } | |
40 | 38 |
41 private: | 39 private: |
42 // Not owned. | 40 // Not owned. |
43 CustomFrameViewAsh* custom_frame_view_; | 41 CustomFrameViewAsh* custom_frame_view_; |
44 | 42 |
45 DISALLOW_COPY_AND_ASSIGN(TestWidgetDelegate); | 43 DISALLOW_COPY_AND_ASSIGN(TestWidgetDelegate); |
46 }; | 44 }; |
47 | 45 |
48 class TestWidgetConstraintsDelegate : public TestWidgetDelegate { | 46 class TestWidgetConstraintsDelegate : public TestWidgetDelegate { |
49 public: | 47 public: |
50 TestWidgetConstraintsDelegate() {} | 48 TestWidgetConstraintsDelegate() {} |
51 ~TestWidgetConstraintsDelegate() override {} | 49 ~TestWidgetConstraintsDelegate() override {} |
52 | 50 |
53 // views::View: | 51 // views::View: |
54 gfx::Size GetMinimumSize() const override { return minimum_size_; } | 52 gfx::Size GetMinimumSize() const override { return minimum_size_; } |
55 | 53 |
56 gfx::Size GetMaximumSize() const override { return maximum_size_; } | 54 gfx::Size GetMaximumSize() const override { return maximum_size_; } |
57 | 55 |
58 views::View* GetContentsView() override { | 56 views::View* GetContentsView() override { |
59 // Set this instance as the contents view so that the maximum and minimum | 57 // Set this instance as the contents view so that the maximum and minimum |
60 // size constraints will be used. | 58 // size constraints will be used. |
61 return this; | 59 return this; |
62 } | 60 } |
63 | 61 |
64 // views::WidgetDelegate: | 62 // views::WidgetDelegate: |
65 bool CanMaximize() const override { return true; } | 63 bool CanMaximize() const override { return true; } |
66 | 64 |
67 bool CanMinimize() const override { return true; } | 65 bool CanMinimize() const override { return true; } |
68 | 66 |
69 void set_minimum_size(const gfx::Size& min_size) { | 67 void set_minimum_size(const gfx::Size& min_size) { minimum_size_ = min_size; } |
70 minimum_size_ = min_size; | |
71 } | |
72 | 68 |
73 void set_maximum_size(const gfx::Size& max_size) { | 69 void set_maximum_size(const gfx::Size& max_size) { maximum_size_ = max_size; } |
74 maximum_size_ = max_size; | |
75 } | |
76 | 70 |
77 const gfx::Rect& GetFrameCaptionButtonContainerViewBounds() { | 71 const gfx::Rect& GetFrameCaptionButtonContainerViewBounds() { |
78 return custom_frame_view()->GetFrameCaptionButtonContainerViewForTest()-> | 72 return custom_frame_view() |
79 bounds(); | 73 ->GetFrameCaptionButtonContainerViewForTest() |
| 74 ->bounds(); |
80 } | 75 } |
81 | 76 |
82 void EndFrameCaptionButtonContainerViewAnimations() { | 77 void EndFrameCaptionButtonContainerViewAnimations() { |
83 FrameCaptionButtonContainerView::TestApi test(custom_frame_view()-> | 78 FrameCaptionButtonContainerView::TestApi test( |
84 GetFrameCaptionButtonContainerViewForTest()); | 79 custom_frame_view()->GetFrameCaptionButtonContainerViewForTest()); |
85 test.EndAnimations(); | 80 test.EndAnimations(); |
86 } | 81 } |
87 | 82 |
88 int GetTitleBarHeight() const { | 83 int GetTitleBarHeight() const { |
89 return custom_frame_view()->NonClientTopBorderHeight(); | 84 return custom_frame_view()->NonClientTopBorderHeight(); |
90 } | 85 } |
91 | 86 |
92 private: | 87 private: |
93 gfx::Size minimum_size_; | 88 gfx::Size minimum_size_; |
94 gfx::Size maximum_size_; | 89 gfx::Size maximum_size_; |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
202 EXPECT_FALSE(custom_frame_view->GetAvatarIconViewForTest()); | 197 EXPECT_FALSE(custom_frame_view->GetAvatarIconViewForTest()); |
203 } | 198 } |
204 | 199 |
205 // The visibility of the size button is updated when maximize mode is toggled. | 200 // The visibility of the size button is updated when maximize mode is toggled. |
206 // Verify that the layout of the HeaderView is updated for the size button's | 201 // Verify that the layout of the HeaderView is updated for the size button's |
207 // new visibility. | 202 // new visibility. |
208 TEST_F(CustomFrameViewAshTest, HeaderViewNotifiedOfChildSizeChange) { | 203 TEST_F(CustomFrameViewAshTest, HeaderViewNotifiedOfChildSizeChange) { |
209 TestWidgetConstraintsDelegate* delegate = new TestWidgetConstraintsDelegate; | 204 TestWidgetConstraintsDelegate* delegate = new TestWidgetConstraintsDelegate; |
210 std::unique_ptr<views::Widget> widget(CreateWidget(delegate)); | 205 std::unique_ptr<views::Widget> widget(CreateWidget(delegate)); |
211 | 206 |
212 const gfx::Rect initial = delegate-> | 207 const gfx::Rect initial = |
213 GetFrameCaptionButtonContainerViewBounds(); | 208 delegate->GetFrameCaptionButtonContainerViewBounds(); |
214 Shell::GetInstance()->maximize_mode_controller()-> | 209 Shell::GetInstance() |
215 EnableMaximizeModeWindowManager(true); | 210 ->maximize_mode_controller() |
| 211 ->EnableMaximizeModeWindowManager(true); |
216 delegate->EndFrameCaptionButtonContainerViewAnimations(); | 212 delegate->EndFrameCaptionButtonContainerViewAnimations(); |
217 const gfx::Rect maximize_mode_bounds = delegate-> | 213 const gfx::Rect maximize_mode_bounds = |
218 GetFrameCaptionButtonContainerViewBounds(); | 214 delegate->GetFrameCaptionButtonContainerViewBounds(); |
219 EXPECT_GT(initial.width(), maximize_mode_bounds.width()); | 215 EXPECT_GT(initial.width(), maximize_mode_bounds.width()); |
220 Shell::GetInstance()->maximize_mode_controller()-> | 216 Shell::GetInstance() |
221 EnableMaximizeModeWindowManager(false); | 217 ->maximize_mode_controller() |
| 218 ->EnableMaximizeModeWindowManager(false); |
222 delegate->EndFrameCaptionButtonContainerViewAnimations(); | 219 delegate->EndFrameCaptionButtonContainerViewAnimations(); |
223 const gfx::Rect after_restore = delegate-> | 220 const gfx::Rect after_restore = |
224 GetFrameCaptionButtonContainerViewBounds(); | 221 delegate->GetFrameCaptionButtonContainerViewBounds(); |
225 EXPECT_EQ(initial, after_restore); | 222 EXPECT_EQ(initial, after_restore); |
226 } | 223 } |
227 | 224 |
228 } // namespace ash | 225 } // namespace ash |
OLD | NEW |