]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/combocmn.cpp
Forgot header with OSX prefix
[wxWidgets.git] / src / common / combocmn.cpp
index 8fb796c2ccaa3761846f249699c53cc5215bad84..89367d068b842d6da7e118bc1640dd2be119fe84 100644 (file)
@@ -757,18 +757,18 @@ IMPLEMENT_ABSTRACT_CLASS(wxComboCtrlBase, wxControl)
 
 void wxComboCtrlBase::Init()
 {
 
 void wxComboCtrlBase::Init()
 {
-    m_winPopup = (wxWindow *)NULL;
-    m_popup = (wxWindow *)NULL;
+    m_winPopup = NULL;
+    m_popup = NULL;
     m_popupWinState = Hidden;
     m_popupWinState = Hidden;
-    m_btn = (wxWindow*) NULL;
-    m_text = (wxTextCtrl*) NULL;
-    m_popupInterface = (wxComboPopup*) NULL;
+    m_btn = NULL;
+    m_text = NULL;
+    m_popupInterface = NULL;
 
 
-    m_popupExtraHandler = (wxEvtHandler*) NULL;
-    m_textEvtHandler = (wxEvtHandler*) NULL;
+    m_popupExtraHandler = NULL;
+    m_textEvtHandler = NULL;
 
 #if INSTALL_TOPLEV_HANDLER
 
 #if INSTALL_TOPLEV_HANDLER
-    m_toplevEvtHandler = (wxEvtHandler*) NULL;
+    m_toplevEvtHandler = NULL;
 #endif
 
     m_mainCtrlWnd = this;
 #endif
 
     m_mainCtrlWnd = this;
@@ -892,7 +892,7 @@ wxComboCtrlBase::~wxComboCtrlBase()
 
 #if INSTALL_TOPLEV_HANDLER
     delete ((wxComboFrameEventHandler*)m_toplevEvtHandler);
 
 #if INSTALL_TOPLEV_HANDLER
     delete ((wxComboFrameEventHandler*)m_toplevEvtHandler);
-    m_toplevEvtHandler = (wxEvtHandler*) NULL;
+    m_toplevEvtHandler = NULL;
 #endif
 
     DestroyPopup();
 #endif
 
     DestroyPopup();
@@ -1177,6 +1177,8 @@ bool wxComboCtrlBase::Enable(bool enable)
         m_btn->Enable(enable);
     if ( m_text )
         m_text->Enable(enable);
         m_btn->Enable(enable);
     if ( m_text )
         m_text->Enable(enable);
+        
+    Refresh();
 
     return true;
 }
 
     return true;
 }
@@ -1220,8 +1222,8 @@ void wxComboCtrlBase::DoSetToolTip(wxToolTip *tooltip)
     }
     else
     {
     }
     else
     {
-        if ( m_text ) m_text->SetToolTip( (wxToolTip*) NULL );
-        if ( m_btn ) m_btn->SetToolTip( (wxToolTip*) NULL );
+        if ( m_text ) m_text->SetToolTip( NULL );
+        if ( m_btn ) m_btn->SetToolTip( NULL );
     }
 }
 #endif // wxUSE_TOOLTIPS
     }
 }
 #endif // wxUSE_TOOLTIPS
@@ -1233,16 +1235,15 @@ void wxComboCtrlBase::SetValidator(const wxValidator& validator)
 
     if ( textCtrl )
         textCtrl->SetValidator( validator );
 
     if ( textCtrl )
         textCtrl->SetValidator( validator );
+    else
+        wxControl::SetValidator( validator );
 }
 
 wxValidator* wxComboCtrlBase::GetValidator()
 {
     wxTextCtrl* textCtrl = GetTextCtrl();
 
 }
 
 wxValidator* wxComboCtrlBase::GetValidator()
 {
     wxTextCtrl* textCtrl = GetTextCtrl();
 
-    if ( textCtrl )
-        return textCtrl->GetValidator();
-
-    return wxControl::GetValidator();
+    return textCtrl ? textCtrl->GetValidator() : wxControl::GetValidator();
 }
 #endif // wxUSE_VALIDATORS
 
 }
 #endif // wxUSE_VALIDATORS
 
@@ -1636,7 +1637,7 @@ void wxComboCtrlBase::HandleNormalMouseEvent( wxMouseEvent& event )
     {
         // relay (some) mouse events to the popup
         if ( evtType == wxEVT_MOUSEWHEEL )
     {
         // relay (some) mouse events to the popup
         if ( evtType == wxEVT_MOUSEWHEEL )
-            m_popup->AddPendingEvent(event);
+            m_popup->GetEventHandler()->AddPendingEvent(event);
     }
     else if ( evtType )
         event.Skip();
     }
     else if ( evtType )
         event.Skip();
@@ -1651,22 +1652,8 @@ void wxComboCtrlBase::OnKeyEvent(wxKeyEvent& event)
     }
     else // no popup
     {
     }
     else // no popup
     {
-        int keycode = event.GetKeyCode();
-
-        if ( keycode == WXK_TAB )
-        {
-            wxNavigationKeyEvent evt;
-
-            wxWindow* mainCtrl = GetMainWindowOfCompositeControl();
-
-            evt.SetFlags(wxNavigationKeyEvent::FromTab|
-                         (!event.ShiftDown() ? wxNavigationKeyEvent::IsForward
-                                             : wxNavigationKeyEvent::IsBackward));
-            evt.SetEventObject(mainCtrl);
-            evt.SetCurrentFocus(mainCtrl);
-            mainCtrl->GetParent()->GetEventHandler()->AddPendingEvent(evt);
+        if ( HandleAsNavigationKey(event) )
             return;
             return;
-        }
 
         if ( IsKeyPopupToggle(event) )
         {
 
         if ( IsKeyPopupToggle(event) )
         {
@@ -1683,6 +1670,8 @@ void wxComboCtrlBase::OnKeyEvent(wxKeyEvent& event)
             return;
         }
 
             return;
         }
 
+        int keycode = event.GetKeyCode();
+
         if ( (comboStyle & wxCB_READONLY) ||
              (keycode != WXK_RIGHT && keycode != WXK_LEFT) )
         {
         if ( (comboStyle & wxCB_READONLY) ||
              (keycode != WXK_RIGHT && keycode != WXK_LEFT) )
         {
@@ -1799,10 +1788,10 @@ void wxComboCtrlBase::DestroyPopup()
         m_winPopup->Destroy();
     }
 
         m_winPopup->Destroy();
     }
 
-    m_popupExtraHandler = (wxEvtHandler*) NULL;
-    m_popupInterface = (wxComboPopup*) NULL;
-    m_winPopup = (wxWindow*) NULL;
-    m_popup = (wxWindow*) NULL;
+    m_popupExtraHandler = NULL;
+    m_popupInterface = NULL;
+    m_winPopup = NULL;
+    m_popup = NULL;
 }
 
 void wxComboCtrlBase::DoSetPopupControl(wxComboPopup* iface)
 }
 
 void wxComboCtrlBase::DoSetPopupControl(wxComboPopup* iface)
@@ -1822,7 +1811,7 @@ void wxComboCtrlBase::DoSetPopupControl(wxComboPopup* iface)
     }
     else
     {
     }
     else
     {
-        m_popup = (wxWindow*) NULL;
+        m_popup = NULL;
     }
 
     // This must be done after creation
     }
 
     // This must be done after creation