diff options
author | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-27 20:01:38 +0000 |
---|---|---|
committer | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-27 20:01:38 +0000 |
commit | 7d57af82a5471bcd8210361cbdcf3cce464ae74e (patch) | |
tree | d7419191a775a254cd12e2d78f121c0652b6a6cb /ui/views | |
parent | 47b541d98397df0e1e608fec34ec10e427d6255c (diff) | |
download | chromium_src-7d57af82a5471bcd8210361cbdcf3cce464ae74e.zip chromium_src-7d57af82a5471bcd8210361cbdcf3cce464ae74e.tar.gz chromium_src-7d57af82a5471bcd8210361cbdcf3cce464ae74e.tar.bz2 |
views: Fix memory leak in ComboboxExample.
R=sky@chromium.org
Review URL: https://chromiumcodereview.appspot.com/9834076
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@129249 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/views')
-rw-r--r-- | ui/views/examples/combobox_example.cc | 40 | ||||
-rw-r--r-- | ui/views/examples/combobox_example.h | 18 |
2 files changed, 34 insertions, 24 deletions
diff --git a/ui/views/examples/combobox_example.cc b/ui/views/examples/combobox_example.cc index f392383..795e0c55 100644 --- a/ui/views/examples/combobox_example.cc +++ b/ui/views/examples/combobox_example.cc @@ -6,41 +6,34 @@ #include "base/stringprintf.h" #include "base/utf_string_conversions.h" -#include "ui/base/models/combobox_model.h" #include "ui/views/controls/combobox/combobox.h" #include "ui/views/layout/fill_layout.h" -namespace { - -// An sample combobox model that generates list of "Item <index>". -class ComboboxModelExample : public ui::ComboboxModel { - public: - ComboboxModelExample() {} - virtual ~ComboboxModelExample() {} +namespace views { +namespace examples { - // Overridden from ui::ComboboxModel: - virtual int GetItemCount() const OVERRIDE { return 10; } - virtual string16 GetItemAt(int index) OVERRIDE { - return UTF8ToUTF16(base::StringPrintf("Item %d", index)); - } +ComboboxModelExample::ComboboxModelExample() { +} - private: - DISALLOW_COPY_AND_ASSIGN(ComboboxModelExample); -}; +ComboboxModelExample::~ComboboxModelExample() { +} -} // namespace +int ComboboxModelExample::GetItemCount() const { + return 10; +} -namespace views { -namespace examples { +string16 ComboboxModelExample::GetItemAt(int index) { + return UTF8ToUTF16(base::StringPrintf("Item %d", index)); +} -ComboboxExample::ComboboxExample() : ExampleBase("Combo Box") { +ComboboxExample::ComboboxExample() : ExampleBase("Combo Box"), combobox_(NULL) { } ComboboxExample::~ComboboxExample() { } void ComboboxExample::CreateExampleView(View* container) { - combobox_ = new Combobox(new ComboboxModelExample()); + combobox_ = new Combobox(&combobox_model_); combobox_->set_listener(this); combobox_->SetSelectedItem(3); @@ -51,8 +44,9 @@ void ComboboxExample::CreateExampleView(View* container) { void ComboboxExample::ItemChanged(Combobox* combo_box, int prev_index, int new_index) { - PrintStatus("Selected: index=%d, label=%s", - new_index, UTF16ToUTF8(combo_box->model()->GetItemAt(new_index)).c_str()); + DCHECK_EQ(combobox_, combo_box); + PrintStatus("Selected: %s", + UTF16ToUTF8(combobox_model_.GetItemAt(new_index)).c_str()); } } // namespace examples diff --git a/ui/views/examples/combobox_example.h b/ui/views/examples/combobox_example.h index d57038f..57954fb 100644 --- a/ui/views/examples/combobox_example.h +++ b/ui/views/examples/combobox_example.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -8,12 +8,27 @@ #include "base/basictypes.h" #include "base/compiler_specific.h" +#include "ui/base/models/combobox_model.h" #include "ui/views/controls/combobox/combobox_listener.h" #include "ui/views/examples/example_base.h" namespace views { namespace examples { +// A combobox model implementation that generates a list of "Item <index>". +class ComboboxModelExample : public ui::ComboboxModel { + public: + ComboboxModelExample(); + virtual ~ComboboxModelExample(); + + // Overridden from ui::ComboboxModel: + virtual int GetItemCount() const OVERRIDE; + virtual string16 GetItemAt(int index) OVERRIDE; + + private: + DISALLOW_COPY_AND_ASSIGN(ComboboxModelExample); +}; + class ComboboxExample : public ExampleBase, public ComboboxListener { public: ComboboxExample(); @@ -28,6 +43,7 @@ class ComboboxExample : public ExampleBase, public ComboboxListener { int prev_index, int new_index) OVERRIDE; + ComboboxModelExample combobox_model_; Combobox* combobox_; DISALLOW_COPY_AND_ASSIGN(ComboboxExample); |