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