Adium Plugin assistance

Evan D. Schoenberg, M.D. evan at adium.im
Sat Sep 8 17:54:56 UTC 2012


Bob, 

Everything looks right from here to me (except, of course, the problem itself).  Could you please post your project folder so far (to me privately off-list if you would prefer not to share it publicly)?  There must be something subtly wrong - I'd like to figure out what it is directly and update the docs to account for it.  Most of our docs were written before Xcode 4 and there may be some necessary change.

-Evan 


On Friday, September 7, 2012 at 11:52 PM, Bob Tanner wrote:

> 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 (mailto: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/20120908/dce50bb5/attachment-0002.html>


More information about the devel mailing list