// headers
// ----------------------------------------------------------------------------
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "listboxbase.h"
#endif
#pragma hdrstop
#endif
+#if wxUSE_LISTBOX
+
#ifndef WX_PRECOMP
#include "wx/listbox.h"
+ #include "wx/dynarray.h"
+ #include "wx/arrstr.h"
#endif
// ============================================================================
// implementation
// ============================================================================
+wxListBoxBase::~wxListBoxBase()
+{
+ // this destructor is required for Darwin
+}
+
// ----------------------------------------------------------------------------
// adding items
// ----------------------------------------------------------------------------
return TRUE;
}
+void wxListBoxBase::DeselectAll(int itemToLeaveSelected)
+{
+ if ( HasMultipleSelection() )
+ {
+ wxArrayInt selections;
+ GetSelections(selections);
+
+ size_t count = selections.GetCount();
+ for ( size_t n = 0; n < count; n++ )
+ {
+ int item = selections[n];
+ if ( item != itemToLeaveSelected )
+ Deselect(item);
+ }
+ }
+ else // single selection
+ {
+ int sel = GetSelection();
+ if ( sel != -1 && sel != itemToLeaveSelected )
+ {
+ Deselect(sel);
+ }
+ }
+}
+
// ----------------------------------------------------------------------------
// misc
// ----------------------------------------------------------------------------
void wxListBoxBase::Command(wxCommandEvent& event)
{
- SetSelection(event.m_commandInt, event.m_extraLong);
+ SetSelection(event.m_commandInt, event.m_extraLong != 0);
(void)ProcessEvent(event);
}
+// ----------------------------------------------------------------------------
+// SetFirstItem() and such
+// ----------------------------------------------------------------------------
+
void wxListBoxBase::SetFirstItem(const wxString& s)
{
int n = FindString(s);
DoSetFirstItem(n);
}
+
+void wxListBoxBase::AppendAndEnsureVisible(const wxString& s)
+{
+ Append(s);
+ EnsureVisible(GetCount() - 1);
+}
+
+void wxListBoxBase::EnsureVisible(int WXUNUSED(n))
+{
+ // the base class version does nothing (the only alternative would be to
+ // call SetFirstItem() but this is probably even more stupid)
+}
+
+#endif // wxUSE_LISTBOX