- (NSMenu *) menu {
NSMenu *menu = [[NSMenu alloc] initWithTitle:@""];
NSMenuItem *item =nil;
NSArray *standardItems = [[self user] standardMenuItems];
NSEnumerator *enumerator = [standardItems objectEnumerator];
while( ( item = [enumerator nextObject] ) )
if( [item action] !=@selector( startDirectChat: ) )
[menu addItem:item];
[menu addItem:[NSMenuItem separatorItem]];
item = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"Ignore Notifications", "lists whether or not notifications are enabled for this conversation") action:@selector( toggleNotifications: ) keyEquivalent:@""];
[item setTarget:self];
[menu addItem:item];
[item release];
[menu addItem:[NSMenuItem separatorItem]];
if( [[[self windowController] allChatViewControllers] count] >1 ) {
item = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"Detach From Window", "detach from window contextual menu item title" ) action:@selector( detachView: ) keyEquivalent:@""];
[item setRepresentedObject:self];
[item setTarget:[JVChatController defaultController]];
[menu addItem:item];
[item release];
}
if( [[self target] isKindOfClass:[MVDirectChatConnection class]] ) {
item = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"Disconnect", "disconnect contextual menu item title" ) action:@selector( disconnect ) keyEquivalent:@""];
[item setTarget:[self target]];
[menu addItem:item];
[item release];
}
item = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"Close", "close contextual menu item title" ) action:@selector( close: ) keyEquivalent:@""];
[item setTarget:self];
[menu addItem:item];
[item release];
return [menu autorelease];
}
- (BOOL) validateMenuItem:(NSMenuItem *) menuItem {
if( [menuItem action] ==@selector( toggleNotifications: ) ) {
if( [[self preferenceForKey:@"muted"] boolValue] )
[menuItem setState:NSOnState];
else [menuItem setState:NSOffState];
}
returnYES;
}
- (NSToolbarItem *) toolbar:(NSToolbar *) toolbar itemForItemIdentifier:(NSString *) identifier willBeInsertedIntoToolbar:(BOOL) willBeInserted { NSToolbarItem *toolbarItem = [[[NSToolbarItem alloc] initWithItemIdentifier:identifier] autorelease]; if( [identifier isEqualToString:JVToolbarToggleChatDrawerItemIdentifier] ) { toolbarItem = [_windowController toggleChatDrawerToolbarItem]; } else if( [identifier isEqualToString:JVToolbarToggleChatActivityItemIdentifier] ) { // toolbarItem = [_windowController chatActivityToolbarItem]; } else if( [identifier isEqualToString:JVToolbarChooseStyleItemIdentifier] && ! willBeInserted ) { [toolbarItem setLabel:NSLocalizedString( @"Style", "choose style toolbar item label" )]; [toolbarItem setPaletteLabel:NSLocalizedString( @"Style", "choose style toolbar item patlette label" )]; [toolbarItem setImage:[NSImage imageNamed:@"chooseStyle"]]; } else if( [identifier isEqualToString:JVToolbarChooseStyleItemIdentifier] && willBeInserted ) { [toolbarItem setLabel:NSLocalizedString( @"Style", "choose style toolbar item label" )]; [toolbarItem setPaletteLabel:NSLocalizedString( @"Style", "choose style toolbar item patlette label" )]; MVMenuButton *button = [[[MVMenuButton alloc] initWithFrame:NSMakeRect( 0., 0., 32., 32. )] autorelease]; [button setImage:[NSImage imageNamed:@"chooseStyle"]]; [button setDrawsArrow:YES]; [button setMenu:_styleMenu]; [toolbarItem setToolTip:NSLocalizedString( @"Change chat style", "choose style toolbar item tooltip" )]; [button setToolbarItem:toolbarItem]; [toolbarItem setTarget:self]; [toolbarItem setView:button]; NSMenuItem *menuItem = [[[NSMenuItem alloc] initWithTitle:NSLocalizedString( @"Style", "choose style toolbar item menu representation title" ) action:NULL keyEquivalent:@""] autorelease]; NSImage *icon = [[[NSImage imageNamed:@"chooseStyle"] copy] autorelease]; [icon setScalesWhenResized:YES]; [icon setSize:NSMakeSize( 16., 16. )]; [menuItem setImage:icon]; [menuItem setSubmenu:_styleMenu]; [toolbarItem setMenuFormRepresentation:menuItem]; } else if( [identifier isEqualToString:JVToolbarEmoticonsItemIdentifier] && ! willBeInserted ) { [toolbarItem setLabel:NSLocalizedString( @"Emoticons", "choose emoticons toolbar item label" )]; [toolbarItem setPaletteLabel:NSLocalizedString( @"Emoticons", "choose emoticons toolbar item patlette label" )]; [toolbarItem setImage:[NSImage imageNamed:@"emoticon"]]; } else if( [identifier isEqualToString:JVToolbarEmoticonsItemIdentifier] && willBeInserted ) { [toolbarItem setLabel:NSLocalizedString( @"Emoticons", "choose emoticons toolbar item label" )]; [toolbarItem setPaletteLabel:NSLocalizedString( @"Emoticons", "choose emoticons toolbar item patlette label" )]; MVMenuButton *button = [[[MVMenuButton alloc] initWithFrame:NSMakeRect( 0., 0., 32., 32. )] autorelease]; [button setImage:[NSImage imageNamed:@"emoticon"]]; [button setDrawsArrow:YES]; [button setMenu:_emoticonMenu]; [toolbarItem setToolTip:NSLocalizedString( @"Change Emoticons", "choose emoticons toolbar item tooltip" )]; [button setToolbarItem:toolbarItem]; [toolbarItem setTarget:self]; [toolbarItem setView:button]; NSMenuItem *menuItem = [[[NSMenuItem alloc] initWithTitle:NSLocalizedString( @"Emoticons", "choose emoticons toolbar item menu representation title" ) action:NULL keyEquivalent:@""] autorelease]; NSImage *icon = [[[NSImage imageNamed:@"emoticon"] copy] autorelease]; [icon setScalesWhenResized:YES]; [icon setSize:NSMakeSize( 16., 16. )]; [menuItem setImage:icon]; [menuItem setSubmenu:_emoticonMenu]; [toolbarItem setMenuFormRepresentation:menuItem]; } else toolbarItem = nil; return toolbarItem; }