Home | History | Annotate | Download | only in examples
      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 base::string16 ComboboxModelExample::GetItemAt(int index) {
     26   return base::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::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