]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/utils.cpp
fixing string param
[wxWidgets.git] / src / mac / carbon / utils.cpp
index 2ad859c32db6746caf6b007e5cf154efc54a1b6a..7c8de25d0bb2a8de7cbb621a04878ed9eed7007b 100644 (file)
@@ -220,7 +220,7 @@ int wxDisplayDepth()
 
     return theDepth;
 #else
-    return 32; // TODO 
+    return 32; // TODO
 #endif
 }
 
@@ -266,7 +266,7 @@ void wxClientDisplayRect(int *x, int *y, int *width, int *height)
         *height = bounds.size.height;
 #else
     int w, h;
-    wxDisplaySize(&w,&h); 
+    wxDisplaySize(&w,&h);
     if ( x )
         *x = 0;
     if ( y )
@@ -469,7 +469,7 @@ OSStatus wxMacCarbonEvent::SetParameter(EventParamName inName, EventParamType in
 
 IMPLEMENT_DYNAMIC_CLASS( wxMacControl , wxObject )
 
-wxMacControl::wxMacControl() 
+wxMacControl::wxMacControl()
 {
     Init();
 }
@@ -643,7 +643,29 @@ void wxMacControl::SuperChangedPosition()
 void wxMacControl::SetFont( const wxFont & font , const wxColour& foreground , long windowStyle )
 {
     m_font = font;
-#ifndef __LP64__
+#if wxMAC_USE_CORE_TEXT
+    if ( UMAGetSystemVersion() >= 0x1050 )
+    {
+        HIViewPartCode part = 0;
+        HIThemeTextHorizontalFlush flush = kHIThemeTextHorizontalFlushDefault;
+        if ( ( windowStyle & wxALIGN_MASK ) & wxALIGN_CENTER_HORIZONTAL )
+            flush = kHIThemeTextHorizontalFlushCenter;
+        else if ( ( windowStyle & wxALIGN_MASK ) & wxALIGN_RIGHT )
+            flush = kHIThemeTextHorizontalFlushRight;
+        HIViewSetTextFont( m_controlRef , part , (CTFontRef) font.MacGetCTFont() );
+        HIViewSetTextHorizontalFlush( m_controlRef, part, flush );
+
+        if ( foreground != *wxBLACK )
+        {
+            ControlFontStyleRec fontStyle;
+            foreground.GetRGBColor( &fontStyle.foreColor );
+            fontStyle.flags = kControlUseForeColorMask;
+            ::SetControlFontStyle( m_controlRef , &fontStyle );
+        }
+
+    }
+#endif
+#if wxMAC_USE_ATSU_TEXT
     ControlFontStyleRec fontStyle;
     if ( font.MacGetThemeFontID() != kThemeCurrentPortFont )
     {
@@ -823,9 +845,9 @@ void wxMacControl::GetRect( Rect *r )
 void wxMacControl::GetRectInWindowCoords( Rect *r )
 {
     GetControlBounds( m_controlRef , r ) ;
-    
+
     WindowRef tlwref = GetControlOwner( m_controlRef ) ;
-    
+
     wxTopLevelWindowMac* tlwwx = wxFindWinFromMacWindow( tlwref ) ;
     if ( tlwwx != NULL )
     {
@@ -852,7 +874,7 @@ void wxMacControl::SetLabel( const wxString &title )
     else
         encoding = wxFont::GetDefaultEncoding();
 
-    SetControlTitleWithCFString( m_controlRef , wxMacCFStringHolder( title , encoding ) );
+    SetControlTitleWithCFString( m_controlRef , wxCFStringRef( title , encoding ) );
 }
 
 void wxMacControl::GetFeatures( UInt32 * features )
@@ -1318,7 +1340,7 @@ void wxMacDataItem::SetColumn( short col )
 void wxMacDataItem::SetLabel( const wxString& str)
 {
     m_label = str;
-    m_cfLabel.Assign( str , wxLocale::GetSystemEncoding());
+    m_cfLabel = wxCFStringRef( str , wxLocale::GetSystemEncoding());
 }
 
 const wxString& wxMacDataItem::GetLabel() const
@@ -1579,8 +1601,7 @@ void wxMacDataItemBrowserControl::InsertColumn(int colId, DataBrowserPropertyTyp
         enc = m_font.GetEncoding();
     else
         enc = wxLocale::GetSystemEncoding();
-    wxMacCFStringHolder cfTitle;
-    cfTitle.Assign( title, enc );
+    wxCFStringRef cfTitle( title, enc );
     columnDesc.headerBtnDesc.titleString = cfTitle;
 
     columnDesc.headerBtnDesc.minimumWidth = 0;
@@ -1886,7 +1907,7 @@ void wxMacDataItemBrowserControl::MacScrollTo( unsigned int n )
     UInt32 linebottom = linetop + height;
     Rect rect ;
     GetRect( &rect );
-    
+
     if ( linetop < top || linebottom > (top + rect.bottom - rect.top ) )
         SetScrollPosition( wxMax( n-2, 0 ) * ((UInt32)height) , left ) ;
 
@@ -1922,17 +1943,17 @@ OSStatus wxMacControl::SetTabEnabled( SInt16 tabNo , bool enable )
 
 CGColorSpaceRef wxMacGetGenericRGBColorSpace()
 {
-    static wxMacCFRefHolder<CGColorSpaceRef> genericRGBColorSpace;
+    static wxCFRef<CGColorSpaceRef> genericRGBColorSpace;
 
     if (genericRGBColorSpace == NULL)
     {
-        genericRGBColorSpace.Set( CGColorSpaceCreateWithName( kCGColorSpaceGenericRGB ) );
+        genericRGBColorSpace.reset( CGColorSpaceCreateWithName( kCGColorSpaceGenericRGB ) );
     }
 
     return genericRGBColorSpace;
 }
 
-CGColorRef wxMacCreateCGColorFromHITheme( ThemeBrush brush ) 
+CGColorRef wxMacCreateCGColorFromHITheme( ThemeBrush brush )
 {
     CGColorRef color ;
     HIThemeBrushCreateCGColor( brush, &color );
@@ -1941,6 +1962,12 @@ CGColorRef wxMacCreateCGColorFromHITheme( ThemeBrush brush )
 
 #if wxMAC_USE_QUICKDRAW
 
+static inline void PointFromHIPoint(const HIPoint& p, Point *pt)
+{
+    pt->h = wx_static_cast(short, p.x);
+    pt->v = wx_static_cast(short, p.y);
+}
+
 void wxMacGlobalToLocal( WindowRef window , Point*pt )
 {
     HIPoint p = CGPointMake( pt->h, pt->v );
@@ -1948,8 +1975,7 @@ void wxMacGlobalToLocal( WindowRef window , Point*pt )
     // TODO check toolbar offset
     HIViewFindByID( HIViewGetRoot( window ), kHIViewWindowContentID , &contentView) ;
     HIPointConvert( &p, kHICoordSpace72DPIGlobal, NULL, kHICoordSpaceView, contentView );
-    pt->h = p.x;
-    pt->v = p.y;
+    PointFromHIPoint(p, pt);
 }
 
 void wxMacLocalToGlobal( WindowRef window , Point*pt )
@@ -1959,10 +1985,10 @@ void wxMacLocalToGlobal( WindowRef window , Point*pt )
     // TODO check toolbar offset
     HIViewFindByID( HIViewGetRoot( window ), kHIViewWindowContentID , &contentView) ;
     HIPointConvert( &p, kHICoordSpaceView, contentView, kHICoordSpace72DPIGlobal, NULL );
-    pt->h = p.x;
-    pt->v = p.y;
+    PointFromHIPoint(p, pt);
 }
-#endif
+
+#endif // wxMAC_USE_QUICKDRAW
 
 #endif // wxUSE_GUI