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