|
|
|
|
@ -114,75 +114,114 @@
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
- (void)showNetworks { |
|
|
|
|
if(self.statusItem.button != nil) { |
|
|
|
|
NSStatusBarButton *button = self.statusItem.button; |
|
|
|
|
[self.networkListPopover showRelativeToRect:button.bounds |
|
|
|
|
ofView:button |
|
|
|
|
preferredEdge:NSMinYEdge]; |
|
|
|
|
|
|
|
|
|
if(self.transientMonitor == nil) { |
|
|
|
|
self.transientMonitor = |
|
|
|
|
[NSEvent addGlobalMonitorForEventsMatchingMask:(NSLeftMouseDown|NSRightMouseDown|NSOtherMouseDown) |
|
|
|
|
handler:^(NSEvent * _Nonnull e) { |
|
|
|
|
[NSEvent removeMonitor:self.transientMonitor]; |
|
|
|
|
self.transientMonitor = nil; |
|
|
|
|
[self.networkListPopover close]; |
|
|
|
|
}]; |
|
|
|
|
} |
|
|
|
|
NSButton *button = nil; |
|
|
|
|
NSRect frame; |
|
|
|
|
if ([self.statusItem respondsToSelector:@selector(button)]) { |
|
|
|
|
button = self.statusItem.button; |
|
|
|
|
frame = button.bounds; |
|
|
|
|
} else if ([self.statusItem respondsToSelector:@selector(_button)]) { |
|
|
|
|
button = [self.statusItem performSelector:@selector(_button)]; |
|
|
|
|
frame = button.bounds; |
|
|
|
|
} else { |
|
|
|
|
NSLog(@"Can't get view. Uh oh."); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[self.networkListPopover showRelativeToRect:frame |
|
|
|
|
ofView:button |
|
|
|
|
preferredEdge:NSMinYEdge]; |
|
|
|
|
|
|
|
|
|
if(self.transientMonitor == nil) { |
|
|
|
|
self.transientMonitor = |
|
|
|
|
[NSEvent addGlobalMonitorForEventsMatchingMask:(NSLeftMouseDown|NSRightMouseDown|NSOtherMouseDown) |
|
|
|
|
handler:^(NSEvent * _Nonnull e) { |
|
|
|
|
[NSEvent removeMonitor:self.transientMonitor]; |
|
|
|
|
self.transientMonitor = nil; |
|
|
|
|
[self.networkListPopover close]; |
|
|
|
|
}]; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
- (void)joinNetwork { |
|
|
|
|
if(self.statusItem.button != nil) { |
|
|
|
|
NSStatusBarButton *button = self.statusItem.button; |
|
|
|
|
[self.joinNetworkPopover showRelativeToRect:button.bounds |
|
|
|
|
ofView:button |
|
|
|
|
preferredEdge:NSMinYEdge]; |
|
|
|
|
if(self.transientMonitor == nil) { |
|
|
|
|
self.transientMonitor = |
|
|
|
|
[NSEvent addGlobalMonitorForEventsMatchingMask:(NSLeftMouseDown|NSRightMouseDown|NSOtherMouseDown) |
|
|
|
|
handler:^(NSEvent * _Nonnull e) { |
|
|
|
|
[NSEvent removeMonitor:self.transientMonitor]; |
|
|
|
|
self.transientMonitor = nil; |
|
|
|
|
[self.joinNetworkPopover close]; |
|
|
|
|
}]; |
|
|
|
|
} |
|
|
|
|
NSButton *button = nil; |
|
|
|
|
NSRect frame; |
|
|
|
|
if ([self.statusItem respondsToSelector:@selector(button)]) { |
|
|
|
|
button = self.statusItem.button; |
|
|
|
|
frame = button.bounds; |
|
|
|
|
} else if ([self.statusItem respondsToSelector:@selector(_button)]) { |
|
|
|
|
button = [self.statusItem performSelector:@selector(_button)]; |
|
|
|
|
frame = button.bounds; |
|
|
|
|
} else { |
|
|
|
|
NSLog(@"Can't get view. Uh oh."); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[self.joinNetworkPopover showRelativeToRect:button.bounds |
|
|
|
|
ofView:button |
|
|
|
|
preferredEdge:NSMinYEdge]; |
|
|
|
|
if(self.transientMonitor == nil) { |
|
|
|
|
self.transientMonitor = |
|
|
|
|
[NSEvent addGlobalMonitorForEventsMatchingMask:(NSLeftMouseDown|NSRightMouseDown|NSOtherMouseDown) |
|
|
|
|
handler:^(NSEvent * _Nonnull e) { |
|
|
|
|
[NSEvent removeMonitor:self.transientMonitor]; |
|
|
|
|
self.transientMonitor = nil; |
|
|
|
|
[self.joinNetworkPopover close]; |
|
|
|
|
}]; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
- (void)showPreferences { |
|
|
|
|
if(self.statusItem.button != nil) { |
|
|
|
|
NSStatusBarButton *button = self.statusItem.button; |
|
|
|
|
[self.preferencesPopover showRelativeToRect:button.bounds |
|
|
|
|
ofView:button |
|
|
|
|
preferredEdge:NSMinYEdge]; |
|
|
|
|
if(self.transientMonitor == nil) { |
|
|
|
|
[NSEvent addGlobalMonitorForEventsMatchingMask:(NSLeftMouseDown|NSRightMouseDown|NSOtherMouseDown) |
|
|
|
|
handler:^(NSEvent * _Nonnull e) { |
|
|
|
|
[NSEvent removeMonitor:self.transientMonitor]; |
|
|
|
|
self.transientMonitor = nil; |
|
|
|
|
[self.preferencesPopover close]; |
|
|
|
|
}]; |
|
|
|
|
} |
|
|
|
|
NSButton *button = nil; |
|
|
|
|
NSRect frame; |
|
|
|
|
if ([self.statusItem respondsToSelector:@selector(button)]) { |
|
|
|
|
button = self.statusItem.button; |
|
|
|
|
frame = button.bounds; |
|
|
|
|
} else if ([self.statusItem respondsToSelector:@selector(_button)]) { |
|
|
|
|
button = [self.statusItem performSelector:@selector(_button)]; |
|
|
|
|
frame = button.bounds; |
|
|
|
|
} else { |
|
|
|
|
NSLog(@"Can't get view. Uh oh."); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[self.preferencesPopover showRelativeToRect:button.bounds |
|
|
|
|
ofView:button |
|
|
|
|
preferredEdge:NSMinYEdge]; |
|
|
|
|
if(self.transientMonitor == nil) { |
|
|
|
|
[NSEvent addGlobalMonitorForEventsMatchingMask:(NSLeftMouseDown|NSRightMouseDown|NSOtherMouseDown) |
|
|
|
|
handler:^(NSEvent * _Nonnull e) { |
|
|
|
|
[NSEvent removeMonitor:self.transientMonitor]; |
|
|
|
|
self.transientMonitor = nil; |
|
|
|
|
[self.preferencesPopover close]; |
|
|
|
|
}]; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
- (void)showAbout { |
|
|
|
|
if(self.statusItem.button != nil) { |
|
|
|
|
NSStatusBarButton *button = self.statusItem.button; |
|
|
|
|
[self.aboutPopover showRelativeToRect:button.bounds |
|
|
|
|
ofView:button |
|
|
|
|
preferredEdge:NSMinYEdge]; |
|
|
|
|
if(self.transientMonitor == nil) { |
|
|
|
|
[NSEvent addGlobalMonitorForEventsMatchingMask:(NSLeftMouseDown|NSRightMouseDown|NSOtherMouseDown) |
|
|
|
|
handler:^(NSEvent * _Nonnull e) { |
|
|
|
|
[NSEvent removeMonitor:self.transientMonitor]; |
|
|
|
|
self.transientMonitor = nil; |
|
|
|
|
[self.aboutPopover close]; |
|
|
|
|
}]; |
|
|
|
|
} |
|
|
|
|
NSButton *button = nil; |
|
|
|
|
NSRect frame; |
|
|
|
|
if ([self.statusItem respondsToSelector:@selector(button)]) { |
|
|
|
|
button = self.statusItem.button; |
|
|
|
|
frame = button.bounds; |
|
|
|
|
} else if ([self.statusItem respondsToSelector:@selector(_button)]) { |
|
|
|
|
button = [self.statusItem performSelector:@selector(_button)]; |
|
|
|
|
frame = button.bounds; |
|
|
|
|
} else { |
|
|
|
|
NSLog(@"Can't get view. Uh oh."); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[self.aboutPopover showRelativeToRect:button.bounds |
|
|
|
|
ofView:button |
|
|
|
|
preferredEdge:NSMinYEdge]; |
|
|
|
|
if(self.transientMonitor == nil) { |
|
|
|
|
[NSEvent addGlobalMonitorForEventsMatchingMask:(NSLeftMouseDown|NSRightMouseDown|NSOtherMouseDown) |
|
|
|
|
handler:^(NSEvent * _Nonnull e) { |
|
|
|
|
[NSEvent removeMonitor:self.transientMonitor]; |
|
|
|
|
self.transientMonitor = nil; |
|
|
|
|
[self.aboutPopover close]; |
|
|
|
|
}]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
- (void)quit { |
|
|
|
|
|