]> git.saurik.com Git - wxWidgets.git/commitdiff
bugfix : text background when using appearance text drawing
authorStefan Csomor <csomor@advancedconcepts.ch>
Wed, 29 Jan 2003 15:06:08 +0000 (15:06 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Wed, 29 Jan 2003 15:06:08 +0000 (15:06 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@19012 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/mac/carbon/dc.cpp
src/mac/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,
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,