# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1300910711 0 # Node ID 676d46b31a11f5722ed9aec244c3ee6f30a08113 # Parent 5d8e4ecb78203382603403a6150298c1e3c19a83 Initial implementation of dw_mle_set_visible(). diff -r 5d8e4ecb7820 -r 676d46b31a11 mac/dw.m --- a/mac/dw.m Wed Mar 23 19:50:03 2011 +0000 +++ b/mac/dw.m Wed Mar 23 20:05:11 2011 +0000 @@ -3704,10 +3704,19 @@ */ void API dw_mle_set_visible(HWND handle, int line) { - /*NSScrollView *sv = handle; + NSScrollView *sv = handle; DWMLE *mle = [sv documentView]; - [mle scrollrangeToVisible:NSMakeRange(0,13)];*/ - NSLog(@"dw_mle_set_visible() unimplemented\n"); + NSTextStorage *ts = [mle textStorage]; + NSMutableString *ms = [ts mutableString]; + NSUInteger numberOfLines, index, stringLength = [ms length]; + + for(index=0, numberOfLines=0; index < stringLength && numberOfLines < line; numberOfLines++) + index = NSMaxRange([ms lineRangeForRange:NSMakeRange(index, 0)]); + + if(line == numberOfLines) + { + [mle scrollRangeToVisible:[ms lineRangeForRange:NSMakeRange(index, 0)]]; + } } /*