X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d33e45f134004bdb8199de60d60a251569bbed96..47e175a24f862aa8b7ca7dd4a2bb5957991e7f2d:/src/osx/carbon/combobox.cpp diff --git a/src/osx/carbon/combobox.cpp b/src/osx/carbon/combobox.cpp index a3a419dc6e..73bbbad274 100644 --- a/src/osx/carbon/combobox.cpp +++ b/src/osx/carbon/combobox.cpp @@ -11,7 +11,7 @@ #include "wx/wxprec.h" -#if wxUSE_COMBOBOX +#if wxUSE_COMBOBOX && wxOSX_USE_CARBON #include "wx/combobox.h" @@ -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? @@ -150,7 +137,7 @@ protected: event.Skip(); } - + private: wxComboBox *m_cb; @@ -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); } // ---------------------------------------------------------------------------- @@ -292,7 +270,7 @@ void wxComboBox::DoMoveWindow(int x, int y, int width, int height) m_text->SetSize(TEXTFOCUSBORDER, TEXTFOCUSBORDER, wText, -1); wxSize tSize = m_text->GetSize(); wxSize cSize = m_choice->GetSize(); - + int yOffset = ( tSize.y + 2 * TEXTFOCUSBORDER - cSize.y ) / 2; // put it at an inset of 1 to have outer area shadows drawn as well @@ -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, @@ -402,7 +375,7 @@ bool wxComboBox::Create(wxWindow *parent, } void wxComboBox::EnableTextChangedEvents(bool enable) -{ +{ if ( m_text ) m_text->ForwardEnableTextChangedEvents(enable); } @@ -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; @@ -686,4 +658,12 @@ bool wxComboBox::OSXHandleClicked( double WXUNUSED(timestampsec) ) return true ; } -#endif // wxUSE_COMBOBOX +wxTextWidgetImpl* wxComboBox::GetTextPeer() const +{ + if (m_text) + return m_text->GetTextPeer(); + + return NULL; +} + +#endif // wxUSE_COMBOBOX && wxOSX_USE_CARBON