OLD | NEW |
| (Empty) |
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 | |
3 // found in the LICENSE file. | |
4 | |
5 #include "views/examples/radio_button_example.h" | |
6 | |
7 #include "base/stringprintf.h" | |
8 #include "base/utf_string_conversions.h" | |
9 #include "views/controls/button/text_button.h" | |
10 #include "views/layout/grid_layout.h" | |
11 #include "views/view.h" | |
12 | |
13 namespace examples { | |
14 | |
15 RadioButtonExample::RadioButtonExample(ExamplesMain* main) | |
16 : ExampleBase(main, "Radio Button"), count_(0) { | |
17 } | |
18 | |
19 RadioButtonExample::~RadioButtonExample() { | |
20 } | |
21 | |
22 void RadioButtonExample::CreateExampleView(views::View* container) { | |
23 select_ = new views::TextButton(this, ASCIIToUTF16("Select")); | |
24 status_ = new views::TextButton(this, ASCIIToUTF16("Show Status")); | |
25 | |
26 int group = 1; | |
27 for (size_t i = 0; i < arraysize(radio_buttons_); ++i) { | |
28 radio_buttons_[i] = new views::RadioButton( | |
29 UTF8ToUTF16(base::StringPrintf( | |
30 "Radio %d in group %d", static_cast<int>(i) + 1, group)), | |
31 group); | |
32 radio_buttons_[i]->set_listener(this); | |
33 } | |
34 | |
35 views::GridLayout* layout = new views::GridLayout(container); | |
36 container->SetLayoutManager(layout); | |
37 | |
38 views::ColumnSet* column_set = layout->AddColumnSet(0); | |
39 column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, | |
40 1.0f, views::GridLayout::USE_PREF, 0, 0); | |
41 for (size_t i = 0; i < arraysize(radio_buttons_); ++i) { | |
42 layout->StartRow(0, 0); | |
43 layout->AddView(radio_buttons_[i]); | |
44 } | |
45 layout->StartRow(0, 0); | |
46 layout->AddView(select_); | |
47 layout->StartRow(0, 0); | |
48 layout->AddView(status_); | |
49 } | |
50 | |
51 void RadioButtonExample::ButtonPressed(views::Button* sender, | |
52 const views::Event& event) { | |
53 if (sender == select_) { | |
54 radio_buttons_[2]->SetChecked(true); | |
55 } else if (sender == status_) { | |
56 // Show the state of radio buttons. | |
57 PrintStatus("Group: 1:%s, 2:%s, 3:%s", | |
58 BoolToOnOff(radio_buttons_[0]->checked()), | |
59 BoolToOnOff(radio_buttons_[1]->checked()), | |
60 BoolToOnOff(radio_buttons_[2]->checked())); | |
61 } else { | |
62 PrintStatus("Pressed! count:%d", ++count_); | |
63 } | |
64 } | |
65 | |
66 } // namespace examples | |
OLD | NEW |