blob: f72078e7374fbbd515042082f1a69943ff2158dc (
plain)
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
66
67
68
69
70
71
|
#import "Menulet.h"
@implementation Menulet
- (id) init {
if ([super init]) {
statusMenu = [[NSMenu alloc] init];
statusItem = [[[NSStatusBar systemStatusBar] statusItemWithLength: NSVariableStatusItemLength] retain];
[statusItem setHighlightMode: YES];
[statusItem setEnabled: YES];
[statusItem setToolTip: @"Slimber"];
[statusItem setMenu: statusMenu];
[self setUsersOnline: NO];
selfOnline = NO;
[self updateMenu];
}
return self;
}
- (void) dealloc {
[statusItem release];
[menuIcon release];
[super dealloc];
}
- (void) updateMenu {
while ([statusMenu numberOfItems] > 0) {
[statusMenu removeItemAtIndex: 0];
}
NSMenuItem* statusMenuItem = [[NSMenuItem alloc] initWithTitle: @"Online Users" action: NULL keyEquivalent: @""];
[statusMenu addItem: statusMenuItem];
[statusMenu addItem: [NSMenuItem separatorItem]];
NSMenuItem* loggedInItem;
if (selfOnline) {
loggedInItem = [[NSMenuItem alloc] initWithTitle: @"You are logged in" action: NULL keyEquivalent: @""];
}
else {
loggedInItem = [[NSMenuItem alloc] initWithTitle: @"You are not logged in" action: NULL keyEquivalent: @""];
}
[statusMenu addItem: loggedInItem];
[statusMenu addItem: [NSMenuItem separatorItem]];
NSMenuItem* exitMenuItem = [[NSMenuItem alloc] initWithTitle: @"Exit" action: @selector(terminate:) keyEquivalent: @""];
[exitMenuItem setTarget: [NSApplication sharedApplication]];
[statusMenu addItem: exitMenuItem];
}
- (void) setUsersOnline: (BOOL) online {
NSBundle* bundle = [NSBundle bundleForClass: [self class]];
NSString* path;
if (online) {
path = [bundle pathForResource: @"Online" ofType:@"png"];
}
else {
path = [bundle pathForResource: @"Offline" ofType:@"png"];
}
menuIcon = [[NSImage alloc] initWithContentsOfFile: path];
[statusItem setImage: menuIcon];
}
- (void) setSelfConnected: (BOOL) online {
selfOnline = online;
[self updateMenu];
}
@end
|