X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e19ac18a71c1e791ab3d0268ee43db8bd64dbd6d..fcb29b233888f7012ca6cf486c8287f5463787e0:/src/generic/vlbox.cpp diff --git a/src/generic/vlbox.cpp b/src/generic/vlbox.cpp index d53213a284..2a3ca54d1c 100644 --- a/src/generic/vlbox.cpp +++ b/src/generic/vlbox.cpp @@ -26,12 +26,14 @@ #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" @@ -62,7 +64,6 @@ void wxVListBox::Init() m_current = m_anchor = wxNOT_FOUND; m_selStore = NULL; - m_doubleBuffer = NULL; } bool wxVListBox::Create(wxWindow *parent, @@ -92,7 +93,6 @@ bool wxVListBox::Create(wxWindow *parent, wxVListBox::~wxVListBox() { - delete m_doubleBuffer; delete m_selStore; } @@ -262,7 +262,10 @@ void wxVListBox::SetSelection(int selection) if ( HasMultipleSelection() ) { - Select(selection); + if (selection != wxNOT_FOUND) + Select(selection); + else + DeselectAll(); m_anchor = selection; } @@ -355,18 +358,9 @@ void wxVListBox::OnDrawBackground(wxDC& dc, const wxRect& rect, size_t n) const 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(); @@ -645,8 +639,6 @@ void wxVListBox::OnLeftDClick(wxMouseEvent& eventMouse) // use the same default attributes as wxListBox // ---------------------------------------------------------------------------- -#include "wx/listbox.h" - //static wxVisualAttributes wxVListBox::GetClassDefaultAttributes(wxWindowVariant variant)