X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/150e31d2088687cbfbab548f9e98918f8683d9b5..d14e03f5b719ce6dbe4a0e81b22ae8436bd230ae:/src/univ/combobox.cpp diff --git a/src/univ/combobox.cpp b/src/univ/combobox.cpp index 20a06a61d4..43e9e55172 100644 --- a/src/univ/combobox.cpp +++ b/src/univ/combobox.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: univ/combobox.cpp +// Name: src/univ/combobox.cpp // Purpose: wxComboControl and wxComboBox implementation // Author: Vadim Zeitlin // Modified by: @@ -17,10 +17,6 @@ // headers // ---------------------------------------------------------------------------- -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "univcombobox.h" -#endif - #include "wx/wxprec.h" #ifdef __BORLANDC__ @@ -122,13 +118,20 @@ public: virtual ~wxComboListBox(); // implement wxComboPopup methods - virtual bool SetSelection(const wxString& value); - virtual void SetSelection(int n, bool select) - { wxListBox::SetSelection( n, select); }; + virtual bool SetSelection(const wxString& s); virtual wxControl *GetControl() { return this; } virtual void OnShow(); virtual wxCoord GetBestWidth() const; + // fix virtual function hiding + virtual void SetSelection(int n) { DoSetSelection(n, true); } + void SetSelection(int n, bool select) { DoSetSelection(n, select); } + + // used to process wxUniv actions + bool PerformAction(const wxControlAction& action, + long numArg, + const wxString& strArg); + protected: // we shouldn't return height too big from here virtual wxSize DoGetBestClientSize() const; @@ -142,11 +145,6 @@ protected: // called whenever the user selects or activates a listbox item void OnSelect(wxCommandEvent& event); - // used to process wxUniv actions - bool PerformAction(const wxControlAction& action, - long numArg, - const wxString& strArg); - private: // has the mouse been released on this control? bool m_clicked; @@ -542,7 +540,7 @@ bool wxComboListBox::SetSelection(const wxString& value) // always matches), but we want to show the first one in such case if ( value.empty() ) { - if ( GetCount() ) + if ( GetCount() > 0 ) { wxListBox::SetSelection(0); } @@ -574,7 +572,7 @@ void wxComboListBox::OnSelect(wxCommandEvent& event) event2.SetId(m_combo->GetId()); m_combo->ProcessEvent(event2); } - //else: ignore the events resultign from just moving the mouse initially + //else: ignore the events resulting from just moving the mouse initially } void wxComboListBox::OnShow() @@ -612,7 +610,7 @@ void wxComboListBox::OnMouseMove(wxMouseEvent& event) // while a wxComboListBox is shown, it always has capture, so if it doesn't // we're about to go away anyhow (normally this shouldn't happen at all, // but I don't put assert here as it just might do on other platforms and - // it doesn't break anythign anyhow) + // it doesn't break anything anyhow) if ( this == wxWindow::GetCapture() ) { if ( HitTest(event.GetPosition()) == wxHT_WINDOW_INSIDE ) @@ -763,7 +761,7 @@ long wxComboBox::GetInsertionPoint() const return GetText()->GetInsertionPoint(); } -long wxComboBox::GetLastPosition() const +wxTextPos wxComboBox::GetLastPosition() const { return GetText()->GetLastPosition(); } @@ -800,7 +798,7 @@ void wxComboBox::Clear() void wxComboBox::Delete(int n) { - wxCHECK_RET( (n >= 0) && (n < GetCount()), _T("invalid index in wxComboBox::Delete") ); + wxCHECK_RET( IsValid(n), _T("invalid index in wxComboBox::Delete") ); if (GetSelection() == n) GetText()->SetValue(wxEmptyString); @@ -808,33 +806,33 @@ void wxComboBox::Delete(int n) GetLBox()->Delete(n); } -int wxComboBox::GetCount() const +size_t wxComboBox::GetCount() const { return GetLBox()->GetCount(); } wxString wxComboBox::GetString(int n) const { - wxCHECK_MSG( (n >= 0) && (n < GetCount()), wxEmptyString, _T("invalid index in wxComboBox::GetString") ); + wxCHECK_MSG( IsValid(n), wxEmptyString, _T("invalid index in wxComboBox::GetString") ); return GetLBox()->GetString(n); } void wxComboBox::SetString(int n, const wxString& s) { - wxCHECK_RET( (n >= 0) && (n < GetCount()), _T("invalid index in wxComboBox::SetString") ); + wxCHECK_RET( IsValid(n), _T("invalid index in wxComboBox::SetString") ); GetLBox()->SetString(n, s); } -int wxComboBox::FindString(const wxString& s) const +int wxComboBox::FindString(const wxString& s, bool bCase) const { - return GetLBox()->FindString(s); + return GetLBox()->FindString(s, bCase); } -void wxComboBox::Select(int n) +void wxComboBox::SetSelection(int n) { - wxCHECK_RET( (n >= 0) && (n < GetCount()), _T("invalid index in wxComboBox::Select") ); + wxCHECK_RET( IsValid(n), _T("invalid index in wxComboBox::Select") ); GetLBox()->SetSelection(n); GetText()->SetValue(GetLBox()->GetString(n)); @@ -861,9 +859,9 @@ int wxComboBox::DoAppend(const wxString& item) int wxComboBox::DoInsert(const wxString& item, int pos) { wxCHECK_MSG(!(GetWindowStyle() & wxCB_SORT), -1, wxT("can't insert into sorted list")); - wxCHECK_MSG((pos>=0) && (pos<=GetCount()), -1, wxT("invalid index")); + wxCHECK_MSG(IsValidInsert(pos), -1, wxT("invalid index")); - if (pos == GetCount()) + if ((size_t)pos == GetCount()) return DoAppend(item); GetLBox()->Insert(item, pos); @@ -892,7 +890,7 @@ wxClientData* wxComboBox::DoGetItemClientObject(int n) const bool wxComboBox::IsEditable() const { - return GetText() != NULL && (!HasFlag(wxCB_READONLY) || GetText()->IsEditable()); + return GetText() != NULL && (!HasFlag(wxCB_READONLY) || GetText()->IsEditable()); } void wxComboBox::Undo()