]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/vlbox.cpp
fixed to not duplicate code needlessly; clarified why gtk_file_chooser_set_current_na...
[wxWidgets.git] / src / generic / vlbox.cpp
index 50a484eec634cdf492f1f82398b548874161bc32..0a08835aa4c5b795bada18469d7ac2aade1d8d52 100644 (file)
@@ -68,13 +68,16 @@ bool wxVListBox::Create(wxWindow *parent,
                         long style,
                         const wxString& name)
 {
                         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;
 
     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;
     m_colBgSel = wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHT);
 
     return true;
@@ -537,6 +540,19 @@ void wxVListBox::OnKeyDown(wxKeyEvent& event)
             current = m_current;
             break;
 
             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
         default:
             event.Skip();
             current = 0; // just to silent the stupid compiler warnings
@@ -592,3 +608,16 @@ void wxVListBox::OnLeftDClick(wxMouseEvent& event)
     }
 }
 
     }
 }
 
+
+// ----------------------------------------------------------------------------
+// use the same default attributes as wxListBox
+// ----------------------------------------------------------------------------
+
+#include "wx/listbox.h"
+
+//static
+wxVisualAttributes
+wxVListBox::GetClassDefaultAttributes(wxWindowVariant variant)
+{
+    return wxListBox::GetClassDefaultAttributes(variant);
+}