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 againadium / Plugins / Purple Service / ESIRCService.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 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 | //
// ESIRCService.m
// Adium
//
// Created by Evan Schoenberg on 3/4/06.
//
#import "ESIRCService.h"
#import "ESIRCAccount.h"
#import "ESIRCAccountViewController.h"
#import "ESIRCJoinChatViewController.h"
#import <AIUtilities/AIImageAdditions.h>
#import <AIUtilities/AIImageDrawingAdditions.h>
#import <AIUtilities/AICharacterSetAdditions.h>
@implementation ESIRCService
//Account Creation
- (Class)accountClass{
return [ESIRCAccount class];
}
- (AIAccountViewController *)accountViewController{
return [ESIRCAccountViewController accountViewController];
}
- (DCJoinChatViewController *)joinChatView{
return [ESIRCJoinChatViewController joinChatView];
}
//Service Description
- (NSString *)serviceCodeUniqueID{
return @"libpurple-IRC";
}
- (NSString *)serviceID{
return @"IRC";
}
- (NSString *)serviceClass{
return @"IRC";
}
- (NSString *)shortDescription{
return @"IRC";
}
- (NSString *)longDescription{
return AILocalizedString(@"IRC (Internet Relay Chat)", nil);
}
- (NSCharacterSet *)allowedCharacters{
//Per RFC-2812: http://www.ietf.org/rfc/rfc2812.txt
NSMutableCharacterSet *allowedCharacters = [[NSCharacterSet alphanumericCharacterSet] mutableCopy];
NSCharacterSet *returnSet;
[allowedCharacters addCharactersInString:@"[]\\`_^{|}-"];
returnSet = [allowedCharacters immutableCopy];
[allowedCharacters release];
return [returnSet autorelease];
}
- (BOOL)caseSensitive{
return NO;
}
- (BOOL)canCreateGroupChats{
return YES;
}
- (BOOL)supportsPassword{
return YES;
}
//Passwords are supported but optional
- (BOOL)requiresPassword
{
return NO;
}
- (AIServiceImportance)serviceImportance{
return AIServiceSecondary;
}
/*!
* @brief Placeholder string for the UID field
*/
- (NSString *)UIDPlaceholder
{
return AILocalizedString(@"nickname","Sample name and server for new IRC accounts");
}
/*!
* @brief Username label
*/
- (NSString *)userNameLabel
{
return AILocalizedString(@"Nickname", "Name for IRC user names");
}
/*!
* @brief Default icon
*
* Service Icon packs should always include images for all the built-in Adium services. This method allows external
* service plugins to specify an image which will be used when the service icon pack does not specify one. It will
* also be useful if new services are added to Adium itself after a significant number of Service Icon packs exist
* which do not yet have an image for this service. If the active Service Icon pack provides an image for this service,
* this method will not be called.
*
* The service should _not_ cache this icon internally; multiple calls should return unique NSImage objects.
*
* @param iconType The AIServiceIconType of the icon to return. This specifies the desired size of the icon.
* @return NSImage to use for this service by default
*/
- (NSImage *)defaultServiceIconOfType:(AIServiceIconType)iconType
{
if ((iconType == AIServiceIconSmall) || (iconType == AIServiceIconList)) {
return [NSImage imageNamed:@"irc-small" forClass:[self class] loadLazily:YES];
} else {
return [NSImage imageNamed:@"irc" forClass:[self class] loadLazily:YES];
}
}
/*!
* @brief Path for default icon
*
* For use in message views, this is the path to a default icon as described above.
*
* @param iconType The AIServiceIconType of the icon to return.
* @return The path to the image, otherwise nil.
*/
- (NSString *)pathForDefaultServiceIconOfType:(AIServiceIconType)iconType
{
if ((iconType == AIServiceIconSmall) || (iconType == AIServiceIconList)) {
return [[NSBundle bundleForClass:[self class]] pathForImageResource:@"irc-small"];
} else {
return [[NSBundle bundleForClass:[self class]] pathForImageResource:@"irc"];
}
}
@end
|