- // TODO should modify this to take into account string length ala wxGTK
- return wxSize(100,20);
-}
-
-/*
-void wxChoice::Command(wxCommandEvent & event)
-{
- SetSelection (event.GetInt());
- ProcessCommand (event);
-}
-*/
+ int lbWidth = 100; // some defaults
+ int lbHeight = 20;
+ int wLine;
+#if TARGET_CARBON
+ long metric ;
+ GetThemeMetric(kThemeMetricPopupButtonHeight , &metric );
+ lbHeight = metric ;
+#endif
+ {
+ wxMacPortStateHelper st( UMAGetWindowPort( (WindowRef) MacGetRootWindow() ) ) ;
+ Rect drawRect ;
+ wxFontRefData * font = (wxFontRefData*) m_font.GetRefData() ;
+ if ( font )
+ {
+ ::TextFont( font->m_macFontNum ) ;
+ ::TextSize( short(font->m_macFontSize) ) ;
+ ::TextFace( font->m_macFontStyle ) ;
+ }
+ else
+ {
+ ::TextFont( kFontIDMonaco ) ;
+ ::TextSize( 9 );
+ ::TextFace( 0 ) ;
+ }
+ // Find the widest line
+ for(int i = 0; i < GetCount(); i++) {
+ wxString str(GetString(i));
+ wLine = ::TextWidth( str.c_str() , 0 , str.Length() ) ;
+ lbWidth = wxMax(lbWidth, wLine);
+ }
+ // Add room for the popup arrow
+ lbWidth += 2 * lbHeight ;
+ // And just a bit more
+ int cy = 12 ;
+ int cx = ::TextWidth( "X" , 0 , 1 ) ;
+ lbWidth += cx ;
+
+ }
+ return wxSize(lbWidth, lbHeight);
+}
\ No newline at end of file