]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/carbon/combobox.cpp
notify the event loop that synthesized events are on the queue, wait for them to...
[wxWidgets.git] / src / osx / carbon / combobox.cpp
index 2dd77998678eb8374bc4e40fa1301777e2ecbd3f..8d6dec95e291852bc95de479bb75d5747c294b85 100644 (file)
 
 #include "wx/osx/private.h"
 
-IMPLEMENT_DYNAMIC_CLASS(wxComboBox, wxControl)
-
-WX_DELEGATE_TO_CONTROL_CONTAINER(wxComboBox, wxControl)
-
-BEGIN_EVENT_TABLE(wxComboBox, wxControl)
-    WX_EVENT_TABLE_CONTROL_CONTAINER(wxComboBox)
-END_EVENT_TABLE()
-
-
 // ----------------------------------------------------------------------------
 // constants
 // ----------------------------------------------------------------------------
@@ -59,10 +50,6 @@ public:
         m_cb = cb;
     }
 
-    void ForwardEnableTextChangedEvents(bool enable)
-    {
-        EnableTextChangedEvents(enable);
-    }
 protected:
     void OnChar( wxKeyEvent& event )
     {
@@ -71,7 +58,7 @@ protected:
         {
             wxNavigationKeyEvent NavEvent;
             NavEvent.SetEventObject(this);
-            NavEvent.SetDirection(true);
+            NavEvent.SetDirection(!event.ShiftDown());
             NavEvent.SetWindowChange(false);
 
             // Get the parent of the combo and have it process the navigation?
@@ -88,7 +75,7 @@ protected:
 
         if ( event.GetKeyCode() == WXK_RETURN )
         {
-            wxCommandEvent event(wxEVT_COMMAND_TEXT_ENTER, m_cb->GetId());
+            wxCommandEvent event(wxEVT_TEXT_ENTER, m_cb->GetId());
             event.SetString( GetValue() );
             event.SetInt( m_cb->GetSelection() );
             event.SetEventObject( m_cb );
@@ -103,7 +90,7 @@ protected:
                     wxButton *def = wxDynamicCast(tlw->GetDefaultItem(), wxButton);
                     if ( def && def->IsEnabled() )
                     {
-                        wxCommandEvent event( wxEVT_COMMAND_BUTTON_CLICKED, def->GetId() );
+                        wxCommandEvent event( wxEVT_BUTTON, def->GetId() );
                         event.SetEventObject(def);
                         def->Command(event);
                     }
@@ -194,7 +181,7 @@ protected:
         wxString    s = e.GetString();
 
         m_cb->DelegateChoice( s );
-        wxCommandEvent event2(wxEVT_COMMAND_COMBOBOX_SELECTED, m_cb->GetId() );
+        wxCommandEvent event2(wxEVT_COMBOBOX, m_cb->GetId() );
         event2.SetInt(m_cb->GetSelection());
         event2.SetEventObject(m_cb);
         event2.SetString(m_cb->GetStringSelection());
@@ -202,7 +189,7 @@ protected:
 
         // For consistency with MSW and GTK, also send a text updated event
         // After all, the text is updated when a selection is made
-        wxCommandEvent TextEvent( wxEVT_COMMAND_TEXT_UPDATED, m_cb->GetId() );
+        wxCommandEvent TextEvent( wxEVT_TEXT, m_cb->GetId() );
         TextEvent.SetString( m_cb->GetStringSelection() );
         TextEvent.SetEventObject( m_cb );
         m_cb->ProcessCommand( TextEvent );
@@ -234,17 +221,8 @@ wxComboBox::~wxComboBox()
     // delete the controls now, don't leave them alive even though they would
     // still be eventually deleted by our parent - but it will be too late, the
     // user code expects them to be gone now
-    if (m_text != NULL)
-    {
-        delete m_text;
-        m_text = NULL;
-    }
-
-    if (m_choice != NULL)
-    {
-        delete m_choice;
-        m_choice = NULL;
-    }
+    wxDELETE(m_text);
+    wxDELETE(m_choice);
 }
 
 // ----------------------------------------------------------------------------
@@ -333,11 +311,6 @@ void wxComboBox::DelegateChoice( const wxString& value )
     SetStringSelection( value );
 }
 
-void wxComboBox::Init()
-{
-    WX_INIT_CONTROL_CONTAINER();
-}
-
 bool wxComboBox::Create(wxWindow *parent,
     wxWindowID id,
     const wxString& value,
@@ -475,10 +448,9 @@ void wxComboBox::SetEditable(bool editable)
     {
         m_text = new wxComboBoxText( this );
     }
-    else if ( ( m_text != NULL ) && !editable )
+    else if ( !editable )
     {
-        delete m_text;
-        m_text = NULL;
+        wxDELETE(m_text);
     }
 
     int currentX, currentY;
@@ -676,7 +648,7 @@ bool wxComboBox::OSXHandleClicked( double WXUNUSED(timestampsec) )
 {
 /*
     For consistency with other platforms, clicking in the text area does not constitute a selection
-    wxCommandEvent event(wxEVT_COMMAND_COMBOBOX_SELECTED, m_windowId );
+    wxCommandEvent event(wxEVT_COMBOBOX, m_windowId );
     event.SetInt(GetSelection());
     event.SetEventObject(this);
     event.SetString(GetStringSelection());
@@ -690,7 +662,7 @@ wxTextWidgetImpl* wxComboBox::GetTextPeer() const
 {
     if (m_text)
         return m_text->GetTextPeer();
-    
+
     return NULL;
 }