comparison dstep/foundation/NSUserDefaults.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 7ff919f595d5
children b9de51448c6b
comparison
equal deleted inserted replaced
15:7ff919f595d5 16:19885b43130e
7 module dstep.foundation.NSUserDefaults; 7 module dstep.foundation.NSUserDefaults;
8 8
9 import dstep.foundation.NSArray; 9 import dstep.foundation.NSArray;
10 import dstep.foundation.NSData; 10 import dstep.foundation.NSData;
11 import dstep.foundation.NSDictionary; 11 import dstep.foundation.NSDictionary;
12 import dstep.foundation.NSMutableDictionary; 12 import dstep.foundation.NSObjCRuntime;
13 import dstep.foundation.NSObject; 13 import dstep.foundation.NSObject;
14 import dstep.foundation.NSString; 14 import dstep.foundation.NSString;
15 import dstep.objc.bridge.Bridge; 15 import dstep.objc.bridge.Bridge;
16 import dstep.objc.objc : id; 16 import dstep.objc.objc;
17
18
17 19
18 import bindings = dstep.foundation.NSUserDefaults_bindings; 20 import bindings = dstep.foundation.NSUserDefaults_bindings;
19 21
20 const NSString NSGlobalDomain; 22 private
21 const NSString NSArgumentDomain; 23 {
22 const NSString NSRegistrationDomain; 24 NSString NSGlobalDomain_;
23 const NSString NSUserDefaultsDidChangeNotification; 25 NSString NSArgumentDomain_;
24 26 NSString NSRegistrationDomain_;
25 static this () 27 NSString NSUserDefaultsDidChangeNotification_;
26 { 28 }
27 NSGlobalDomain = new NSString(bindings.NSGlobalDomain); 29
28 NSArgumentDomain = new NSString(bindings.NSArgumentDomain); 30 NSString NSGlobalDomain ()
29 NSRegistrationDomain = new NSString(bindings.NSRegistrationDomain); 31 {
30 NSUserDefaultsDidChangeNotification = new NSString(bindings.NSUserDefaultsDidChangeNotification); 32 if (NSGlobalDomain_)
33 return NSGlobalDomain_;
34
35 return NSGlobalDomain_ = new NSString(bindings.NSGlobalDomain);
36 }
37
38 NSString NSArgumentDomain ()
39 {
40 if (NSArgumentDomain_)
41 return NSArgumentDomain_;
42
43 return NSArgumentDomain_ = new NSString(bindings.NSArgumentDomain);
44 }
45
46 NSString NSRegistrationDomain ()
47 {
48 if (NSRegistrationDomain_)
49 return NSRegistrationDomain_;
50
51 return NSRegistrationDomain_ = new NSString(bindings.NSRegistrationDomain);
52 }
53
54 NSString NSUserDefaultsDidChangeNotification ()
55 {
56 if (NSUserDefaultsDidChangeNotification_)
57 return NSUserDefaultsDidChangeNotification_;
58
59 return NSUserDefaultsDidChangeNotification_ = new NSString(bindings.NSUserDefaultsDidChangeNotification);
31 } 60 }
32 61
33 class NSUserDefaults : NSObject 62 class NSUserDefaults : NSObject
34 { 63 {
35 mixin ObjcWrap; 64 mixin (ObjcWrap);
65
66 this ()
67 {
68 super(typeof(this).alloc.init.objcObject);
69 }
70
71 typeof(this) init ()
72 {
73 return invokeObjcSelf!(typeof(this), "init");
74 }
36 75
37 static NSUserDefaults standardUserDefaults () 76 static NSUserDefaults standardUserDefaults ()
38 { 77 {
39 return invokeObjcSelfClass!(NSUserDefaults, "standardUserDefaults"); 78 return invokeObjcSuperClass!(NSUserDefaults, "standardUserDefaults");
40 } 79 }
41 80
42 static void resetStandardUserDefaults () 81 static void resetStandardUserDefaults ()
43 { 82 {
44 return invokeObjcSelfClass!(void, "resetStandardUserDefaults"); 83 return invokeObjcSuperClass!(void, "resetStandardUserDefaults");
45 }
46
47 Object init ()
48 {
49 return invokeObjcSelf!(Object, "init");
50 }
51
52 this ()
53 {
54 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
55 id result = Bridge.invokeObjcMethod!(id, "init")(objcObject);
56
57 if (result)
58 objcObject = ret;
59
60 dObject = this;
61 } 84 }
62 85
63 Object initWithUser (NSString username) 86 Object initWithUser (NSString username)
64 { 87 {
65 return invokeObjcSelf!(Object, "initWithUser:", NSString)(username); 88 return invokeObjcSelf!(Object, "initWithUser:", NSString)(username);
66 } 89 }
67 90
68 this (NSString username) 91 this (NSString username)
69 { 92 {
70 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); 93 typeof(this).alloc.initWithUser(username);
71 id result = Bridge.invokeObjcMethod!(id, "initWithUser:", NSString)(objcObject, username);
72
73 if (result)
74 objcObject = ret;
75
76 dObject = this;
77 } 94 }
78 95
79 Object objectForKey (NSString defaultName) 96 Object objectForKey (NSString defaultName)
80 { 97 {
81 return invokeObjcSelf!(Object, "objectForKey:", NSString)(defaultName); 98 return invokeObjcSelf!(Object, "objectForKey:", NSString)(defaultName);