Mercurial > projects > dstep
diff dstep/foundation/NSSpellServer.d @ 16:19885b43130e
Huge update, the bridge actually works now
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sun, 03 Jan 2010 22:06:11 +0100 |
parents | 89f3c3ef1fd2 |
children | b9de51448c6b |
line wrap: on
line diff
--- a/dstep/foundation/NSSpellServer.d Mon Aug 03 15:31:48 2009 +0200 +++ b/dstep/foundation/NSSpellServer.d Sun Jan 03 22:06:11 2010 +0100 @@ -9,25 +9,105 @@ import dstep.foundation.NSArray; import dstep.foundation.NSObject; import dstep.foundation.NSRange; +import dstep.foundation.NSString; import dstep.objc.bridge.Bridge; -import dstep.objc.objc : id; +import dstep.objc.objc; + + import bindings = dstep.foundation.NSSpellServer_bindings; -const NSString NSGrammarRange; -const NSString NSGrammarUserDescription; -const NSString NSGrammarCorrections; +private +{ + NSString NSGrammarRange_; + NSString NSGrammarUserDescription_; + NSString NSGrammarCorrections_; +} + +NSString NSGrammarRange () +{ + if (NSGrammarRange_) + return NSGrammarRange_; + + return NSGrammarRange_ = new NSString(bindings.NSGrammarRange); +} + +NSString NSGrammarUserDescription () +{ + if (NSGrammarUserDescription_) + return NSGrammarUserDescription_; + + return NSGrammarUserDescription_ = new NSString(bindings.NSGrammarUserDescription); +} + +NSString NSGrammarCorrections () +{ + if (NSGrammarCorrections_) + return NSGrammarCorrections_; + + return NSGrammarCorrections_ = new NSString(bindings.NSGrammarCorrections); +} -static this () -{ - NSGrammarRange = new NSString(bindings.NSGrammarRange); - NSGrammarUserDescription = new NSString(bindings.NSGrammarUserDescription); - NSGrammarCorrections = new NSString(bindings.NSGrammarCorrections); -} +const TNSSpellServerDelegate = ` + + NSRange spellServer (NSSpellServer sender, NSString stringToCheck, NSString language, NSInteger* wordCount, bool countOnly) + { + return invokeObjcSelf!(NSRange, "spellServer:findMisspelledWordInString:language:wordCount:countOnly:", NSSpellServer, NSString, NSString, NSInteger*, bool)(sender, stringToCheck, language, wordCount, countOnly); + } + + NSArray spellServer (NSSpellServer sender, NSString word, NSString language) + { + return invokeObjcSelf!(NSArray, "spellServer:suggestGuessesForWord:inLanguage:", NSSpellServer, NSString, NSString)(sender, word, language); + } + + void spellServer_didLearnWord_inLanguage (NSSpellServer sender, NSString word, NSString language) + { + return invokeObjcSelf!(void, "spellServer:didLearnWord:inLanguage:", NSSpellServer, NSString, NSString)(sender, word, language); + } + + void spellServer (NSSpellServer sender, NSString word, NSString language) + { + return invokeObjcSelf!(void, "spellServer:didForgetWord:inLanguage:", NSSpellServer, NSString, NSString)(sender, word, language); + } + + NSArray spellServer (NSSpellServer sender, NSRange range, NSString string, NSString language) + { + return invokeObjcSelf!(NSArray, "spellServer:suggestCompletionsForPartialWordRange:inString:language:", NSSpellServer, NSRange, NSString, NSString)(sender, range, string, language); + } + + NSRange spellServer (NSSpellServer sender, NSString stringToCheck, NSString language, out NSArray details) + { + id det = new objc_object; + + NSRange result = invokeObjcSelf!(NSRange, "spellServer:checkGrammarInString:language:details:", NSSpellServer, NSString, NSString, id*)(sender, stringToCheck, language, &det); + + if (det) + details = new NSArray(det); + + return result; + } + + //mixin ObjcBindMethod!(spellServer, "spellServer:findMisspelledWordInString:language:wordCount:countOnly:"); + //mixin ObjcBindMethod!(spellServer, "spellServer:suggestGuessesForWord:inLanguage:"); + //mixin ObjcBindMethod!(spellServer, "spellServer:didLearnWord:inLanguage:"); + //mixin ObjcBindMethod!(spellServer, "spellServer:didForgetWord:inLanguage:"); + //mixin ObjcBindMethod!(spellServer, "spellServer:suggestCompletionsForPartialWordRange:inString:language:"); + //mixin ObjcBindMethod!(spellServer, "spellServer:checkGrammarInString:language:details:"); +`; class NSSpellServer : NSObject { - mixin ObjcWrap; + mixin (ObjcWrap); + + this () + { + super(typeof(this).alloc.init.objcObject); + } + + typeof(this) init () + { + return invokeObjcSelf!(typeof(this), "init"); + } void setDelegate (Object anObject) { @@ -53,15 +133,4 @@ { return invokeObjcSelf!(void, "run"); } -} - -template TNSSpellServerDelegate () -{ - NSRange spellServer (NSSpellServer sender, NSString stringToCheck, NSString language, NSInteger* wordCount, bool countOnly); - NSArray spellServer (NSSpellServer sender, NSString word, NSString language); - void spellServer (NSSpellServer sender, NSString word, NSString language); - void spellServer (NSSpellServer sender, NSString word, NSString language); - NSArray spellServer (NSSpellServer sender, NSRange range, NSString string, NSString language); - NSRange spellServer (NSSpellServer sender, NSString stringToCheck, NSString language, NSArray** details); -} - +} \ No newline at end of file