]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/choice.cpp
applied SourceForge patch # 854330 for Filedialog Unicode fixes
[wxWidgets.git] / src / mac / choice.cpp
index c187d9ecc75ef2f05485fc205c175616a5ef0bed..55a9268e108486daed5eee2e83d1b3005e5b0921 100644 (file)
@@ -46,6 +46,9 @@ bool wxChoice::Create(wxWindow *parent, wxWindowID id,
            const wxValidator& validator,
            const wxString& name)
 {
            const wxValidator& validator,
            const wxString& name)
 {
+    if ( !wxChoiceBase::Create(parent, id, pos, size, style, validator, name) )
+        return false;
+
     Rect bounds ;
     Str255 title ;
 
     Rect bounds ;
     Str255 title ;
 
@@ -60,6 +63,7 @@ bool wxChoice::Create(wxWindow *parent, wxWindowID id,
     if ( n > 0 )
         SetControl32BitValue( (ControlHandle) m_macControl , 1 ) ;
     MacPostControlCreate() ;
     if ( n > 0 )
         SetControl32BitValue( (ControlHandle) m_macControl , 1 ) ;
     MacPostControlCreate() ;
+    // TODO wxCB_SORT
     for ( int i = 0; i < n; i++ )
     {
         Append(choices[i]);
     for ( int i = 0; i < n; i++ )
     {
         Append(choices[i]);
@@ -241,12 +245,11 @@ wxSize wxChoice::DoGetBestSize() const
 #endif
     {
         wxMacPortStateHelper st( UMAGetWindowPort( (WindowRef) MacGetRootWindow() ) ) ;
 #endif
     {
         wxMacPortStateHelper st( UMAGetWindowPort( (WindowRef) MacGetRootWindow() ) ) ;
-        wxFontRefData * font = (wxFontRefData*) m_font.GetRefData() ;
-        if ( font )
+        if ( m_font.Ok() )
         {
         {
-            ::TextFont( font->m_macFontNum ) ;
-            ::TextSize( short(font->m_macFontSize) ) ;
-            ::TextFace( font->m_macFontStyle ) ;
+            ::TextFont( m_font.GetMacFontNum() ) ;
+            ::TextSize( m_font.GetMacFontSize() ) ;
+            ::TextFace( m_font.GetMacFontStyle() ) ;
         }
         else
         {
         }
         else
         {
@@ -268,8 +271,7 @@ wxSize wxChoice::DoGetBestSize() const
                 &baseline );
             wLine = bounds.h ;
         #else
                 &baseline );
             wLine = bounds.h ;
         #else
-            wxCharBuffer text = wxMacStringToCString( str ) ;
-            wLine = ::TextWidth( text , 0 , strlen(text) ) ;
+            wLine = ::TextWidth( str.c_str() , 0 , str.Length() ) ;
         #endif
             lbWidth = wxMax(lbWidth, wLine);
         }
         #endif
             lbWidth = wxMax(lbWidth, wLine);
         }