Index: views/controls/listbox/listbox.cc |
=================================================================== |
--- views/controls/listbox/listbox.cc (revision 0) |
+++ views/controls/listbox/listbox.cc (revision 0) |
@@ -0,0 +1,58 @@ |
+// Copyright (c) 2010 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. |
+ |
+#include "views/controls/listbox/listbox.h" |
+ |
+#include "views/controls/listbox/native_listbox_wrapper.h" |
+#include "views/controls/native/native_view_host.h" |
+#include "views/fill_layout.h" |
+ |
+namespace views { |
+ |
+// Listbox ------------------------------------------------------------------ |
+ |
+Listbox::Listbox( |
+ const std::vector<string16>& strings, Listbox::Listener* listener) |
+ : strings_(strings), |
+ listener_(listener), |
+ native_wrapper_(NULL) { |
+ SetLayoutManager(new FillLayout()); |
+} |
+ |
+Listbox::~Listbox() { |
+} |
+ |
+int Listbox::GetRowCount() const { |
+ return static_cast<int>(strings_.size()); |
+} |
+ |
+int Listbox::SelectedRow() const { |
+ if (!native_wrapper_) |
+ return -1; |
+ return native_wrapper_->SelectedRow(); |
+} |
+ |
+void Listbox::SelectRow(int model_row) { |
+ if (!native_wrapper_) |
+ return; |
+ native_wrapper_->SelectRow(model_row); |
+} |
+ |
+void Listbox::ViewHierarchyChanged(bool is_add, View* parent, View* child) { |
+ if (is_add && !native_wrapper_ && GetWidget()) { |
+ // The native wrapper's lifetime will be managed by the view hierarchy after |
+ // we call AddChildView. |
+ native_wrapper_ = CreateWrapper(); |
+ AddChildView(native_wrapper_->GetView()); |
+ } |
+} |
+ |
+//////////////////////////////////////////////////////////////////////////////// |
+// Listbox, protected: |
+ |
+NativeListboxWrapper* Listbox::CreateWrapper() { |
+ return NativeListboxWrapper::CreateNativeWrapper(this, strings_, listener_); |
+} |
+ |
+} // namespace views |
Property changes on: views\controls\listbox\listbox.cc |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |