]> git.saurik.com Git - cydia.git/commitdiff
Add cydia.scrollToBottom().
authorJay Freeman (saurik) <saurik@saurik.com>
Wed, 23 Feb 2011 10:49:30 +0000 (02:49 -0800)
committerJay Freeman (saurik) <saurik@saurik.com>
Wed, 23 Feb 2011 10:49:30 +0000 (02:49 -0800)
MobileCydia.mm
UICaboodle/BrowserView.mm

index 51843a76d6587a840b999ba5ed4c6fb6c53782ad..948bb60bc7cae3cee3456ce54d2d5602af0b2460 100644 (file)
@@ -4001,6 +4001,8 @@ static NSString *Warning_;
         return @"refreshSources";
     else if (selector == @selector(removeButton))
         return @"removeButton";
+    else if (selector == @selector(scrollToBottom:))
+        return @"scrollToBottom";
     else if (selector == @selector(setButtonImage:withStyle:toFunction:))
         return @"setButtonImage";
     else if (selector == @selector(setButtonTitle:withStyle:toFunction:))
@@ -4184,6 +4186,10 @@ static NSString *Warning_;
     [indirect_ setPopupHook:function];
 }
 
+- (void) scrollToBottom:(NSNumber *)animated {
+    [indirect_ performSelectorOnMainThread:@selector(scrollToBottomAnimated:) withObject:animated waitUntilDone:NO];
+}
+
 - (void) setViewportWidth:(float)width {
     [indirect_ setViewportWidthOnMainThread:width];
 }
index 07a92eec468f0292f1c530242c4896b1e000eb5f..d5116cfdb7bdb2a54f66ba55086f83ca6b7ac41a 100644 (file)
@@ -601,6 +601,17 @@ static void $UIWebViewWebViewDelegate$webViewClose$(UIWebViewWebViewDelegate *se
         closer_ = [function retain];
 }
 
+- (void) scrollToBottomAnimated:(NSNumber *)animated {
+    CGSize size([scroller_ contentSize]);
+    CGPoint offset([scroller_ contentOffset]);
+    CGRect frame([scroller_ frame]);
+
+    if (size.height - offset.y < frame.size.height + 20.f) {
+        CGRect rect = {{0, size.height-1}, {size.width, 1}};
+        [scroller_ scrollRectToVisible:rect animated:[animated boolValue]];
+    }
+}
+
 - (void) _setViewportWidth {
     [[webview_ _documentView] setViewportSize:CGSizeMake(width_, UIWebViewGrowsAndShrinksToFitHeight) forDocumentTypes:0x10];
 }