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