OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "views/examples/widget_example.h" | 5 #include "views/examples/widget_example.h" |
6 | 6 |
7 #include "views/controls/button/text_button.h" | 7 #include "views/controls/button/text_button.h" |
8 #include "views/layout/box_layout.h" | 8 #include "views/layout/box_layout.h" |
| 9 #include "views/layout/center_layout.h" |
9 #include "views/layout/layout_manager.h" | 10 #include "views/layout/layout_manager.h" |
10 #include "views/view.h" | 11 #include "views/view.h" |
11 #include "views/widget/widget.h" | 12 #include "views/widget/widget.h" |
12 | 13 |
13 namespace { | |
14 | |
15 // A layout manager that layouts a single child at | |
16 // the center of the host view. | |
17 class CenterLayout : public views::LayoutManager { | |
18 public: | |
19 CenterLayout() {} | |
20 virtual ~CenterLayout() {} | |
21 | |
22 // Overridden from LayoutManager: | |
23 virtual void Layout(views::View* host) { | |
24 views::View* child = host->child_at(0); | |
25 gfx::Size size = child->GetPreferredSize(); | |
26 child->SetBounds((host->width() - size.width()) / 2, | |
27 (host->height() - size.height()) / 2, | |
28 size.width(), size.height()); | |
29 } | |
30 | |
31 virtual gfx::Size GetPreferredSize(views::View* host) { | |
32 return gfx::Size(); | |
33 } | |
34 | |
35 private: | |
36 DISALLOW_COPY_AND_ASSIGN(CenterLayout); | |
37 }; | |
38 | |
39 } // namespace | |
40 | |
41 namespace examples { | 14 namespace examples { |
42 | 15 |
43 WidgetExample::WidgetExample(ExamplesMain* main) | 16 WidgetExample::WidgetExample(ExamplesMain* main) |
44 : ExampleBase(main) { | 17 : ExampleBase(main) { |
45 } | 18 } |
46 | 19 |
47 WidgetExample::~WidgetExample() { | 20 WidgetExample::~WidgetExample() { |
48 } | 21 } |
49 | 22 |
50 std::wstring WidgetExample::GetExampleTitle() { | 23 std::wstring WidgetExample::GetExampleTitle() { |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 new views::NativeTextButton(this, L"Native Close"); | 58 new views::NativeTextButton(this, L"Native Close"); |
86 native_button->set_tag(CLOSE_WIDGET); | 59 native_button->set_tag(CLOSE_WIDGET); |
87 | 60 |
88 views::View* button_container = new views::View(); | 61 views::View* button_container = new views::View(); |
89 button_container->SetLayoutManager( | 62 button_container->SetLayoutManager( |
90 new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 0, 1)); | 63 new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 0, 1)); |
91 button_container->AddChildView(close_button); | 64 button_container->AddChildView(close_button); |
92 button_container->AddChildView(native_button); | 65 button_container->AddChildView(native_button); |
93 | 66 |
94 views::View* widget_container = new views::View(); | 67 views::View* widget_container = new views::View(); |
95 widget_container->SetLayoutManager(new CenterLayout); | 68 widget_container->SetLayoutManager(new views::CenterLayout()); |
96 widget_container->AddChildView(button_container); | 69 widget_container->AddChildView(button_container); |
97 | 70 |
98 widget->SetContentsView(widget_container); | 71 widget->SetContentsView(widget_container); |
99 | 72 |
100 if (!transparent) { | 73 if (!transparent) { |
101 widget_container->set_background( | 74 widget_container->set_background( |
102 views::Background::CreateStandardPanelBackground()); | 75 views::Background::CreateStandardPanelBackground()); |
103 } | 76 } |
104 | 77 |
105 // Show the widget. | 78 // Show the widget. |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 CreateChild(sender, true); | 135 CreateChild(sender, true); |
163 break; | 136 break; |
164 #endif | 137 #endif |
165 case CLOSE_WIDGET: | 138 case CLOSE_WIDGET: |
166 sender->GetWidget()->Close(); | 139 sender->GetWidget()->Close(); |
167 break; | 140 break; |
168 } | 141 } |
169 } | 142 } |
170 | 143 |
171 } // namespace examples | 144 } // namespace examples |
OLD | NEW |