summaryrefslogtreecommitdiff
path: root/macosx/Source/PcsxrPluginHandler.m
diff options
context:
space:
mode:
authorSND\MaddTheSane_cp <SND\MaddTheSane_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2014-07-20 05:09:43 +0000
committerSND\MaddTheSane_cp <SND\MaddTheSane_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2014-07-20 05:09:43 +0000
commitd6942932d64a02aa92b1e04e91f6126f33fdb05e (patch)
tree7cad698308e39abc2b0e1c71674c610ec3ce74dd /macosx/Source/PcsxrPluginHandler.m
parentb8d0d24d56dbc0ee64f4ec9a72ab917604d8109d (diff)
downloadpcsxr-d6942932d64a02aa92b1e04e91f6126f33fdb05e.tar.gz
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
Diffstat (limited to 'macosx/Source/PcsxrPluginHandler.m')
-rw-r--r--macosx/Source/PcsxrPluginHandler.m97
1 files changed, 97 insertions, 0 deletions
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