]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/carbon/combobox.cpp
no existing on iphone
[wxWidgets.git] / src / osx / carbon / combobox.cpp
index 79564de842a115a100021dd0784117ceb5f717a0..2dd77998678eb8374bc4e40fa1301777e2ecbd3f 100644 (file)
@@ -11,7 +11,7 @@
 
 #include "wx/wxprec.h"
 
-#if wxUSE_COMBOBOX
+#if wxUSE_COMBOBOX && wxOSX_USE_CARBON
 
 #include "wx/combobox.h"
 
@@ -150,7 +150,7 @@ protected:
 
         event.Skip();
     }
-    
+
 private:
     wxComboBox *m_cb;
 
@@ -261,12 +261,11 @@ wxSize wxComboBox::DoGetBestSize() const
     if ( m_text != NULL )
     {
         wxSize  sizeText = m_text->GetBestSize();
-        if (sizeText.y > size.y)
-            size.y = sizeText.y;
+        if (sizeText.y + 2 * TEXTFOCUSBORDER > size.y)
+            size.y = sizeText.y + 2 * TEXTFOCUSBORDER;
 
         size.x = m_choice->GetPopupWidth() + sizeText.x + MARGIN;
         size.x += TEXTFOCUSBORDER ;
-        size.y += 2 * TEXTFOCUSBORDER ;
     }
     else
     {
@@ -291,9 +290,13 @@ void wxComboBox::DoMoveWindow(int x, int y, int width, int height)
     {
         wxCoord wText = width - m_choice->GetPopupWidth() - MARGIN;
         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
-        m_choice->SetSize(TEXTFOCUSBORDER + wText + MARGIN - 1 , TEXTFOCUSBORDER, m_choice->GetPopupWidth() , -1);
+        m_choice->SetSize(TEXTFOCUSBORDER + wText + MARGIN - 1 , yOffset, m_choice->GetPopupWidth() , -1);
     }
 }
 
@@ -399,7 +402,7 @@ bool wxComboBox::Create(wxWindow *parent,
 }
 
 void wxComboBox::EnableTextChangedEvents(bool enable)
-{ 
+{
     if ( m_text )
         m_text->ForwardEnableTextChangedEvents(enable);
 }
@@ -683,4 +686,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