]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/carbon/combobox.cpp
moving common code up
[wxWidgets.git] / src / osx / carbon / combobox.cpp
index 5bae2472354f56d1f31d76a52d7de72c4e63117d..79564de842a115a100021dd0784117ceb5f717a0 100644 (file)
@@ -57,9 +57,12 @@ public:
         : wxTextCtrl( cb , 1 )
     {
         m_cb = cb;
-        SetTriggerOnSetValue( false );
     }
 
+    void ForwardEnableTextChangedEvents(bool enable)
+    {
+        EnableTextChangedEvents(enable);
+    }
 protected:
     void OnChar( wxKeyEvent& event )
     {
@@ -137,6 +140,17 @@ protected:
             event.Skip();
     }
 
+    void OnFocus( wxFocusEvent& event )
+    {
+        // in case the textcontrol gets the focus we propagate
+        // it to the parent's handlers.
+        wxFocusEvent evt2(event.GetEventType(),m_cb->GetId());
+        evt2.SetEventObject(m_cb);
+        m_cb->GetEventHandler()->ProcessEvent(evt2);
+
+        event.Skip();
+    }
+    
 private:
     wxComboBox *m_cb;
 
@@ -147,6 +161,8 @@ BEGIN_EVENT_TABLE(wxComboBoxText, wxTextCtrl)
     EVT_KEY_DOWN(wxComboBoxText::OnKeyDown)
     EVT_CHAR(wxComboBoxText::OnChar)
     EVT_KEY_UP(wxComboBoxText::OnKeyUp)
+    EVT_SET_FOCUS(wxComboBoxText::OnFocus)
+    EVT_KILL_FOCUS(wxComboBoxText::OnFocus)
     EVT_TEXT(wxID_ANY, wxComboBoxText::OnText)
 END_EVENT_TABLE()
 
@@ -382,6 +398,19 @@ bool wxComboBox::Create(wxWindow *parent,
     return true;
 }
 
+void wxComboBox::EnableTextChangedEvents(bool enable)
+{ 
+    if ( m_text )
+        m_text->ForwardEnableTextChangedEvents(enable);
+}
+
+wxString wxComboBox::DoGetValue() const
+{
+    wxCHECK_MSG( m_text, wxString(), "can't be called for read-only combobox" );
+
+    return m_text->GetValue();
+}
+
 wxString wxComboBox::GetValue() const
 {
     wxString        result;
@@ -640,7 +669,7 @@ bool wxComboBox::CanRedo() const
         return false;
 }
 
-bool wxComboBox::HandleClicked( double timestampsec )
+bool wxComboBox::OSXHandleClicked( double WXUNUSED(timestampsec) )
 {
 /*
     For consistency with other platforms, clicking in the text area does not constitute a selection