mirror of
https://github.com/purplecabbage/phonegap-plugins.git
synced 2026-04-24 03:00:11 -04:00
183 lines
5.2 KiB
Objective-C
183 lines
5.2 KiB
Objective-C
// PDFViewer based on ChildBrowser
|
|
|
|
// / Created by Jesse MacFadyen on 10-05-29.
|
|
// Copyright 2010 Nitobi. All rights reserved.
|
|
// Copyright 2012, Randy McMillan
|
|
|
|
#import "PDFViewerViewController.h"
|
|
#import "UIImage+PDF.h"
|
|
|
|
@implementation PDFViewerViewController
|
|
|
|
@synthesize delegate, orientationDelegate;
|
|
@synthesize closeBtn;
|
|
|
|
@synthesize pdfView;
|
|
@synthesize scrollView;
|
|
@synthesize imageView;
|
|
@synthesize toolBar;
|
|
|
|
/*
|
|
* // The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
|
|
* - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
|
|
* if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
|
|
* // Custom initialization
|
|
* }
|
|
* return self;
|
|
* }
|
|
*/
|
|
|
|
+ (NSString *)resolveImageResource:(NSString *)resource
|
|
{
|
|
NSString *systemVersion = [[UIDevice currentDevice] systemVersion];
|
|
BOOL isLessThaniOS4 = ([systemVersion compare:@"4.0" options:NSNumericSearch] == NSOrderedAscending);
|
|
|
|
if (isLessThaniOS4) {
|
|
return [NSString stringWithFormat:@"%@.png", resource];
|
|
} else {
|
|
if (([[UIScreen mainScreen] respondsToSelector:@selector(scale)] == YES) && ([[UIScreen mainScreen] scale] == 2.00)) {
|
|
return [NSString stringWithFormat:@"%@@2x.png", resource];
|
|
}
|
|
}
|
|
|
|
return resource;// if all else fails
|
|
}
|
|
|
|
- (PDFViewerViewController *)initWithScale:(BOOL)enabled
|
|
{
|
|
self = [super init];
|
|
return self;
|
|
}
|
|
|
|
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
|
|
- (void)viewDidLoad
|
|
{
|
|
[super viewDidLoad];
|
|
|
|
// [self loadPDF:@"YingYang.pdf"];
|
|
NSLog(@"View did load");
|
|
}
|
|
|
|
- (void)loadPDF:(NSString *)pdfName
|
|
{
|
|
NSLog(@"Opening Url : %@", pdfName);
|
|
|
|
// NSString* url = (NSString*)[arguments objectAtIndex:0];
|
|
|
|
UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage originalSizeImageWithPDFNamed:pdfName]];
|
|
// imageView.center = self.view.center;
|
|
|
|
self.imageView.image = tempImageView.image;
|
|
|
|
// [ self.pdfView addSubview:imageView ];
|
|
|
|
#define VIEWBOUNDS [[UIScreen mainScreen] bounds]
|
|
|
|
// [scrollView setBounds:self.view.superview.frame];//VIEWBOUNDS];
|
|
// [imageView setBounds:self.view.superview.frame];//VIEWBOUNDS];
|
|
// [pdfView setBounds:self.view.superview.frame];//VIEWBOUNDS];
|
|
|
|
// [scrollView setBounds:CGRectMake(scrollView.superview.center.x, scrollView.superview.center.y, 100, 100)];
|
|
|
|
scrollView.autoresizingMask = (UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth);
|
|
|
|
imageView.autoresizingMask = (UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth);
|
|
|
|
// imageView.center = self.view.superview.center;
|
|
|
|
[tempImageView release];
|
|
}
|
|
|
|
- (void)didReceiveMemoryWarning
|
|
{
|
|
// Releases the view if it doesn't have a superview.
|
|
[super didReceiveMemoryWarning];
|
|
|
|
// Release any cached data, images, etc that aren't in use.
|
|
}
|
|
|
|
- (void)viewDidUnload
|
|
{
|
|
// Release any retained subviews of the main view.
|
|
// e.g. self.myOutlet = nil;
|
|
NSLog(@"View did UN-load");
|
|
pdfView = nil;
|
|
}
|
|
|
|
- (void)dealloc
|
|
{
|
|
self.delegate = nil;
|
|
self.orientationDelegate = nil;
|
|
|
|
#if !__has_feature(objc_arc)
|
|
[super dealloc];
|
|
#endif
|
|
}
|
|
|
|
- (void)closeBrowser
|
|
{
|
|
if (self.delegate != nil) {
|
|
[self.delegate onClose];
|
|
}
|
|
|
|
if ([self respondsToSelector:@selector(presentingViewController)]) {
|
|
// Reference UIViewController.h Line:179 for update to iOS 5 difference - @RandyMcMillan
|
|
[[self presentingViewController] dismissViewControllerAnimated:YES completion:nil];
|
|
} else {
|
|
[[self parentViewController] dismissModalViewControllerAnimated:YES];
|
|
}
|
|
}
|
|
|
|
- (IBAction)onDoneButtonPress:(id)sender
|
|
{
|
|
[self closeBrowser];
|
|
}
|
|
|
|
/*- (void)webView:(UIWebView *)wv didFailLoadWithError:(NSError *)error {
|
|
* NSLog (@"webView:didFailLoadWithError");
|
|
* [spinner stopAnimating];
|
|
* addressLabel.text = @"Failed";
|
|
* if (error != NULL) {
|
|
* UIAlertView *errorAlert = [[UIAlertView alloc]
|
|
* initWithTitle: [error localizedDescription]
|
|
* message: [error localizedFailureReason]
|
|
* delegate:nil
|
|
* cancelButtonTitle:@"OK"
|
|
* otherButtonTitles:nil];
|
|
* [errorAlert show];
|
|
* [errorAlert release];
|
|
* }
|
|
* }
|
|
*/
|
|
|
|
#pragma mark CDVOrientationDelegate
|
|
|
|
- (BOOL)shouldAutorotate
|
|
{
|
|
if ((self.orientationDelegate != nil) && [self.orientationDelegate respondsToSelector:@selector(shouldAutorotate)]) {
|
|
return [self.orientationDelegate shouldAutorotate];
|
|
}
|
|
|
|
return YES;
|
|
}
|
|
|
|
- (NSUInteger)supportedInterfaceOrientations
|
|
{
|
|
if ((self.orientationDelegate != nil) && [self.orientationDelegate respondsToSelector:@selector(supportedInterfaceOrientations)]) {
|
|
return [self.orientationDelegate supportedInterfaceOrientations];
|
|
}
|
|
|
|
return UIInterfaceOrientationMaskPortrait;
|
|
}
|
|
|
|
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
|
|
{
|
|
if ((self.orientationDelegate != nil) && [self.orientationDelegate respondsToSelector:@selector(shouldAutorotateToInterfaceOrientation:)]) {
|
|
return [self.orientationDelegate shouldAutorotateToInterfaceOrientation:interfaceOrientation];
|
|
}
|
|
|
|
return YES;
|
|
}
|
|
|
|
@end
|