diff options
author | Paul Gardiner <paul.gardiner@artifex.com> | 2013-10-03 15:14:01 +0100 |
---|---|---|
committer | Paul Gardiner <paul.gardiner@artifex.com> | 2013-10-09 14:31:12 +0100 |
commit | 5ac49662b7d7affd0b43c6b8e827e292b6b8e3e3 (patch) | |
tree | 35d03d97edec2db4463f7764efc95055fad3a216 /platform/ios/Classes/MuHitView.m | |
parent | 17c797eaaec9b33aedf4970fe2184f86f65b25d8 (diff) | |
download | mupdf-5ac49662b7d7affd0b43c6b8e827e292b6b8e3e3.tar.xz |
iOS: implement internal-link following
Also:
add hooks for the other link types
remove unnecessary protocol from MuPageViewReflow
turn off optimizations for the debug build
Diffstat (limited to 'platform/ios/Classes/MuHitView.m')
-rw-r--r-- | platform/ios/Classes/MuHitView.m | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/platform/ios/Classes/MuHitView.m b/platform/ios/Classes/MuHitView.m index be67601a..5fe47d3d 100644 --- a/platform/ios/Classes/MuHitView.m +++ b/platform/ios/Classes/MuHitView.m @@ -66,6 +66,31 @@ [self setNeedsDisplay]; } +- (MuTapResult *) handleTap:(CGPoint)pt +{ + CGSize scale = fitPageToScreen(pageSize, self.bounds.size); + pt.x /= scale.width; + pt.y /= scale.height; + + for (int i = 0; i < hitCount; i++) + { + if (CGRectContainsPoint(hitRects[i], pt)) + { + if (linkPage[i] >= 0) + { + return [[[MuTapResultInternalLink alloc] initWithPageNumber:linkPage[i]] autorelease]; + } + if (linkUrl[i]) + { + NSString *url = [NSString stringWithUTF8String:linkUrl[i]]; + return [[[MuTapResultExternalLink alloc] initWithUrl:url] autorelease]; + } + } + } + + return nil; +} + - (void) drawRect: (CGRect)r { CGSize scale = fitPageToScreen(pageSize, self.bounds.size); |