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 3// found in the LICENSE file. 4 5#ifndef UI_VIEWS_EXAMPLES_TABLE_EXAMPLE_H_ 6#define UI_VIEWS_EXAMPLES_TABLE_EXAMPLE_H_ 7 8#include <string> 9 10#include "base/basictypes.h" 11#include "base/compiler_specific.h" 12#include "third_party/skia/include/core/SkBitmap.h" 13#include "ui/base/models/table_model.h" 14#include "ui/views/controls/button/button.h" 15#include "ui/views/controls/table/table_grouper.h" 16#include "ui/views/controls/table/table_view.h" 17#include "ui/views/controls/table/table_view_observer.h" 18#include "ui/views/examples/example_base.h" 19 20namespace gfx { 21class ImageSkia; 22} 23 24namespace views { 25class Checkbox; 26class TableView; 27 28namespace examples { 29 30class TableExample : public ExampleBase, 31 public ui::TableModel, 32 public TableGrouper, 33 public TableViewObserver, 34 public ButtonListener { 35 public: 36 TableExample(); 37 virtual ~TableExample(); 38 39 // ExampleBase: 40 virtual void CreateExampleView(View* container) OVERRIDE; 41 42 // ui::TableModel: 43 virtual int RowCount() OVERRIDE; 44 virtual string16 GetText(int row, int column_id) OVERRIDE; 45 virtual gfx::ImageSkia GetIcon(int row) OVERRIDE; 46 virtual void SetObserver(ui::TableModelObserver* observer) OVERRIDE; 47 48 // TableGrouper: 49 virtual void GetGroupRange(int model_index, GroupRange* range) OVERRIDE; 50 51 // TableViewObserver: 52 virtual void OnSelectionChanged() OVERRIDE; 53 virtual void OnDoubleClick() OVERRIDE; 54 virtual void OnMiddleClick() OVERRIDE; 55 virtual void OnKeyDown(ui::KeyboardCode virtual_keycode) OVERRIDE; 56 57 // ButtonListener: 58 virtual void ButtonPressed(Button* sender, const ui::Event& event) OVERRIDE; 59 60 private: 61 // The table to be tested. 62 TableView* table_; 63 64 Checkbox* column1_visible_checkbox_; 65 Checkbox* column2_visible_checkbox_; 66 Checkbox* column3_visible_checkbox_; 67 Checkbox* column4_visible_checkbox_; 68 69 SkBitmap icon1_; 70 SkBitmap icon2_; 71 72 DISALLOW_COPY_AND_ASSIGN(TableExample); 73}; 74 75} // namespace examples 76} // namespace views 77 78#endif // UI_VIEWS_EXAMPLES_TABLE_EXAMPLE_H_ 79