diff options
author | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-20 14:26:55 +0000 |
---|---|---|
committer | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-20 14:26:55 +0000 |
commit | 507fef8fb0ebcc443d2d87d8755d3749a89046b3 (patch) | |
tree | 786bf7fb6ee35beac70bfeffed3ed9ef2907a18d /views | |
parent | de9dc3c1201c88137a16fe14778864a8998285bf (diff) | |
download | chromium_src-507fef8fb0ebcc443d2d87d8755d3749a89046b3.zip chromium_src-507fef8fb0ebcc443d2d87d8755d3749a89046b3.tar.gz chromium_src-507fef8fb0ebcc443d2d87d8755d3749a89046b3.tar.bz2 |
views/examples: Move the implementation of TableExample to source file.
BUG=None
TEST=views_examples
R=oshima@chromium.org,sky@chromium.org
Review URL: http://codereview.chromium.org/7212003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@89663 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views')
-rw-r--r-- | views/examples/table_example.cc | 137 | ||||
-rw-r--r-- | views/examples/table_example.h | 175 | ||||
-rw-r--r-- | views/views.gyp | 6 |
3 files changed, 182 insertions, 136 deletions
diff --git a/views/examples/table_example.cc b/views/examples/table_example.cc new file mode 100644 index 0000000..ace41f6 --- /dev/null +++ b/views/examples/table_example.cc @@ -0,0 +1,137 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "views/examples/table_example.h" + +#include <vector> + +#include "third_party/skia/include/core/SkCanvas.h" +#include "views/controls/button/checkbox.h" +#include "views/layout/grid_layout.h" + +namespace examples { + +TableExample::TableExample(ExamplesMain* main) : ExampleBase(main) {} + +TableExample::~TableExample() {} + +std::wstring TableExample::GetExampleTitle() { + return L"Table"; +} + +void TableExample::CreateExampleView(views::View* container) { + column1_visible_checkbox_ = new views::Checkbox(L"Fruit column visible"); + column1_visible_checkbox_->SetChecked(true); + column1_visible_checkbox_->set_listener(this); + column2_visible_checkbox_ = new views::Checkbox(L"Color column visible"); + column2_visible_checkbox_->SetChecked(true); + column2_visible_checkbox_->set_listener(this); + column3_visible_checkbox_ = new views::Checkbox(L"Origin column visible"); + column3_visible_checkbox_->SetChecked(true); + column3_visible_checkbox_->set_listener(this); + column4_visible_checkbox_ = new views::Checkbox(L"Price column visible"); + column4_visible_checkbox_->SetChecked(true); + column4_visible_checkbox_->set_listener(this); + + views::GridLayout* layout = new views::GridLayout(container); + container->SetLayoutManager(layout); + + std::vector<TableColumn> columns; + columns.push_back(TableColumn(0, L"Fruit", TableColumn::LEFT, 100)); + columns.push_back(TableColumn(1, L"Color", TableColumn::LEFT, 100)); + columns.push_back(TableColumn(2, L"Origin", TableColumn::LEFT, 100)); + columns.push_back(TableColumn(3, L"Price", TableColumn::LEFT, 100)); + table_ = new views::TableView(this, columns, views::ICON_AND_TEXT, + true, true, true); + table_->SetObserver(this); + icon1_.setConfig(SkBitmap::kARGB_8888_Config, 16, 16); + icon1_.allocPixels(); + SkCanvas canvas1(icon1_); + canvas1.drawColor(SK_ColorRED); + + icon2_.setConfig(SkBitmap::kARGB_8888_Config, 16, 16); + icon2_.allocPixels(); + SkCanvas canvas2(icon2_); + canvas2.drawColor(SK_ColorBLUE); + + views::ColumnSet* column_set = layout->AddColumnSet(0); + column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, 1, + views::GridLayout::USE_PREF, 0, 0); + layout->StartRow(1 /* expand */, 0); + layout->AddView(table_); + + column_set = layout->AddColumnSet(1); + column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, + 0.5f, views::GridLayout::USE_PREF, 0, 0); + column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, + 0.5f, views::GridLayout::USE_PREF, 0, 0); + column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, + 0.5f, views::GridLayout::USE_PREF, 0, 0); + column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, + 0.5f, views::GridLayout::USE_PREF, 0, 0); + + layout->StartRow(0 /* no expand */, 1); + + layout->AddView(column1_visible_checkbox_); + layout->AddView(column2_visible_checkbox_); + layout->AddView(column3_visible_checkbox_); + layout->AddView(column4_visible_checkbox_); +} + +int TableExample::RowCount() { + return 10; +} + +std::wstring TableExample::GetText(int row, int column_id) { + std::wstring cells[5][5] = { + { L"Orange", L"Orange", L"South america", L"$5" }, + { L"Apple", L"Green", L"Canada", L"$3" }, + { L"Blue berries", L"Blue", L"Mexico", L"$10.3" }, + { L"Strawberries", L"Red", L"California", L"$7" }, + { L"Cantaloupe", L"Orange", L"South america", L"$5" }, + }; + return cells[row % 5][column_id]; +} + +SkBitmap TableExample::GetIcon(int row) { + return row % 2 ? icon1_ : icon2_; +} + +void TableExample::SetObserver(ui::TableModelObserver* observer) {} + +void TableExample::OnSelectionChanged() { + PrintStatus(L"Selection changed"); +} + +void TableExample::OnDoubleClick() {} + +void TableExample::OnMiddleClick() {} + +void TableExample::OnKeyDown(ui::KeyboardCode virtual_keycode) {} + +void TableExample::OnTableViewDelete(views::TableView* table_view) {} + +void TableExample::OnTableView2Delete(views::TableView2* table_view) {} + +void TableExample::ButtonPressed(views::Button* sender, + const views::Event& event) { + int index = 0; + bool show = true; + if (sender == column1_visible_checkbox_) { + index = 0; + show = column1_visible_checkbox_->checked(); + } else if (sender == column2_visible_checkbox_) { + index = 1; + show = column2_visible_checkbox_->checked(); + } else if (sender == column3_visible_checkbox_) { + index = 2; + show = column3_visible_checkbox_->checked(); + } else if (sender == column4_visible_checkbox_) { + index = 3; + show = column4_visible_checkbox_->checked(); + } + table_->SetColumnVisibility(index, show); +} + +} // namespace examples diff --git a/views/examples/table_example.h b/views/examples/table_example.h index 081e0de..74b0227 100644 --- a/views/examples/table_example.h +++ b/views/examples/table_example.h @@ -6,162 +6,67 @@ #define VIEWS_EXAMPLES_TABLE_EXAMPLE_H_ #pragma once -#include <vector> +#include <string> -#include "base/string_util.h" -#include "third_party/skia/include/core/SkCanvas.h" +#include "base/basictypes.h" +#include "base/compiler_specific.h" +#include "third_party/skia/include/core/SkBitmap.h" #include "ui/base/models/table_model.h" +#include "views/controls/button/button.h" #include "views/controls/table/table_view.h" #include "views/controls/table/table_view_observer.h" #include "views/examples/example_base.h" -#include "views/layout/fill_layout.h" -#include "views/layout/grid_layout.h" + +namespace views { +class Checkbox; +class Event; +class TableView; +} namespace examples { class TableExample : public ExampleBase, public ui::TableModel, - public views::ButtonListener, - public views::TableViewObserver { + public views::TableViewObserver, + public views::ButtonListener { public: - explicit TableExample(ExamplesMain* main) : ExampleBase(main) { - } - - virtual ~TableExample() {} - - virtual std::wstring GetExampleTitle() { - return L"Table"; - } - - virtual void CreateExampleView(views::View* container) { - column1_visible_checkbox_ = new views::Checkbox(L"Fruit column visible"); - column1_visible_checkbox_->SetChecked(true); - column1_visible_checkbox_->set_listener(this); - column2_visible_checkbox_ = new views::Checkbox(L"Color column visible"); - column2_visible_checkbox_->SetChecked(true); - column2_visible_checkbox_->set_listener(this); - column3_visible_checkbox_ = new views::Checkbox(L"Origin column visible"); - column3_visible_checkbox_->SetChecked(true); - column3_visible_checkbox_->set_listener(this); - column4_visible_checkbox_ = new views::Checkbox(L"Price column visible"); - column4_visible_checkbox_->SetChecked(true); - column4_visible_checkbox_->set_listener(this); - - views::GridLayout* layout = new views::GridLayout(container); - container->SetLayoutManager(layout); - - std::vector<TableColumn> columns; - columns.push_back(TableColumn(0, L"Fruit", TableColumn::LEFT, 100)); - columns.push_back(TableColumn(1, L"Color", TableColumn::LEFT, 100)); - columns.push_back(TableColumn(2, L"Origin", TableColumn::LEFT, 100)); - columns.push_back(TableColumn(3, L"Price", TableColumn::LEFT, 100)); - table_ = new views::TableView(this, columns, views::ICON_AND_TEXT, - true, true, true); - table_->SetObserver(this); - icon1.setConfig(SkBitmap::kARGB_8888_Config, 16, 16); - icon1.allocPixels(); - SkCanvas canvas1(icon1); - canvas1.drawColor(SK_ColorRED); - - icon2.setConfig(SkBitmap::kARGB_8888_Config, 16, 16); - icon2.allocPixels(); - SkCanvas canvas2(icon2); - canvas2.drawColor(SK_ColorBLUE); - - views::ColumnSet* column_set = layout->AddColumnSet(0); - column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, 1, - views::GridLayout::USE_PREF, 0, 0); - layout->StartRow(1 /* expand */, 0); - layout->AddView(table_); - - column_set = layout->AddColumnSet(1); - column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, - 0.5f, views::GridLayout::USE_PREF, 0, 0); - column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, - 0.5f, views::GridLayout::USE_PREF, 0, 0); - column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, - 0.5f, views::GridLayout::USE_PREF, 0, 0); - column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, - 0.5f, views::GridLayout::USE_PREF, 0, 0); - - layout->StartRow(0 /* no expand */, 1); - - layout->AddView(column1_visible_checkbox_); - layout->AddView(column2_visible_checkbox_); - layout->AddView(column3_visible_checkbox_); - layout->AddView(column4_visible_checkbox_); - } - - // Overridden from ui::TableModel: - virtual int RowCount() { - return 10; - } - - virtual std::wstring GetText(int row, int column_id) { - std::wstring cells[5][5] = { - { L"Orange", L"Orange", L"South america", L"$5" }, - { L"Apple", L"Green", L"Canada", L"$3" }, - { L"Blue berries", L"Blue", L"Mexico", L"$10.3" }, - { L"Strawberries", L"Red", L"California", L"$7" }, - { L"Cantaloupe", L"Orange", L"South america", L"$5" }, - }; - return cells[row % 5][column_id]; - } - - virtual SkBitmap GetIcon(int row) { - return row % 2 ? icon1 : icon2; - } - - virtual void SetObserver(ui::TableModelObserver* observer) { - } - - // Overridden from views::TableViewObserver: - virtual void OnSelectionChanged() { - PrintStatus(L"Selection changed"); - } - - virtual void OnDoubleClick() {} - - virtual void OnMiddleClick() {} - - virtual void OnKeyDown(ui::KeyboardCode virtual_keycode) {} - - virtual void OnTableViewDelete(views::TableView* table_view) {} - - virtual void OnTableView2Delete(views::TableView2* table_view) {} - - // ButtonListener implementation: - virtual void ButtonPressed(views::Button* sender, const views::Event& event) { - int index = 0; - bool show = true; - if (sender == column1_visible_checkbox_) { - index = 0; - show = column1_visible_checkbox_->checked(); - } else if (sender == column2_visible_checkbox_) { - index = 1; - show = column2_visible_checkbox_->checked(); - } else if (sender == column3_visible_checkbox_) { - index = 2; - show = column3_visible_checkbox_->checked(); - } else if (sender == column4_visible_checkbox_) { - index = 3; - show = column4_visible_checkbox_->checked(); - } - table_->SetColumnVisibility(index, show); - } + explicit TableExample(ExamplesMain* main); + virtual ~TableExample(); + + // ExampleBase: + virtual std::wstring GetExampleTitle() OVERRIDE; + virtual void CreateExampleView(views::View* container) OVERRIDE; + + // ui::TableModel: + virtual int RowCount() OVERRIDE; + virtual std::wstring GetText(int row, int column_id) OVERRIDE; + virtual SkBitmap GetIcon(int row) OVERRIDE; + virtual void SetObserver(ui::TableModelObserver* observer) OVERRIDE; + + // views::TableViewObserver: + virtual void OnSelectionChanged() OVERRIDE; + virtual void OnDoubleClick() OVERRIDE; + virtual void OnMiddleClick() OVERRIDE; + virtual void OnKeyDown(ui::KeyboardCode virtual_keycode) OVERRIDE; + virtual void OnTableViewDelete(views::TableView* table_view) OVERRIDE; + virtual void OnTableView2Delete(views::TableView2* table_view) OVERRIDE; + + // views::ButtonListener: + virtual void ButtonPressed(views::Button* sender, + const views::Event& event) OVERRIDE; private: // The table to be tested. views::TableView* table_; - SkBitmap icon1; - SkBitmap icon2; - views::Checkbox* column1_visible_checkbox_; views::Checkbox* column2_visible_checkbox_; views::Checkbox* column3_visible_checkbox_; views::Checkbox* column4_visible_checkbox_; + SkBitmap icon1_; + SkBitmap icon2_; + DISALLOW_COPY_AND_ASSIGN(TableExample); }; diff --git a/views/views.gyp b/views/views.gyp index a148431..edb1804 100644 --- a/views/views.gyp +++ b/views/views.gyp @@ -546,9 +546,9 @@ '../skia/skia.gyp:skia', '../third_party/icu/icu.gyp:icui18n', '../third_party/icu/icu.gyp:icuuc', - 'views', '../ui/ui.gyp:ui_gfx', '../ui/ui.gyp:gfx_resources', + 'views', ], 'include_dirs': [ '..', @@ -620,6 +620,10 @@ 'include_dirs': [ '<(DEPTH)/third_party/wtl/include', ], + 'sources': [ + 'examples/table_example.cc', + 'examples/table_example.h', + ], }], ], }, |