switch ( event.m_keyCode )
{
case WXK_RETURN:
- if ( !AcceptChanges() )
+ if ( AcceptChanges() )
{
- // vetoed by the user code
- break;
+ // Close the text control, changes were accepted
+ Finish();
}
- //else: fall through
+ // else do nothing, do not accept and do not close
+
+ break;
case WXK_ESCAPE:
Finish();
long wxListMainWindow::FindItem( const wxPoint& pt )
{
- wxPoint p;
- long topItem = GetTopItem();
+ size_t topItem;
+ GetVisibleLinesRange(&topItem, NULL);
- GetItemPosition( GetItemCount()-1, p );
- if( p.y == 0 )
- return topItem;
- long id = (long) floor( pt.y*(GetItemCount()-topItem-1)/p.y+topItem );
- if( id >= 0 && id < (long)GetItemCount() )
- return id;
+ wxPoint p;
+ GetItemPosition( GetItemCount()-1, p );
+ if( p.y == 0 )
+ return topItem;
+ long id = (long) floor( pt.y*double(GetItemCount()-topItem-1)/p.y+topItem );
+ if( id >= 0 && id < (long)GetItemCount() )
+ return id;
- return wxNOT_FOUND;
+ return wxNOT_FOUND;
}
long wxListMainWindow::HitTest( int x, int y, int &flags )
m_mainWin = new wxListMainWindow( this, wxID_ANY, wxPoint(0,0), size, style );
#if defined( __WXMAC__ ) && __WXMAC_CARBON__
- wxFont font ;
- font.MacCreateThemeFont( kThemeViewsFont ) ;
- SetFont( font ) ;
+ // Human Interface Guidelines ask us for a special font in this case
+ if ( GetWindowVariant() == wxWINDOW_VARIANT_NORMAL )
+ {
+ wxFont font ;
+ font.MacCreateThemeFont( kThemeViewsFont ) ;
+ SetFont( font ) ;
+ }
#endif
if ( InReportView() )
{
m_mainWin->SetFocus();
}
+wxSize wxGenericListCtrl::DoGetBestSize() const
+{
+ // Something is better than nothing...
+ // 100x80 is what the MSW version will get from the default
+ // wxControl::DoGetBestSize
+ return wxSize(100,80);
+}
+
// ----------------------------------------------------------------------------
// virtual list control support
// ----------------------------------------------------------------------------