]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/choice.cpp
popup activation scope and l&f
[wxWidgets.git] / src / mac / carbon / choice.cpp
index 22bb683721d05a82f25090f118e9c7a480cdd678..c395a39d19fdbc1a0789df384035195a4d00d510 100644 (file)
@@ -50,14 +50,17 @@ bool wxChoice::Create(wxWindow *parent,
     const wxValidator& validator,
     const wxString& name )
 {
-    return Create(
-        parent, id, pos, size, 0, NULL,
-        style, validator, name );
+    if ( !Create( parent, id, pos, size, 0, NULL, style, validator, name ) )
+        return false;
 
     Append( choices );
 
     if ( !choices.empty() )
         SetSelection( 0 );
+
+    SetInitialSize( size );
+
+    return true;
 }
 
 bool wxChoice::Create(wxWindow *parent,
@@ -136,7 +139,7 @@ int wxChoice::DoInsertItems(const wxArrayStringsAdapter & items,
 
         UMAInsertMenuItem(MAC_WXHMENU( m_macPopUpMenuHandle ),
                           items[i],
-                          m_font.GetEncoding(),
+                          GetFont().GetEncoding(),
                           idx);
         m_datas.Insert( NULL, idx );
         AssignNewItemClientData(idx, clientData, i, type);
@@ -274,62 +277,28 @@ wxSize wxChoice::DoGetBestSize() const
     lbHeight = metric ;
 
     {
-#if wxMAC_USE_CORE_GRAPHICS
         wxClientDC dc(const_cast<wxChoice*>(this));
-#else
-        wxMacPortStateHelper st( UMAGetWindowPort( (WindowRef) MacGetTopLevelWindowRef() ) ) ;
-        if ( m_font.Ok() )
-        {
-            ::TextFont( m_font.MacGetFontNum() ) ;
-            ::TextSize( m_font.MacGetFontSize() ) ;
-            ::TextFace( m_font.MacGetFontStyle() ) ;
-        }
-        else
-        {
-            ::TextFont( kFontIDMonaco ) ;
-            ::TextSize( 9 ) ;
-            ::TextFace( 0 ) ;
-        }
-#endif
+
         // Find the widest line
         for(unsigned int i = 0; i < GetCount(); i++)
         {
             wxString str(GetString(i));
-#if wxMAC_USE_CORE_GRAPHICS
+
             wxCoord width, height ;
             dc.GetTextExtent( str , &width, &height);
             wLine = width ;
-#else
-#if wxUSE_UNICODE
-            Point bounds = { 0, 0 } ;
-            SInt16 baseline ;
-
-            ::GetThemeTextDimensions( wxMacCFStringHolder( str , m_font.GetEncoding() ) ,
-                kThemeCurrentPortFont,
-                kThemeStateActive,
-                false,
-                &bounds,
-                &baseline );
-
-            wLine = bounds.h ;
-#else
-            wLine = ::TextWidth( str.c_str() , 0 , str.length() ) ;
-#endif
-#endif
+
             lbWidth = wxMax( lbWidth, wLine ) ;
         }
 
         // Add room for the popup arrow
         lbWidth += 2 * lbHeight ;
-#if wxMAC_USE_CORE_GRAPHICS
+
         wxCoord width, height ;
         dc.GetTextExtent( wxT("X"), &width, &height);
         int cx = width ;
         lbHeight += 4;
-#else
-        // And just a bit more
-        int cx = ::TextWidth( "X" , 0 , 1 ) ;
-#endif
+
         lbWidth += cx ;
     }