#if wxUSE_LISTBOX
+#include "wx/vlbox.h"
+
#ifndef WX_PRECOMP
#include "wx/settings.h"
#include "wx/dcclient.h"
+ #include "wx/listbox.h"
#endif //WX_PRECOMP
-#include "wx/vlbox.h"
#include "wx/dcbuffer.h"
#include "wx/selstore.h"
m_current =
m_anchor = wxNOT_FOUND;
m_selStore = NULL;
- m_doubleBuffer = NULL;
}
bool wxVListBox::Create(wxWindow *parent,
wxVListBox::~wxVListBox()
{
- delete m_doubleBuffer;
delete m_selStore;
}
if ( HasMultipleSelection() )
{
- Select(selection);
+ if (selection != wxNOT_FOUND)
+ Select(selection);
+ else
+ DeselectAll();
m_anchor = selection;
}
void wxVListBox::OnPaint(wxPaintEvent& WXUNUSED(event))
{
- // If size is larger, recalculate double buffer bitmap
wxSize clientSize = GetClientSize();
- if ( !m_doubleBuffer ||
- clientSize.x > m_doubleBuffer->GetWidth() ||
- clientSize.y > m_doubleBuffer->GetHeight() )
- {
- delete m_doubleBuffer;
- m_doubleBuffer = new wxBitmap(clientSize.x+25,clientSize.y+25);
- }
-
- wxBufferedPaintDC dc(this,*m_doubleBuffer);
+ wxAutoBufferedPaintDC dc(this);
// the update rectangle
wxRect rectUpdate = GetUpdateClientRect();
// use the same default attributes as wxListBox
// ----------------------------------------------------------------------------
-#include "wx/listbox.h"
-
//static
wxVisualAttributes
wxVListBox::GetClassDefaultAttributes(wxWindowVariant variant)