From d6942932d64a02aa92b1e04e91f6126f33fdb05e Mon Sep 17 00:00:00 2001 From: "SND\\MaddTheSane_cp" Date: Sun, 20 Jul 2014 05:09:43 +0000 Subject: OS X: Move source files to their own folder. git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@90999 e17a0e51-4ae3-4d35-97c3-1a29b211df97 --- macosx/Source/PcsxrPluginHandler.m | 97 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 macosx/Source/PcsxrPluginHandler.m (limited to 'macosx/Source/PcsxrPluginHandler.m') diff --git a/macosx/Source/PcsxrPluginHandler.m b/macosx/Source/PcsxrPluginHandler.m new file mode 100644 index 00000000..6e99932b --- /dev/null +++ b/macosx/Source/PcsxrPluginHandler.m @@ -0,0 +1,97 @@ +// +// PcsxrPluginHandler.m +// Pcsxr +// +// Created by Charles Betts on 12/10/11. +// Copyright (c) 2011 __MyCompanyName__. All rights reserved. +// + +#import "PcsxrPluginHandler.h" +#import "EmuThread.h" + +@interface PcsxrPluginHandler () +@property BOOL moveOK; +@end + +@implementation PcsxrPluginHandler +@synthesize pluginName; +@synthesize moveOK; + ++ (NSArray *)supportedUTIs +{ + static NSArray *utisupport = nil; + if (utisupport == nil) { + utisupport = @[@"com.codeplex.pcsxr.plugin"]; + } + return utisupport; +} + +- (id)initWithWindow:(NSWindow *)window +{ + self = [super initWithWindow:window]; + if (self) { + moveOK = NO; + } + + return self; +} + +- (NSString*)windowNibName +{ + return @"AddPluginSheet"; +} + +- (id)init +{ + return self = [self initWithWindowNibName:@"AddPluginSheet"]; +} + +- (void)windowDidLoad +{ + [super windowDidLoad]; + + // Implement this method to handle any initialization after your window controller's window has been loaded from its nib file. +} + +- (IBAction)closeAddPluginSheet:(id)sender +{ + if ([[sender keyEquivalent] isEqualToString:@"\r"]) { + moveOK = YES; + } else { + moveOK = NO; + } + [NSApp stopModal]; +} + +- (BOOL)handleFile:(NSString *)theFile +{ + if ([EmuThread active]) { + return NO; + } + + [pluginName setObjectValue:[theFile lastPathComponent]]; + + [NSApp runModalForWindow:[self window]]; + + [[self window] orderOut:nil]; + if (moveOK == YES) { + NSURL *supportURL = [[NSFileManager defaultManager] URLForDirectory:NSApplicationSupportDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:YES error:NULL]; + NSURL *url = [[supportURL URLByAppendingPathComponent:@"Pcsxr" isDirectory:YES] URLByAppendingPathComponent:@"PlugIns" isDirectory:YES]; + + NSFileWrapper *wrapper = [[NSFileWrapper alloc] initWithPath:theFile]; + NSString *dst = [[url URLByAppendingPathComponent:[wrapper filename]] path]; + if ([wrapper writeToFile:dst atomically:NO updateFilenames:NO]) { + [[NSWorkspace sharedWorkspace] noteFileSystemChanged:[url path]]; + NSRunInformationalAlertPanel(NSLocalizedString(@"Installation Succesfull", nil), + NSLocalizedString(@"The installation of the specified plugin was succesfull. In order to use it, please restart the application.", nil), + nil, nil, nil); + } else { + NSRunAlertPanel(NSLocalizedString(@"Installation Failed!", nil), + NSLocalizedString(@"The installation of the specified plugin failed. Please try again, or make a manual install.", nil), + nil, nil, nil); + } + } + return YES; +} + +@end -- cgit v1.2.3