]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/dc.cpp
Make wxr resources work in Unicode mode.
[wxWidgets.git] / src / mac / carbon / dc.cpp
index 1d19d743cd83433a73580a5f1cc23b00e5d6bafa..b0e3183298e87046fb07854c91fb23baaba6014f 100644 (file)
@@ -1379,6 +1379,21 @@ void  wxDC::DoDrawText(const wxString& strtext, wxCoord x, wxCoord y)
                {
                    Rect frame = { yy + line*(fi.descent + fi.ascent + fi.leading)  ,xx , yy + (line+1)*(fi.descent + fi.ascent + fi.leading) , xx + 10000 } ;
                     CFStringRef mString = CFStringCreateWithBytes( NULL , (UInt8*) text + laststop , i - laststop , CFStringGetSystemEncoding(), false ) ;
+                           if ( m_backgroundMode != wxTRANSPARENT )
+                           {
+                                   Point bounds={0,0} ;
+                                   Rect background = frame ;
+                                   SInt16 baseline ;
+                                       ::GetThemeTextDimensions( mString,
+                                                                               kThemeCurrentPortFont,
+                                                                               kThemeStateActive,
+                                                                               false,
+                                                                               &bounds,
+                                                                               &baseline );
+                                       background.right = background.left + bounds.h ;
+                                       background.bottom = background.top + bounds.v ;
+                                       ::EraseRect( &background ) ;
+                           }
                        ::DrawThemeTextBox( mString,
                                                                kThemeCurrentPortFont,
                                                                kThemeStateActive,
@@ -1405,6 +1420,21 @@ void  wxDC::DoDrawText(const wxString& strtext, wxCoord x, wxCoord y)
        {
            Rect frame = { yy + line*(fi.descent + fi.ascent + fi.leading)  ,xx , yy + (line+1)*(fi.descent + fi.ascent + fi.leading) , xx + 10000 } ;
             CFStringRef mString = CFStringCreateWithCString( NULL , text + laststop , kCFStringEncodingMacRoman ) ;
+            if ( m_backgroundMode != wxTRANSPARENT )
+            {
+                   Point bounds={0,0} ;
+                   Rect background = frame ;
+                   SInt16 baseline ;
+                       ::GetThemeTextDimensions( mString,
+                                                               kThemeCurrentPortFont,
+                                                               kThemeStateActive,
+                                                               false,
+                                                               &bounds,
+                                                               &baseline );
+                       background.right = background.left + bounds.h ;
+                       background.bottom = background.top + bounds.v ;
+                       ::EraseRect( &background ) ;
+            }
                ::DrawThemeTextBox( mString,
                                                        kThemeCurrentPortFont,
                                                        kThemeStateActive,