// Author: Vadim Zeitlin
// Modified by:
// Created: 31.05.03
-// RCS-ID: $Id$
// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwindows.org>
-// License: wxWindows license
+// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// ============================================================================
{
// it is, indeed, only partly visible, so scroll it into view to
// make it entirely visible
+ // BUT scrolling down when m_current is first visible makes it
+ // completely hidden, so that is even worse
while ( (size_t)m_current + 1 == GetVisibleRowsEnd() &&
+ (size_t)m_current != GetVisibleRowsBegin() &&
ScrollToRow(GetVisibleBegin() + 1) ) ;
// but in any case refresh it as even if it was only partly visible
wxASSERT_MSG( m_current != wxNOT_FOUND,
wxT("SendSelectedEvent() shouldn't be called") );
- wxCommandEvent event(wxEVT_COMMAND_LISTBOX_SELECTED, GetId());
+ wxCommandEvent event(wxEVT_LISTBOX, GetId());
InitEvent(event, m_current);
(void)GetEventHandler()->ProcessEvent(event);
}
switch ( event.GetKeyCode() )
{
case WXK_HOME:
+ case WXK_NUMPAD_HOME:
current = 0;
break;
case WXK_END:
+ case WXK_NUMPAD_END:
current = GetRowCount() - 1;
break;
case WXK_DOWN:
+ case WXK_NUMPAD_DOWN:
if ( m_current == (int)GetRowCount() - 1 )
return;
break;
case WXK_UP:
+ case WXK_NUMPAD_UP:
if ( m_current == wxNOT_FOUND )
current = GetRowCount() - 1;
else if ( m_current != 0 )
break;
case WXK_PAGEDOWN:
+ case WXK_NUMPAD_PAGEDOWN:
PageDown();
current = GetVisibleBegin();
break;
case WXK_PAGEUP:
+ case WXK_NUMPAD_PAGEUP:
if ( m_current == (int)GetVisibleBegin() )
{
PageUp();
// this event as a left-click instead
if ( item == m_current )
{
- wxCommandEvent event(wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, GetId());
+ wxCommandEvent event(wxEVT_LISTBOX_DCLICK, GetId());
InitEvent(event, item);
(void)GetEventHandler()->ProcessEvent(event);
}