///////////////////////////////////////////////////////////////////////////////
-// Name: src/osx/carbon/listbox.cpp
+// Name: src/osx/listbox_osx.cpp
// Purpose: wxListBox
// Author: Stefan Csomor
// Modified by:
#include "wx/dcclient.h"
#endif
-IMPLEMENT_DYNAMIC_CLASS(wxListBox, wxControlWithItems)
-
BEGIN_EVENT_TABLE(wxListBox, wxControl)
END_EVENT_TABLE()
const wxValidator& validator,
const wxString& name )
{
+ DontCreatePeer();
m_blockEvents = false;
- m_macIsUserPane = false;
+
+ if ( ! (style & wxNO_BORDER) )
+ style = (style & ~wxBORDER_MASK) | wxSUNKEN_BORDER ;
wxASSERT_MSG( !(style & wxLB_MULTIPLE) || !(style & wxLB_EXTENDED),
wxT("only a single listbox selection mode can be specified") );
else
m_strings.unsorted = new wxArrayString;
- m_peer = wxWidgetImpl::CreateListBox( this, parent, id, pos, size, style, GetExtraStyle() );
+ SetPeer(wxWidgetImpl::CreateListBox( this, parent, id, pos, size, style, GetExtraStyle() ));
MacPostControlCreate( pos, size );
m_blockEvents = false;
// make sure no native events get sent to a object in destruction
- wxDELETE(m_peer);
+ SetPeer(NULL);
if ( IsSorted() )
delete m_strings.sorted;
void wxListBox::DoSetFirstItem(int n)
{
+ // osx actually only has an implementation for ensuring the visibility of a row, it does so
+ // by scrolling the minimal amount necessary from the current scrolling position.
+ // in order to get the same behaviour I'd have to make sure first that the last line is visible,
+ // followed by a scrollRowToVisible for the desired line
+ GetListPeer()->ListScrollTo( GetCount()-1 );
GetListPeer()->ListScrollTo( n );
}
void wxListBox::OnItemInserted(unsigned int WXUNUSED(pos))
{
-
}
int wxListBox::DoInsertItems(const wxArrayStringsAdapter& items,