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