/////////////////////////////////////////////////////////////////////////////
-// Name: univ/listbox.cpp
+// Name: src/univ/listbox.cpp
// Purpose: wxListBox implementation
// Author: Vadim Zeitlin
// Modified by:
// headers
// ----------------------------------------------------------------------------
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
- #pragma implementation "univlistbox.h"
-#endif
-
#include "wx/wxprec.h"
#ifdef __BORLANDC__
long style,
const wxValidator& validator,
const wxString &name)
+ :wxScrollHelper(this)
{
Init();
validator, name) )
return false;
- SetWindow(this);
-
m_strings = new wxArrayString;
Set(n, choices);
void wxListBox::Delete(int n)
{
- wxCHECK_RET( n >= 0 && n < GetCount(),
+ wxCHECK_RET( IsValid(n),
_T("invalid index in wxListBox::Delete") );
// do it before removing the index as otherwise the last item will not be
// selection
// ----------------------------------------------------------------------------
-void wxListBox::SetSelection(int n, bool select)
+void wxListBox::DoSetSelection(int n, bool select)
{
if ( select )
{
int wxListBox::GetSelection() const
{
- wxCHECK_MSG( !HasMultipleSelection(), -1,
+ wxCHECK_MSG( !HasMultipleSelection(), wxNOT_FOUND,
_T("use wxListBox::GetSelections for ths listbox") );
- return m_selections.IsEmpty() ? -1 : m_selections[0];
+ return m_selections.IsEmpty() ? wxNOT_FOUND : m_selections[0];
}
int wxCMPFUNC_CONV wxCompareInts(int *n, int *m)
wxSize size = GetClientSize();
// is our height enough to show all items?
- int nLines = GetCount();
+ size_t nLines = GetCount();
wxCoord lineHeight = GetLineHeight();
- bool showScrollbarY = nLines*lineHeight > size.y;
+ bool showScrollbarY = (int)nLines*lineHeight > size.y;
// check the width too if required
wxCoord charWidth, maxWidth;
bool wxListBox::FindItem(const wxString& prefix, bool strictlyAfter)
{
- int count = GetCount();
- if ( !count )
+ size_t count = GetCount();
+ if ( count==0 )
{
// empty listbox, we can't find anything in it
return false;
{
// the following line will set first correctly to 0 if there is no
// selection (m_current == -1)
- first = m_current == count - 1 ? 0 : m_current + 1;
+ first = m_current == (int)(count - 1) ? 0 : m_current + 1;
}
else // start with the current
{
int last = first == 0 ? count - 1 : first - 1;
// if this is not true we'd never exit from the loop below!
- wxASSERT_MSG( first < count && last < count, _T("logic error") );
+ wxASSERT_MSG( first < (int)count && last < (int)count, _T("logic error") );
// precompute it outside the loop
size_t len = prefix.length();
// loop over all items in the listbox
- for ( int item = first; item != last; item < count - 1 ? item++ : item = 0 )
+ for ( int item = first; item != (int)last; item < (int)(count - 1) ? item++ : item = 0 )
{
if ( wxStrnicmp(this->GetString(item).c_str(), prefix, len) == 0 )
{
SetSelection(n);
}
- int count = GetCount();
- for ( ; n < count; n++ )
+ size_t count = GetCount();
+ for ( ; n < (int)count; n++ )
{
Deselect(n);
}
// mouse is above the first item
item = 0;
}
- else if ( item >= lbox->GetCount() )
+ else if ( (size_t)item >= lbox->GetCount() )
{
// mouse is below the last item
item = lbox->GetCount() - 1;
bool wxStdListboxInputHandler::IsValidIndex(const wxListBox *lbox, int item)
{
- return item >= 0 && item < lbox->GetCount();
+ return item >= 0 && (size_t)item < lbox->GetCount();
}
wxControlAction