/////////////////////////////////////////////////////////////////////////////
-// Name: univ/combobox.cpp
+// Name: src/univ/combobox.cpp
// Purpose: wxComboControl and wxComboBox implementation
// Author: Vadim Zeitlin
// Modified by:
// headers
// ----------------------------------------------------------------------------
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
- #pragma implementation "univcombobox.h"
-#endif
-
#include "wx/wxprec.h"
#ifdef __BORLANDC__
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;
// 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;
case WXK_ESCAPE:
case WXK_PAGEDOWN:
case WXK_PAGEUP:
- case WXK_PRIOR:
- case WXK_NEXT:
(void)m_combo->ProcessEvent(event);
return;
}
// always matches), but we want to show the first one in such case
if ( value.empty() )
{
- if ( GetCount() )
+ if ( GetCount() > 0 )
{
wxListBox::SetSelection(0);
}
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()
// 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 )
GetText()->SetValue(wxEmptyString);
}
-void wxComboBox::Delete(int n)
+void wxComboBox::Delete(unsigned 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)
+ if (GetSelection() == (int)n)
GetText()->SetValue(wxEmptyString);
GetLBox()->Delete(n);
}
-int wxComboBox::GetCount() const
+unsigned int wxComboBox::GetCount() const
{
return GetLBox()->GetCount();
}
-wxString wxComboBox::GetString(int n) const
+wxString wxComboBox::GetString(unsigned 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)
+void wxComboBox::SetString(unsigned 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::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));
return GetLBox()->Append(item);
}
-int wxComboBox::DoInsert(const wxString& item, int pos)
+int wxComboBox::DoInsert(const wxString& item, unsigned 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())
return DoAppend(item);
return pos;
}
-void wxComboBox::DoSetItemClientData(int n, void* clientData)
+void wxComboBox::DoSetItemClientData(unsigned int n, void* clientData)
{
GetLBox()->SetClientData(n, clientData);
}
-void *wxComboBox::DoGetItemClientData(int n) const
+void *wxComboBox::DoGetItemClientData(unsigned int n) const
{
return GetLBox()->GetClientData(n);
}
-void wxComboBox::DoSetItemClientObject(int n, wxClientData* clientData)
+void wxComboBox::DoSetItemClientObject(unsigned int n, wxClientData* clientData)
{
GetLBox()->SetClientObject(n, clientData);
}
-wxClientData* wxComboBox::DoGetItemClientObject(int n) const
+wxClientData* wxComboBox::DoGetItemClientObject(unsigned int n) const
{
return GetLBox()->GetClientObject(n);
}