| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "ui/views/examples/table_example.h" | 5 #include "ui/views/examples/table_example.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/string_util.h" | 9 #include "base/string_util.h" |
| 10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
| 11 #include "third_party/skia/include/core/SkBitmap.h" | 11 #include "third_party/skia/include/core/SkBitmap.h" |
| 12 #include "third_party/skia/include/core/SkCanvas.h" | 12 #include "third_party/skia/include/core/SkCanvas.h" |
| 13 #include "ui/gfx/image/image_skia.h" | 13 #include "ui/gfx/image/image_skia.h" |
| 14 #include "ui/views/controls/button/checkbox.h" | 14 #include "ui/views/controls/button/checkbox.h" |
| 15 #include "ui/views/controls/table/group_table_model.h" |
| 15 #include "ui/views/layout/grid_layout.h" | 16 #include "ui/views/layout/grid_layout.h" |
| 16 | 17 |
| 17 namespace views { | 18 namespace views { |
| 18 namespace examples { | 19 namespace examples { |
| 19 | 20 |
| 20 namespace { | 21 namespace { |
| 21 | 22 |
| 22 ui::TableColumn TestTableColumn(int id, const std::string& title) { | 23 ui::TableColumn TestTableColumn(int id, const std::string& title) { |
| 23 ui::TableColumn column; | 24 ui::TableColumn column; |
| 24 column.id = id; | 25 column.id = id; |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 GridLayout* layout = new GridLayout(container); | 61 GridLayout* layout = new GridLayout(container); |
| 61 container->SetLayoutManager(layout); | 62 container->SetLayoutManager(layout); |
| 62 | 63 |
| 63 std::vector<ui::TableColumn> columns; | 64 std::vector<ui::TableColumn> columns; |
| 64 columns.push_back(TestTableColumn(0, "Fruit")); | 65 columns.push_back(TestTableColumn(0, "Fruit")); |
| 65 columns.push_back(TestTableColumn(1, "Color")); | 66 columns.push_back(TestTableColumn(1, "Color")); |
| 66 columns.push_back(TestTableColumn(2, "Origin")); | 67 columns.push_back(TestTableColumn(2, "Origin")); |
| 67 columns.push_back(TestTableColumn(3, "Price")); | 68 columns.push_back(TestTableColumn(3, "Price")); |
| 68 columns.back().alignment = ui::TableColumn::RIGHT; | 69 columns.back().alignment = ui::TableColumn::RIGHT; |
| 69 table_ = new TableView(this, columns, ICON_AND_TEXT, true, true, true); | 70 table_ = new TableView(this, columns, ICON_AND_TEXT, true, true, true); |
| 71 // TODO(sky): remove ifdef once we get rid of win32 table. |
| 72 #if defined(USE_AURA) |
| 73 table_->SetGrouper(this); |
| 74 #endif |
| 70 table_->SetObserver(this); | 75 table_->SetObserver(this); |
| 71 icon1_.setConfig(SkBitmap::kARGB_8888_Config, 16, 16); | 76 icon1_.setConfig(SkBitmap::kARGB_8888_Config, 16, 16); |
| 72 icon1_.allocPixels(); | 77 icon1_.allocPixels(); |
| 73 SkCanvas canvas1(icon1_); | 78 SkCanvas canvas1(icon1_); |
| 74 canvas1.drawColor(SK_ColorRED); | 79 canvas1.drawColor(SK_ColorRED); |
| 75 | 80 |
| 76 icon2_.setConfig(SkBitmap::kARGB_8888_Config, 16, 16); | 81 icon2_.setConfig(SkBitmap::kARGB_8888_Config, 16, 16); |
| 77 icon2_.allocPixels(); | 82 icon2_.allocPixels(); |
| 78 SkCanvas canvas2(icon2_); | 83 SkCanvas canvas2(icon2_); |
| 79 canvas2.drawColor(SK_ColorBLUE); | 84 canvas2.drawColor(SK_ColorBLUE); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 116 }; | 121 }; |
| 117 return ASCIIToUTF16(cells[row % 5][column_id]); | 122 return ASCIIToUTF16(cells[row % 5][column_id]); |
| 118 } | 123 } |
| 119 | 124 |
| 120 gfx::ImageSkia TableExample::GetIcon(int row) { | 125 gfx::ImageSkia TableExample::GetIcon(int row) { |
| 121 return row % 2 ? gfx::ImageSkia(icon1_) : gfx::ImageSkia(icon2_); | 126 return row % 2 ? gfx::ImageSkia(icon1_) : gfx::ImageSkia(icon2_); |
| 122 } | 127 } |
| 123 | 128 |
| 124 void TableExample::SetObserver(ui::TableModelObserver* observer) {} | 129 void TableExample::SetObserver(ui::TableModelObserver* observer) {} |
| 125 | 130 |
| 131 void TableExample::GetGroupRange(int model_index, GroupRange* range) { |
| 132 if (model_index < 2) { |
| 133 range->start = 0; |
| 134 range->length = 2; |
| 135 } else if (model_index > 6) { |
| 136 range->start = 7; |
| 137 range->length = 3; |
| 138 } else { |
| 139 range->start = model_index; |
| 140 range->length = 1; |
| 141 } |
| 142 } |
| 143 |
| 126 void TableExample::OnSelectionChanged() { | 144 void TableExample::OnSelectionChanged() { |
| 127 PrintStatus("Selected: %s", | 145 PrintStatus("Selected: %s", |
| 128 UTF16ToASCII(GetText(table_->FirstSelectedRow(), 0)).c_str()); | 146 UTF16ToASCII(GetText(table_->FirstSelectedRow(), 0)).c_str()); |
| 129 } | 147 } |
| 130 | 148 |
| 131 void TableExample::OnDoubleClick() { | 149 void TableExample::OnDoubleClick() { |
| 132 PrintStatus("Double Click: %s", | 150 PrintStatus("Double Click: %s", |
| 133 UTF16ToASCII(GetText(table_->FirstSelectedRow(), 0)).c_str()); | 151 UTF16ToASCII(GetText(table_->FirstSelectedRow(), 0)).c_str()); |
| 134 } | 152 } |
| 135 | 153 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 151 show = column3_visible_checkbox_->checked(); | 169 show = column3_visible_checkbox_->checked(); |
| 152 } else if (sender == column4_visible_checkbox_) { | 170 } else if (sender == column4_visible_checkbox_) { |
| 153 index = 3; | 171 index = 3; |
| 154 show = column4_visible_checkbox_->checked(); | 172 show = column4_visible_checkbox_->checked(); |
| 155 } | 173 } |
| 156 table_->SetColumnVisibility(index, show); | 174 table_->SetColumnVisibility(index, show); |
| 157 } | 175 } |
| 158 | 176 |
| 159 } // namespace examples | 177 } // namespace examples |
| 160 } // namespace views | 178 } // namespace views |
| OLD | NEW |