From 80c700cba933f16d7db6ad3e5d9026d1fb44c7a1 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Thu, 4 Mar 2004 18:39:08 +0000 Subject: [PATCH] Use wxWANTS_CHARS style so cursor keys can be used on wxMSW, send wxNavigationKeyEvents on MSW since WANTS_CHARS will block those, and inherit font and colors like wxListBox does. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26086 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/generic/vlbox.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/generic/vlbox.cpp b/src/generic/vlbox.cpp index 50a484eec6..989f6f797d 100644 --- a/src/generic/vlbox.cpp +++ b/src/generic/vlbox.cpp @@ -68,6 +68,7 @@ bool wxVListBox::Create(wxWindow *parent, long style, const wxString& name) { + style |= wxWANTS_CHARS; if ( !wxVScrolledWindow::Create(parent, id, pos, size, style, name) ) return false; @@ -75,6 +76,12 @@ bool wxVListBox::Create(wxWindow *parent, 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()); + m_colBgSel = wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHT); return true; @@ -537,6 +544,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