]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/control.cpp
Ok tests pixmap and bitmap now
[wxWidgets.git] / src / mac / carbon / control.cpp
index 8f7542389aac05e2f96f55c3d297a8f6c8aa6cd2..49be26a16ccb9fd5cdc6e6332803eae751ad824a 100644 (file)
@@ -207,13 +207,16 @@ void wxControl::SetLabel(const wxString& title)
 
     if ( m_macControl )
     {
 
     if ( m_macControl )
     {
-               UMASetControlTitle( (ControlHandle) m_macControl , m_label ) ;
+               UMASetControlTitle( (ControlHandle) m_macControl , m_label , m_font.GetEncoding() ) ;
     }
     Refresh() ;
 }
 
 wxSize wxControl::DoGetBestSize() const
 {
     }
     Refresh() ;
 }
 
 wxSize wxControl::DoGetBestSize() const
 {
+    if ( (ControlHandle) m_macControl == NULL )
+        return wxWindow::DoGetBestSize() ;
+        
     Rect    bestsize = { 0 , 0 , 0 , 0 } ;
     short   baselineoffset ;
     int bestWidth, bestHeight ;
     Rect    bestsize = { 0 , 0 , 0 , 0 } ;
     short   baselineoffset ;
     int bestWidth, bestHeight ;
@@ -235,18 +238,7 @@ wxSize wxControl::DoGetBestSize() const
         }
     }
 
         }
     }
 
-    if ( IsKindOf( CLASSINFO( wxButton ) ) )
-    {
-        bestWidth = m_label.Length() * 8 + 12 ;
-        if ( bestWidth < 70 )
-          bestWidth = 70 ;
-    }
-    else if ( IsKindOf( CLASSINFO( wxStaticText ) ) )
-    {
-        bestWidth = m_label.Length() * 8 ;
-    }
-    else
-        bestWidth = bestsize.right - bestsize.left ;
+    bestWidth = bestsize.right - bestsize.left ;
         
     bestWidth += 2 * m_macHorizontalBorder ;
 
         
     bestWidth += 2 * m_macHorizontalBorder ;
 
@@ -290,7 +282,8 @@ void wxAssociateControlWithMacControl(ControlHandle inControl, wxControl *contro
 
 void wxRemoveMacControlAssociation(wxControl *control)
 {
 
 void wxRemoveMacControlAssociation(wxControl *control)
 {
-    wxWinMacControlList->DeleteObject(control);
+    if ( wxWinMacControlList )
+        wxWinMacControlList->DeleteObject(control);
 }
 
 void wxControl::MacPreControlCreate( wxWindow *parent, wxWindowID id, wxString label , 
 }
 
 void wxControl::MacPreControlCreate( wxWindow *parent, wxWindowID id, wxString label , 
@@ -337,7 +330,7 @@ void wxControl::MacPostControlCreate()
         controlstyle.flags = kControlUseFontMask ;
         
         if (IsKindOf( CLASSINFO( wxButton ) ) )
         controlstyle.flags = kControlUseFontMask ;
         
         if (IsKindOf( CLASSINFO( wxButton ) ) )
-            controlstyle.font = kControlFontSmallSystemFont ; // eventually kControlFontBigSystemFont ;
+            controlstyle.font = kControlFontBigSystemFont ; // eventually kControlFontBigSystemFont ;
         else
             controlstyle.font = kControlFontSmallSystemFont ;
         
         else
             controlstyle.font = kControlFontSmallSystemFont ;
         
@@ -346,7 +339,7 @@ void wxControl::MacPostControlCreate()
     ControlHandle container = (ControlHandle) GetParent()->MacGetContainerForEmbedding() ;
     wxASSERT_MSG( container != NULL , wxT("No valid mac container control") ) ;
     ::EmbedControl( (ControlHandle) m_macControl , container ) ;
     ControlHandle container = (ControlHandle) GetParent()->MacGetContainerForEmbedding() ;
     wxASSERT_MSG( container != NULL , wxT("No valid mac container control") ) ;
     ::EmbedControl( (ControlHandle) m_macControl , container ) ;
-    m_macControlIsShown  = true ;
+    m_macControlIsShown  = MacIsReallyShown() ;
 
     wxAssociateControlWithMacControl( (ControlHandle) m_macControl , this ) ;
     if ( wxMacSetupControlBackgroundUPP == NULL )
 
     wxAssociateControlWithMacControl( (ControlHandle) m_macControl , this ) ;
     if ( wxMacSetupControlBackgroundUPP == NULL )
@@ -399,10 +392,11 @@ void wxControl::MacPostControlCreate()
     SetSize(pos.x, pos.y, new_size.x, new_size.y);
     
 #if wxUSE_UNICODE
     SetSize(pos.x, pos.y, new_size.x, new_size.y);
     
 #if wxUSE_UNICODE
-    UMASetControlTitle( (ControlHandle) m_macControl , wxStripMenuCodes(m_label) ) ;
+    UMASetControlTitle( (ControlHandle) m_macControl , wxStripMenuCodes(m_label) , m_font.GetEncoding() ) ;
 #endif
 
 #endif
 
-    UMAShowControl( (ControlHandle) m_macControl ) ;
+    if ( m_macControlIsShown )
+        UMAShowControl( (ControlHandle) m_macControl ) ;
     
     SetCursor( *wxSTANDARD_CURSOR ) ;
     
     
     SetCursor( *wxSTANDARD_CURSOR ) ;
     
@@ -460,8 +454,7 @@ void wxControl::MacAdjustControlRect()
 
             m_height += 2 * m_macVerticalBorder + MacGetTopBorderSize() + MacGetBottomBorderSize() ;
         }
 
             m_height += 2 * m_macVerticalBorder + MacGetTopBorderSize() + MacGetBottomBorderSize() ;
         }
-          MacUpdateDimensions() ;      
-//        UMASizeControl( (ControlHandle) m_macControl , m_width - 2 * m_macHorizontalBorder, m_height -  2 * m_macVerticalBorder ) ;
+         MacUpdateDimensions() ;      
     }
 }
 
     }
 }