• 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 #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 
ComboboxModelExample()15 ComboboxModelExample::ComboboxModelExample() {
16 }
17 
~ComboboxModelExample()18 ComboboxModelExample::~ComboboxModelExample() {
19 }
20 
GetItemCount() const21 int ComboboxModelExample::GetItemCount() const {
22   return 10;
23 }
24 
GetItemAt(int index)25 base::string16 ComboboxModelExample::GetItemAt(int index) {
26   return base::UTF8ToUTF16(base::StringPrintf("Item %d", index));
27 }
28 
ComboboxExample()29 ComboboxExample::ComboboxExample() : ExampleBase("Combo Box"), combobox_(NULL) {
30 }
31 
~ComboboxExample()32 ComboboxExample::~ComboboxExample() {
33   // Delete |combobox_| first as it references |combobox_model_|.
34   delete combobox_;
35   combobox_ = NULL;
36 }
37 
CreateExampleView(View * container)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 
OnPerformAction(Combobox * combobox)47 void 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