Adium Plugin assistance
Bob Tanner
tanner at real-time.com
Sat Sep 8 04:52:58 UTC 2012
Followed http://trac.adium.im/wiki/CreatingPlugins to get a bare bones
plugin compiled.
Looking at "Plugins (Built In)/Services" for what to do next I created
a obj-c class (posted at the end) but Xcode is giving me warnings and
errors.
NetrekAdiumPlugin/NetrekAdiumPlugin/AINetrekService.m:47:30: Implicit
declaration of function 'AILocalizedString' is invalid in C99
NetrekAdiumPlugin/NetrekAdiumPlugin/AINetrekService.m:47:30: Implicit
conversion of 'int' to 'NSString *' is disallowed with ARC /
NetrekAdiumPlugin/NetrekAdiumPlugin/AINetrekService.m:47:30:
Incompatible integer to pointer conversion sending 'int' to parameter
of type 'NSString *';
NetrekAdiumPlugin/NetrekAdiumPlugin/AINetrekService.m:51:12: Implicit
conversion of 'int' to 'NSString *' is disallowed with ARC
I found AILocalizedString is a macro defoined in
"AIUtilities/AIStringUtilities.h: but #import that file does not make
the implicit declarations go away.
Since I cut-n-pasted the code from the Bonjour plugin I'm not sure what
I did wrong. New to obj-c, very new to Xcode, but have done a
significant about of development in C, C++, and Python.
Any help would be appreciated. Thanks.
//
// AINetrekService.h
//
#import <Adium/AIService.h>
@interface AINetrekService : AIService {
}
@end
//
// AINetrekService.m
//
#import "AINetrekService.h"
#import <Adium/AIStatusControllerProtocol.h>
#import "AINetrekAccount.h"
#import "AINetrekAccountViewController.h"
@implementation AINetrekService
//Account Creation
- (Class)accountClass{
return [AINetrekAccount class];
}
- (AIAccountViewController *)accountViewController{
return [AINetrekAccountViewController accountViewController];
}
- (DCJoinChatViewController *)joinChatView{
return nil;
}
//Service Description
- (NSString *)serviceCodeUniqueID{
return @"Netrek";
}
- (NSString *)serviceID{
return @"Netrek";
}
- (NSString *)serviceClass{
return @"Netrek";
}
- (NSString *)shortDescription{
return @"Netrek";
}
- (NSString *)longDescription{
return @"Netrek";
}
- (NSURL *)serviceAccountSetupURL
{
return [NSURL
URLWithString:AILocalizedString(@"http://en.wikipedia.org/wiki/Bonjour_(software)",
@"URL for Bonjour signup or about page. Replace with the URL to an
equivalent page in your language if one exists.")];
}
- (NSString *)accountSetupLabel
{
return AILocalizedString(@"About Bonjour", @"Text for Bonjour sign
up button");
}
- (NSCharacterSet *)allowedCharacters{
return [[NSCharacterSet illegalCharacterSet] invertedSet];
}
- (NSUInteger)allowedLength{
return 999;
}
- (BOOL)caseSensitive{
return YES;
}
- (AIServiceImportance)serviceImportance{
return AIServiceSecondary;
}
- (BOOL)supportsProxySettings{
return NO;
}
//No need for a password for Bonjour accounts
- (BOOL)supportsPassword
{
return NO;
}
- (void)registerStatuses{
[adium.statusController registerStatus:STATUS_NAME_AVAILABLE
withDescription:[adium.statusController
localizedDescriptionForCoreStatusName:STATUS_NAME_AVAILABLE]
ofType:AIAvailableStatusType
forService:self];
[adium.statusController registerStatus:STATUS_NAME_AWAY
withDescription:[adium.statusController
localizedDescriptionForCoreStatusName:STATUS_NAME_AWAY]
ofType:AIAwayStatusType
forService:self];
}
- (NSString *)defaultUserName {
return NSFullUserName();
}
@end
--
Bob Tanner <tanner at real-time.com> | Phone : (952 943-8700
http://www.real-time.com, Linux, OSX, VMware | Fax : (952)943-8500
Key fingerprint = F785 DDFC CF94 7CE8 AA87 3A9D 3895 26F1 0DDB E378
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://adium.im/pipermail/devel_adium.im/attachments/20120907/914ade92/attachment-0002.html>
More information about the devel
mailing list