aboutsummaryrefslogtreecommitdiffstats
path: root/Copy Mailto/AppDelegate.m
diff options
context:
space:
mode:
Diffstat (limited to 'Copy Mailto/AppDelegate.m')
-rw-r--r--Copy Mailto/AppDelegate.m42
1 files changed, 42 insertions, 0 deletions
diff --git a/Copy Mailto/AppDelegate.m b/Copy Mailto/AppDelegate.m
new file mode 100644
index 0000000..752b716
--- /dev/null
+++ b/Copy Mailto/AppDelegate.m
@@ -0,0 +1,42 @@
+//
+// AppDelegate.m
+// CopyMailto
+//
+// Created by tw on 9/5/18.
+// Copyright © 2018 tw. All rights reserved.
+//
+
+#import "AppDelegate.h"
+
+const NSUInteger MAILTO_INDEX = 7;
+
+@implementation AppDelegate
+
+- (void)applicationWillFinishLaunching:(NSNotification *)aNotification {
+ [[NSAppleEventManager sharedAppleEventManager]
+ setEventHandler:self
+ andSelector:@selector(handleURLEvent:withReplyEvent:)
+ forEventClass:kInternetEventClass
+ andEventID:kAEGetURL];
+}
+
+- (void)handleURLEvent:(NSAppleEventDescriptor *)event
+ withReplyEvent: (NSAppleEventDescriptor *)replyEvent
+{
+ NSString *url = [[event paramDescriptorForKeyword:keyDirectObject]
+ stringValue];
+ [_email_address setStringValue:[url substringFromIndex:MAILTO_INDEX]];
+}
+
+- (IBAction)copyEmailToClipboard:(id)sender
+{
+ NSPasteboard *pasteboard = [NSPasteboard generalPasteboard];
+ [pasteboard clearContents];
+ [pasteboard writeObjects:
+ [NSArray arrayWithObject:
+ [_email_address stringValue]]];
+
+ [NSApp terminate:self];
+}
+
+@end