- add sources.
[platform/framework/web/crosswalk.git] / src / ui / views / examples / combobox_example.cc
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
12 namespace views {
13 namespace examples {
14
15 ComboboxModelExample::ComboboxModelExample() {
16 }
17
18 ComboboxModelExample::~ComboboxModelExample() {
19 }
20
21 int ComboboxModelExample::GetItemCount() const {
22   return 10;
23 }
24
25 string16 ComboboxModelExample::GetItemAt(int index) {
26   return UTF8ToUTF16(base::StringPrintf("Item %d", index));
27 }
28
29 ComboboxExample::ComboboxExample() : ExampleBase("Combo Box"), combobox_(NULL) {
30 }
31
32 ComboboxExample::~ComboboxExample() {
33   // Delete |combobox_| first as it references |combobox_model_|.
34   delete combobox_;
35   combobox_ = NULL;
36 }
37
38 void 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
47 void ComboboxExample::OnSelectedIndexChanged(Combobox* combobox) {
48   DCHECK_EQ(combobox_, combobox);
49   PrintStatus("Selected: %s", UTF16ToUTF8(combobox_model_.GetItemAt(
50       combobox->selected_index())).c_str());
51 }
52
53 }  // namespace examples
54 }  // namespace views