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/table2_example.h" | |
6 | |
7 #include "base/utf_string_conversions.h" | |
8 #include "third_party/skia/include/core/SkCanvas.h" | |
9 #include "views/controls/button/checkbox.h" | |
10 #include "views/controls/table/table_view2.h" | |
11 #include "views/layout/grid_layout.h" | |
12 | |
13 namespace examples { | |
14 | |
15 Table2Example::Table2Example(ExamplesMain* main) | |
16 : ExampleBase(main, "Table2") { | |
17 } | |
18 | |
19 Table2Example::~Table2Example() { | |
20 } | |
21 | |
22 void Table2Example::CreateExampleView(views::View* container) { | |
23 column1_visible_checkbox_ = new views::Checkbox( | |
24 ASCIIToUTF16("Fruit column visible")); | |
25 column1_visible_checkbox_->SetChecked(true); | |
26 column1_visible_checkbox_->set_listener(this); | |
27 column2_visible_checkbox_ = new views::Checkbox( | |
28 ASCIIToUTF16("Color column visible")); | |
29 column2_visible_checkbox_->SetChecked(true); | |
30 column2_visible_checkbox_->set_listener(this); | |
31 column3_visible_checkbox_ = new views::Checkbox( | |
32 ASCIIToUTF16("Origin column visible")); | |
33 column3_visible_checkbox_->SetChecked(true); | |
34 column3_visible_checkbox_->set_listener(this); | |
35 column4_visible_checkbox_ = new views::Checkbox( | |
36 ASCIIToUTF16("Price column visible")); | |
37 column4_visible_checkbox_->SetChecked(true); | |
38 column4_visible_checkbox_->set_listener(this); | |
39 | |
40 views::GridLayout* layout = new views::GridLayout(container); | |
41 container->SetLayoutManager(layout); | |
42 | |
43 std::vector<ui::TableColumn> columns; | |
44 columns.push_back( | |
45 ui::TableColumn(0, ASCIIToUTF16("Fruit"), ui::TableColumn::LEFT, 100)); | |
46 columns.push_back( | |
47 ui::TableColumn(1, ASCIIToUTF16("Color"), ui::TableColumn::LEFT, 100)); | |
48 columns.push_back( | |
49 ui::TableColumn(2, ASCIIToUTF16("Origin"), ui::TableColumn::LEFT, 100)); | |
50 columns.push_back( | |
51 ui::TableColumn(3, ASCIIToUTF16("Price"), ui::TableColumn::LEFT, 100)); | |
52 const int options = (views::TableView2::SINGLE_SELECTION | | |
53 views::TableView2::RESIZABLE_COLUMNS | | |
54 views::TableView2::AUTOSIZE_COLUMNS | | |
55 views::TableView2::HORIZONTAL_LINES | | |
56 views::TableView2::VERTICAL_LINES); | |
57 table_ = new views::TableView2(this, columns, views::ICON_AND_TEXT, options); | |
58 table_->SetObserver(this); | |
59 icon1_.setConfig(SkBitmap::kARGB_8888_Config, 16, 16); | |
60 icon1_.allocPixels(); | |
61 SkCanvas canvas1(icon1_); | |
62 canvas1.drawColor(SK_ColorRED); | |
63 | |
64 icon2_.setConfig(SkBitmap::kARGB_8888_Config, 16, 16); | |
65 icon2_.allocPixels(); | |
66 SkCanvas canvas2(icon2_); | |
67 canvas2.drawColor(SK_ColorBLUE); | |
68 | |
69 views::ColumnSet* column_set = layout->AddColumnSet(0); | |
70 column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, 1, | |
71 views::GridLayout::USE_PREF, 0, 0); | |
72 layout->StartRow(1 /* expand */, 0); | |
73 layout->AddView(table_); | |
74 | |
75 column_set = layout->AddColumnSet(1); | |
76 column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, | |
77 0.5f, views::GridLayout::USE_PREF, 0, 0); | |
78 column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, | |
79 0.5f, views::GridLayout::USE_PREF, 0, 0); | |
80 column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, | |
81 0.5f, views::GridLayout::USE_PREF, 0, 0); | |
82 column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, | |
83 0.5f, views::GridLayout::USE_PREF, 0, 0); | |
84 | |
85 layout->StartRow(0 /* no expand */, 1); | |
86 | |
87 layout->AddView(column1_visible_checkbox_); | |
88 layout->AddView(column2_visible_checkbox_); | |
89 layout->AddView(column3_visible_checkbox_); | |
90 layout->AddView(column4_visible_checkbox_); | |
91 } | |
92 | |
93 int Table2Example::RowCount() { | |
94 return 10; | |
95 } | |
96 | |
97 string16 Table2Example::GetText(int row, int column_id) { | |
98 const char* const cells[5][4] = { | |
99 { "Orange", "Orange", "South america", "$5" }, | |
100 { "Apple", "Green", "Canada", "$3" }, | |
101 { "Blue berries", "Blue", "Mexico", "$10.3" }, | |
102 { "Strawberries", "Red", "California", "$7" }, | |
103 { "Cantaloupe", "Orange", "South america", "$5" } | |
104 }; | |
105 return ASCIIToUTF16(cells[row % 5][column_id]); | |
106 } | |
107 | |
108 SkBitmap Table2Example::GetIcon(int row) { | |
109 return row % 2 ? icon1_ : icon2_; | |
110 } | |
111 | |
112 void Table2Example::SetObserver(ui::TableModelObserver* observer) { | |
113 } | |
114 | |
115 void Table2Example::ButtonPressed(views::Button* sender, | |
116 const views::Event& event) { | |
117 int index = 0; | |
118 bool show = true; | |
119 if (sender == column1_visible_checkbox_) { | |
120 index = 0; | |
121 show = column1_visible_checkbox_->checked(); | |
122 } else if (sender == column2_visible_checkbox_) { | |
123 index = 1; | |
124 show = column2_visible_checkbox_->checked(); | |
125 } else if (sender == column3_visible_checkbox_) { | |
126 index = 2; | |
127 show = column3_visible_checkbox_->checked(); | |
128 } else if (sender == column4_visible_checkbox_) { | |
129 index = 3; | |
130 show = column4_visible_checkbox_->checked(); | |
131 } | |
132 table_->SetColumnVisibility(index, show); | |
133 } | |
134 | |
135 void Table2Example::OnSelectionChanged() { | |
136 PrintStatus("Selection changed: %d", table_->GetFirstSelectedRow()); | |
137 } | |
138 | |
139 void Table2Example::OnDoubleClick() { | |
140 } | |
141 | |
142 void Table2Example::OnMiddleClick() { | |
143 } | |
144 | |
145 void Table2Example::OnKeyDown(ui::KeyboardCode virtual_keycode) { | |
146 } | |
147 | |
148 void Table2Example::OnTableViewDelete(views::TableView* table_view) { | |
149 } | |
150 | |
151 void Table2Example::OnTableView2Delete(views::TableView2* table_view) { | |
152 } | |
153 | |
154 } // namespace examples | |
OLD | NEW |