-
Notifications
You must be signed in to change notification settings - Fork 0
/
AppDelegate.m
65 lines (54 loc) · 1.88 KB
/
AppDelegate.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
//
// AppDelegate.m
// Framer Connect
//
// Created by Michael Feldstein on 11/30/14.
// Copyright (c) 2014 Extra Strength. All rights reserved.
//
#import "AppDelegate.h"
#import "QRCodeGenerator.h"
@interface AppDelegate () {
NSNetService* _service;
}
@property NSStatusItem* statusItem;
@property IBOutlet NSMenu* statusMenu;
@property IBOutlet NSWindow* qrWindow;
@property IBOutlet NSImageView* qrView;
@property IBOutlet NSWindow* aboutWindow;
@end
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
self.statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSSquareStatusItemLength];
self.statusItem.image = [NSImage imageNamed:@"StatusIcon"];
self.statusItem.menu = self.statusMenu;
_service = [[NSNetService alloc] initWithDomain:@"" type:@"_framerconnect._tcp." name:@"Framer Connect Service" port:8000];
[_service publish];
self.qrView.layer.backgroundColor = [NSColor whiteColor].CGColor;
self.qrView.image = [QRCodeGenerator qrImageForString:[self getIPAddress] imageSize:self.qrView.bounds.size.width];
}
- (void)applicationWillTerminate:(NSNotification *)aNotification {
// Insert code here to tear down your application
}
- (IBAction)showQR:(id)sender {
[[NSApplication sharedApplication]activateIgnoringOtherApps:YES];
[self.qrWindow makeKeyAndOrderFront:nil];
}
- (IBAction)showAbout:(id)sender {
[[NSApplication sharedApplication]activateIgnoringOtherApps:YES];
[self.aboutWindow makeKeyAndOrderFront:nil];
}
- (IBAction)quit:(id)sender {
[NSApp terminate:nil];
}
-(NSString *)getIPAddress
{
for (NSString* address in [[NSHost currentHost] addresses]) {
if ([address componentsSeparatedByString:@"."].count == 4) {
if (![address isEqualToString:@"127.0.0.1"]) {
return address;
}
}
}
return nil;
}
@end