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