William Bowling is sharing code with you
Bitbucket is a code hosting site. Unlimited public and private repositories. Free for small teams.
Don't show this again1 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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | //
// EBChatCommandsController.m
// Adium
//
// Created by Erik Beerepoot on 11/07/07.
// Copyright 2007 Adium. All rights reserved.
//
#import "EBChatCommandsController.h"
@implementation EBChatCommandsController
+(id)init;
{
return [[super alloc] init];
}
/* @name verifyCommand
* @param command: command picked by the user
* AIChat: the chat the command was issued from
* @brief the method shows the user a sheet to input the
* appropriate information.
*/
-(void)verifyCommand:(NSString*)command forChat:(AIChat*)chat;
{
parameters = [[NSMutableDictionary alloc] init];
[parameters setObject:chat forKey:@"chat"];
[parameters setObject:[chat account] forKey:@"account"];
[parameters setObject:[command stringByAppendingString:@" "] forKey:@"command"];
//check what command was given & set proper label
if([command isEqualTo:@"kick"] || [command isEqualTo:@"ban"]) {
[NSBundle loadNibNamed:@"ChatPrompt" owner:self];
[textField_comment setStringValue:@"(optional)"];
} else if([command isEqualTo:@"topic"]) {
[NSBundle loadNibNamed:@"BanPrompt" owner:self];
[label_target setStringValue:@"Set topic:"];
} else if([command isEqualTo:@"invite"]) {
[NSBundle loadNibNamed:@"ChatPrompt" owner:self];
[label_target setStringValue:@"Invite User:"];
[textField_comment setStringValue:@"(optional)"];
} else if([command isEqualTo:@"msg"]) {
[NSBundle loadNibNamed:@"ChatPrompt" owner:self];
[label_target setStringValue:@"Message User:"];
[label_comment setStringValue:@"Message:"];
} else if([command isEqualTo:@"part"]) {
[NSBundle loadNibNamed:@"BanPrompt" owner:self];
[label_target setStringValue:@"Leave room with comment:"];
} else if([command isEqualTo:@"nick"]) {
[NSBundle loadNibNamed:@"BanPrompt" owner:self];
[label_target setStringValue:@"Enter new handle:"];
} else if([command isEqualTo:@"msg"]) {
[NSBundle loadNibNamed:@"ChatPrompt" owner:self];
[label_target setStringValue:@"Join room:"];
[label_comment setStringValue:@"Password:"];
[textField_comment setStringValue:@"(optional)"];
} else if([command isEqualTo:@"role"]) {
[NSBundle loadNibNamed:@"ChatPrompt" owner:self];
[label_target setStringValue:@"Set role for user:"];
[label_comment setStringValue:@"Role:"];
} else if([command isEqualTo:@"affiliate"]) {
[NSBundle loadNibNamed:@"ChatPrompt" owner:self];
[label_target setStringValue:@"Set affiliation for user:"];
[label_comment setStringValue:@"Affiliation:"];
} else if([command isEqualTo:@"join"]) {
[NSBundle loadNibNamed:@"BanPrompt" owner:self];
[label_target setStringValue:@"Join room:"];
} else {
NSRunAlertPanel(@"Command not supported", @"This command is not supported at this time",@"Cancel",@"OK",nil);
}
//show sheet
[NSApp beginSheet:sheet
modalForWindow:[NSApp keyWindow]
modalDelegate:self
didEndSelector:nil
contextInfo:nil];
}
/* @name ok
* @brief method called when the user presses ok
* on the input sheet. This method calls
* "doCommand" on the delegate.
*/
-(IBAction)ok:(id)sender
{
/* the proper command string is in the form:
* "/ command target"
* make sure this is the form "totalCommandString has"
*/
NSString *command = [[NSString alloc] init];
NSString *totalCommandString = [[NSString alloc] init];
command = [@"/" stringByAppendingString:[parameters objectForKey:@"command"]];
totalCommandString = [command stringByAppendingString:[textField_target stringValue]];
if([textField_comment stringValue] != nil){
command = [totalCommandString stringByAppendingString:@" "];
totalCommandString = [command stringByAppendingString:[textField_comment stringValue]];
}
[parameters setObject:totalCommandString forKey:@"totalCommandString"];
[delegate executeCommandWithParameters:parameters];
[sheet orderOut:nil];
[NSApp endSheet:sheet];
}
/* @name cancel
* @brief method called when user presses cancel on the sheet
* dismisses the sheet
*/
-(IBAction)cancel:(id)sender
{
[sheet orderOut:nil];
[NSApp endSheet:sheet];
}
// @brief accessor methods for the delegate
-(id)delegate
{
return delegate;
}
-(void)setDelegate:(id)newDelegate
{
if(delegate != newDelegate){
[delegate release];
delegate = [newDelegate retain];
}
}
@end
|