X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8703bc01c28e0397764cd28b915caf17a28020ad..658252ef0ceb59d0a76cf414b7b78d033c16851f:/src/generic/vlbox.cpp diff --git a/src/generic/vlbox.cpp b/src/generic/vlbox.cpp index 50a484eec6..2830f19c7b 100644 --- a/src/generic/vlbox.cpp +++ b/src/generic/vlbox.cpp @@ -68,13 +68,16 @@ bool wxVListBox::Create(wxWindow *parent, long style, const wxString& name) { + 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)); + // 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; @@ -240,7 +243,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); } @@ -537,6 +540,19 @@ void wxVListBox::OnKeyDown(wxKeyEvent& event) current = m_current; break; +#ifdef __WXMSW__ + case WXK_TAB: + // Since we are using wxWANTS_CHARS we need to send navigation + // events for the tabs on MSW + { + wxNavigationKeyEvent ne; + ne.SetDirection(!event.ShiftDown()); + ne.SetCurrentFocus(this); + ne.SetEventObject(this); + GetParent()->GetEventHandler()->ProcessEvent(ne); + } + // fall through to default +#endif default: event.Skip(); current = 0; // just to silent the stupid compiler warnings @@ -586,9 +602,22 @@ void wxVListBox::OnLeftDClick(wxMouseEvent& event) { 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); +}