changeset 802:676d46b31a11

Initial implementation of dw_mle_set_visible().
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Wed, 23 Mar 2011 20:05:11 +0000
parents 5d8e4ecb7820
children 8555ac1bcbcd
files mac/dw.m
diffstat 1 files changed, 12 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- 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)]];
+    }
 }
 
 /*