X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c84030e020e56735cb4b7c1534e99d21a8bb48c0..cd0f218cdd3114dc6770bc9f6703225aabb5a2de:/src/osx/carbon/combobox.cpp diff --git a/src/osx/carbon/combobox.cpp b/src/osx/carbon/combobox.cpp index 2dd7799867..8d6dec95e2 100644 --- a/src/osx/carbon/combobox.cpp +++ b/src/osx/carbon/combobox.cpp @@ -25,15 +25,6 @@ #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; }