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_COMBOBOX_EXAMPLE_H_
6#define UI_VIEWS_EXAMPLES_COMBOBOX_EXAMPLE_H_
7
8#include "base/macros.h"
9#include "ui/base/models/combobox_model.h"
10#include "ui/views/controls/combobox/combobox_listener.h"
11#include "ui/views/examples/example_base.h"
12
13namespace views {
14namespace examples {
15
16// A combobox model implementation that generates a list of "Item <index>".
17class VIEWS_EXAMPLES_EXPORT ComboboxModelExample : public ui::ComboboxModel {
18 public:
19  ComboboxModelExample();
20  virtual ~ComboboxModelExample();
21
22  // ui::ComboboxModel:
23  virtual int GetItemCount() const OVERRIDE;
24  virtual base::string16 GetItemAt(int index) OVERRIDE;
25
26 private:
27  DISALLOW_COPY_AND_ASSIGN(ComboboxModelExample);
28};
29
30class VIEWS_EXAMPLES_EXPORT ComboboxExample : public ExampleBase,
31                                              public ComboboxListener {
32 public:
33  ComboboxExample();
34  virtual ~ComboboxExample();
35
36  // ExampleBase:
37  virtual void CreateExampleView(View* container) OVERRIDE;
38
39 private:
40  // ComboboxListener:
41  virtual void OnPerformAction(Combobox* combobox) OVERRIDE;
42
43  ComboboxModelExample combobox_model_;
44  Combobox* combobox_;
45
46  DISALLOW_COPY_AND_ASSIGN(ComboboxExample);
47};
48
49}  // namespace examples
50}  // namespace views
51
52#endif  // UI_VIEWS_EXAMPLES_COMBOBOX_EXAMPLE_H_
53