Author: mlytwyn
Date: Fri Nov 11 00:11:43 2016
New Revision: 40214

URL: http://svn.gna.org/viewcvs/gnustep?rev=40214&view=rev
Log:
Fix string drawing based on Apple functionality

Modified:
    libs/gui/branches/gnustep_testplant_branch/Source/NSStringDrawing.m

Modified: libs/gui/branches/gnustep_testplant_branch/Source/NSStringDrawing.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/gui/branches/gnustep_testplant_branch/Source/NSStringDrawing.m?rev=40214&r1=40213&r2=40214&view=diff
==============================================================================
--- libs/gui/branches/gnustep_testplant_branch/Source/NSStringDrawing.m 
(original)
+++ libs/gui/branches/gnustep_testplant_branch/Source/NSStringDrawing.m Fri Nov 
11 00:11:43 2016
@@ -450,8 +450,28 @@
 
 - (void) drawInRect: (NSRect)rect
 {
-  [self drawWithRect: rect
-             options: NSStringDrawingUsesLineFragmentOrigin];
+  NSAttributedString *attrstring = self;
+  
+  // Redo string to fit in rectangle...
+  // Apple drawing does this by default...
+  NSSize titleSize = [self size];
+  
+  if (titleSize.width > rect.size.width && [self length] > 4)
+  {
+    {
+      attrstring = [[self mutableCopy] autorelease];
+      
+      //unichar ell = 0x2026;
+      NSString *ellipsis = @"...";
+      do
+      {
+        NSRange replaceRange = NSMakeRange(([attrstring length] / 2)-2, 4);
+        [(NSMutableAttributedString *)attrstring 
replaceCharactersInRange:replaceRange withString:ellipsis];
+      } while ([attrstring length] > 4 && [attrstring size].width > 
rect.size.width);
+    }
+  }
+
+  [attrstring drawWithRect: rect options: 
NSStringDrawingUsesLineFragmentOrigin];
 }
 
 - (void) drawWithRect: (NSRect)rect


_______________________________________________
Gnustep-cvs mailing list
Gnustep-cvs@gna.org
https://mail.gna.org/listinfo/gnustep-cvs

Reply via email to