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#include "ui/views/examples/combobox_example.h"
6
7#include "base/strings/stringprintf.h"
8#include "base/strings/utf_string_conversions.h"
9#include "ui/views/controls/combobox/combobox.h"
10#include "ui/views/layout/fill_layout.h"
11
12namespace views {
13namespace examples {
14
15ComboboxModelExample::ComboboxModelExample() {
16}
17
18ComboboxModelExample::~ComboboxModelExample() {
19}
20
21int ComboboxModelExample::GetItemCount() const {
22  return 10;
23}
24
25base::string16 ComboboxModelExample::GetItemAt(int index) {
26  return base::UTF8ToUTF16(base::StringPrintf("Item %d", index));
27}
28
29ComboboxExample::ComboboxExample() : ExampleBase("Combo Box"), combobox_(NULL) {
30}
31
32ComboboxExample::~ComboboxExample() {
33  // Delete |combobox_| first as it references |combobox_model_|.
34  delete combobox_;
35  combobox_ = NULL;
36}
37
38void ComboboxExample::CreateExampleView(View* container) {
39  combobox_ = new Combobox(&combobox_model_);
40  combobox_->set_listener(this);
41  combobox_->SetSelectedIndex(3);
42
43  container->SetLayoutManager(new FillLayout);
44  container->AddChildView(combobox_);
45}
46
47void ComboboxExample::OnPerformAction(Combobox* combobox) {
48  DCHECK_EQ(combobox_, combobox);
49  PrintStatus("Selected: %s", base::UTF16ToUTF8(combobox_model_.GetItemAt(
50      combobox->selected_index())).c_str());
51}
52
53}  // namespace examples
54}  // namespace views
55