X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/072c5412c2f89e31255ba06d55f25c743b7bc15a..b16de7461ac6d97b0b04a5ce4e73447925e93416:/src/generic/vlbox.cpp diff --git a/src/generic/vlbox.cpp b/src/generic/vlbox.cpp index 989f6f797d..9bb7cde2d0 100644 --- a/src/generic/vlbox.cpp +++ b/src/generic/vlbox.cpp @@ -24,6 +24,8 @@ #pragma hdrstop #endif +#if wxUSE_LISTBOX + #ifndef WX_PRECOMP #include "wx/settings.h" #include "wx/dcclient.h" @@ -68,20 +70,16 @@ bool wxVListBox::Create(wxWindow *parent, long style, const wxString& name) { - style |= wxWANTS_CHARS; + style |= wxWANTS_CHARS | wxFULL_REPAINT_ON_RESIZE; if ( !wxVScrolledWindow::Create(parent, id, pos, size, style, name) ) return false; if ( style & wxLB_MULTIPLE ) m_selStore = new wxSelectionStore; - SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_LISTBOX)); - SetForegroundColour(parent->GetForegroundColour()); - - // ensure that the font actually changes and is set. - SetFont(wxNullFont); - SetFont(parent->GetFont()); - + // make sure the native widget has the right colour since we do + // transparent drawing by default + SetBackgroundColour(GetBackgroundColour()); m_colBgSel = wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHT); return true; @@ -247,7 +245,7 @@ void wxVListBox::SendSelectedEvent() wxCommandEvent event(wxEVT_COMMAND_LISTBOX_SELECTED, GetId()); event.SetEventObject(this); - event.m_commandInt = m_current; + event.SetInt(m_current); (void)GetEventHandler()->ProcessEvent(event); } @@ -578,6 +576,8 @@ void wxVListBox::OnKeyDown(wxKeyEvent& event) void wxVListBox::OnLeftDown(wxMouseEvent& event) { + SetFocus(); + int item = HitTest(event.GetPosition()); if ( item != wxNOT_FOUND ) @@ -599,16 +599,31 @@ void wxVListBox::OnLeftDown(wxMouseEvent& event) } } -void wxVListBox::OnLeftDClick(wxMouseEvent& event) +void wxVListBox::OnLeftDClick(wxMouseEvent& eventMouse) { - int item = HitTest(event.GetPosition()); + int item = HitTest(eventMouse.GetPosition()); if ( item != wxNOT_FOUND ) { wxCommandEvent event(wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, GetId()); event.SetEventObject(this); - event.m_commandInt = item; + event.SetInt(item); (void)GetEventHandler()->ProcessEvent(event); } } + +// ---------------------------------------------------------------------------- +// use the same default attributes as wxListBox +// ---------------------------------------------------------------------------- + +#include "wx/listbox.h" + +//static +wxVisualAttributes +wxVListBox::GetClassDefaultAttributes(wxWindowVariant variant) +{ + return wxListBox::GetClassDefaultAttributes(variant); +} + +#endif