summaryrefslogtreecommitdiff
path: root/bindings/objc/src/SwordKey.mm
diff options
context:
space:
mode:
Diffstat (limited to 'bindings/objc/src/SwordKey.mm')
-rw-r--r--bindings/objc/src/SwordKey.mm124
1 files changed, 124 insertions, 0 deletions
diff --git a/bindings/objc/src/SwordKey.mm b/bindings/objc/src/SwordKey.mm
new file mode 100644
index 0000000..5254443
--- /dev/null
+++ b/bindings/objc/src/SwordKey.mm
@@ -0,0 +1,124 @@
+//
+// SwordKey.m
+// MacSword2
+//
+// Created by Manfred Bergmann on 17.12.09.
+// Copyright 2009 Software by MABE. All rights reserved.
+//
+
+#import "SwordKey.h"
+
+
+@implementation SwordKey
+
++ (SwordKey *)swordKey {
+ return [[[SwordKey alloc] init] autorelease];
+}
+
++ (SwordKey *)swordKeyWithRef:(NSString *)aRef {
+ return [[[SwordKey alloc] initWithRef:aRef] autorelease];
+}
+
++ (SwordKey *)swordKeyWithSWKey:(sword::SWKey *)aSk {
+ return [[[SwordKey alloc] initWithSWKey:aSk] autorelease];
+}
+
++ (SwordKey *)swordKeyWithSWKey:(sword::SWKey *)aSk makeCopy:(BOOL)copy {
+ return [[[SwordKey alloc] initWithSWKey:aSk makeCopy:copy] autorelease];
+}
+
+- (id)init {
+ return [self initWithRef:nil];
+}
+
+- (SwordKey *)initWithSWKey:(sword::SWKey *)aSk {
+ return [self initWithSWKey:aSk makeCopy:NO];
+}
+
+- (SwordKey *)initWithSWKey:(sword::SWKey *)aSk makeCopy:(BOOL)copy {
+ self = [super init];
+ if(self) {
+ if(copy) {
+ if(aSk) {
+ sk = aSk->clone();
+ created = YES;
+ } else {
+ created = NO;
+ }
+ } else {
+ sk = aSk;
+ created = NO;
+ }
+ }
+ return self;
+}
+
+- (SwordKey *)initWithRef:(NSString *)aRef {
+ self = [super init];
+ if(self) {
+ sk = new sword::SWKey([aRef UTF8String]);
+ created = YES;
+ }
+
+ return self;
+}
+
+- (void)finalize {
+ if(created) {
+ delete sk;
+ }
+
+ [super finalize];
+}
+
+- (void)dealloc {
+ if(created) {
+ delete sk;
+ }
+
+ [super dealloc];
+}
+
+- (SwordKey *)clone {
+ return [SwordKey swordKeyWithSWKey:sk];
+}
+
+#pragma mark - Methods
+
+- (void)setPersist:(BOOL)flag {
+ sk->Persist((int)flag);
+}
+
+- (BOOL)persist {
+ return (BOOL)sk->Persist();
+}
+
+- (int)error {
+ return sk->Error();
+}
+
+- (void)setPosition:(int)aPosition {
+ sk->setPosition(sword::SW_POSITION((char)aPosition));
+}
+
+- (void)decrement {
+ sk->decrement();
+}
+
+- (void)increment {
+ sk->increment();
+}
+
+- (NSString *)keyText {
+ return [NSString stringWithUTF8String:sk->getText()];
+}
+
+- (void)setKeyText:(NSString *)aKey {
+ sk->setText([aKey UTF8String]);
+}
+
+- (sword::SWKey *)swKey {
+ return sk;
+}
+
+@end