X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/065722d7b13d2dde15f536591f80567c489c561a..dd91da4ed1e9d2ba5d3bc2fae64a8e4ea86b5d41:/src/univ/listbox.cpp diff --git a/src/univ/listbox.cpp b/src/univ/listbox.cpp index 65c41bc9df..7ae71b51fe 100644 --- a/src/univ/listbox.cpp +++ b/src/univ/listbox.cpp @@ -101,7 +101,14 @@ bool wxListBox::Create(wxWindow *parent, if ( !(style & (wxLB_MULTIPLE | wxLB_EXTENDED)) ) style |= wxLB_SINGLE; - if ( !wxControl::Create(parent, id, pos, size, style | wxVSCROLL , wxDefaultValidator, name) ) +#if wxUSE_TWO_WINDOWS + style |= wxVSCROLL|wxHSCROLL; + if ((style & wxBORDER_MASK) == 0) + style |= wxBORDER_SUNKEN; +#endif + + if ( !wxControl::Create(parent, id, pos, size, style, + wxDefaultValidator, name) ) return FALSE; SetWindow(this); @@ -120,6 +127,8 @@ bool wxListBox::Create(wxWindow *parent, wxListBox::~wxListBox() { + // call this just to free the client data -- and avoid leaking memory + DoClear(); } // ---------------------------------------------------------------------------- @@ -265,7 +274,8 @@ void wxListBox::Clear() void wxListBox::Delete(int n) { - wxCHECK_RET( n < GetCount(), _T("invalid index in wxListBox::Delete") ); + wxCHECK_RET( n >= 0 && n < GetCount(), + _T("invalid index in wxListBox::Delete") ); // do it before removing the index as otherwise the last item will not be // refreshed (as GetCount() will be decremented) @@ -1000,7 +1010,7 @@ void wxListBox::ExtendSelection(int itemTo) } } -void wxListBox::Select(bool sel, int item) +void wxListBox::DoSelect(int item, bool sel) { if ( item != -1 ) { @@ -1020,7 +1030,7 @@ void wxListBox::Select(bool sel, int item) void wxListBox::SelectAndNotify(int item) { - Select(TRUE, item); + DoSelect(item); SendEvent(wxEVT_COMMAND_LISTBOX_SELECTED); } @@ -1039,7 +1049,7 @@ void wxListBox::Activate(int item) if ( item != -1 ) { - Select(TRUE, item); + DoSelect(item); SendEvent(wxEVT_COMMAND_LISTBOX_DOUBLECLICKED); } @@ -1082,7 +1092,7 @@ bool wxListBox::PerformAction(const wxControlAction& action, item = m_current; if ( IsSelected(item) ) - Unselect(item); + DoUnselect(item); else SelectAndNotify(item); } @@ -1093,12 +1103,12 @@ bool wxListBox::PerformAction(const wxControlAction& action, if ( strArg.empty() ) SelectAndNotify(item); else - Select(TRUE, item); + DoSelect(item); } else if ( action == wxACTION_LISTBOX_SELECTADD ) - Select(TRUE, item); + DoSelect(item); else if ( action == wxACTION_LISTBOX_UNSELECT ) - Select(FALSE, item); + DoUnselect(item); else if ( action == wxACTION_LISTBOX_MOVEDOWN ) ChangeCurrent(1); else if ( action == wxACTION_LISTBOX_MOVEUP )