]> git.saurik.com Git - wxWidgets.git/commitdiff
support for fractional characters widths under Mac
authorStefan Csomor <csomor@advancedconcepts.ch>
Sun, 4 Sep 2005 12:52:46 +0000 (12:52 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Sun, 4 Sep 2005 12:52:46 +0000 (12:52 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35423 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/html/htmlcell.cpp

index 9a8a34aeb35184189a9793dda8f3fc83ac47c43a..2846a430b7ea12922175d4597a09a29084108b22 100644 (file)
@@ -296,8 +296,17 @@ void wxHtmlWordCell::Split(wxDC& dc,
         pt1.x = 0;
     if ( pt2.y >= m_Height )
         pt2.x = m_Width;
-
+#ifdef __WXMAC__ 
+    // implementation using PartialExtents to support fractional widths
+    wxArrayInt widths ;
+    dc.GetPartialTextExtents(m_Word,widths) ;
+#endif
+  
     // before selection:
+#ifdef __WXMAC__   
+    while( i < len && pt1.x >= widths[i] )
+        i++ ;
+#else
     while ( pt1.x > 0 && i < len )
     {
         dc.GetTextExtent(m_Word[i], &charW, &charH);
@@ -308,9 +317,14 @@ void wxHtmlWordCell::Split(wxDC& dc,
             i++;
         }
     }
+#endif
 
     // in selection:
     unsigned j = i;
+#ifdef __WXMAC__ 
+    while( j < len && pt2.x >= widths[j] )
+        j++ ;
+#else
     pos2 = pos1;
     pt2.x -= pos2;
     while ( pt2.x > 0 && j < len )
@@ -323,6 +337,7 @@ void wxHtmlWordCell::Split(wxDC& dc,
             j++;
         }
     }
+#endif
 
     pos1 = i;
     pos2 = j;