Mercurial > projects > dstep
comparison dstep/foundation/NSAppleScript.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 |
comparison
equal
deleted
inserted
replaced
15:7ff919f595d5 | 16:19885b43130e |
---|---|
9 import dstep.foundation.NSAppleEventDescriptor; | 9 import dstep.foundation.NSAppleEventDescriptor; |
10 import dstep.foundation.NSDictionary; | 10 import dstep.foundation.NSDictionary; |
11 import dstep.foundation.NSObject; | 11 import dstep.foundation.NSObject; |
12 import dstep.foundation.NSString; | 12 import dstep.foundation.NSString; |
13 import dstep.foundation.NSURL; | 13 import dstep.foundation.NSURL; |
14 import dstep.foundation.NSZone; | |
14 import dstep.objc.bridge.Bridge; | 15 import dstep.objc.bridge.Bridge; |
15 import dstep.objc.objc : id; | 16 import dstep.objc.objc; |
17 | |
18 | |
16 | 19 |
17 import bindings = dstep.foundation.NSAppleScript_bindings; | 20 import bindings = dstep.foundation.NSAppleScript_bindings; |
18 | 21 |
19 const NSString NSAppleScriptErrorMessage; | 22 private |
20 const NSString NSAppleScriptErrorNumber; | 23 { |
21 const NSString NSAppleScriptErrorAppName; | 24 NSString NSAppleScriptErrorMessage_; |
22 const NSString NSAppleScriptErrorBriefMessage; | 25 NSString NSAppleScriptErrorNumber_; |
23 const NSString NSAppleScriptErrorRange; | 26 NSString NSAppleScriptErrorAppName_; |
27 NSString NSAppleScriptErrorBriefMessage_; | |
28 NSString NSAppleScriptErrorRange_; | |
29 } | |
24 | 30 |
25 static this () | 31 NSString NSAppleScriptErrorMessage () |
26 { | 32 { |
27 NSAppleScriptErrorMessage = new NSString(bindings.NSAppleScriptErrorMessage); | 33 if (NSAppleScriptErrorMessage_) |
28 NSAppleScriptErrorNumber = new NSString(bindings.NSAppleScriptErrorNumber); | 34 return NSAppleScriptErrorMessage_; |
29 NSAppleScriptErrorAppName = new NSString(bindings.NSAppleScriptErrorAppName); | 35 |
30 NSAppleScriptErrorBriefMessage = new NSString(bindings.NSAppleScriptErrorBriefMessage); | 36 return NSAppleScriptErrorMessage_ = new NSString(bindings.NSAppleScriptErrorMessage); |
31 NSAppleScriptErrorRange = new NSString(bindings.NSAppleScriptErrorRange); | 37 } |
38 | |
39 NSString NSAppleScriptErrorNumber () | |
40 { | |
41 if (NSAppleScriptErrorNumber_) | |
42 return NSAppleScriptErrorNumber_; | |
43 | |
44 return NSAppleScriptErrorNumber_ = new NSString(bindings.NSAppleScriptErrorNumber); | |
45 } | |
46 | |
47 NSString NSAppleScriptErrorAppName () | |
48 { | |
49 if (NSAppleScriptErrorAppName_) | |
50 return NSAppleScriptErrorAppName_; | |
51 | |
52 return NSAppleScriptErrorAppName_ = new NSString(bindings.NSAppleScriptErrorAppName); | |
53 } | |
54 | |
55 NSString NSAppleScriptErrorBriefMessage () | |
56 { | |
57 if (NSAppleScriptErrorBriefMessage_) | |
58 return NSAppleScriptErrorBriefMessage_; | |
59 | |
60 return NSAppleScriptErrorBriefMessage_ = new NSString(bindings.NSAppleScriptErrorBriefMessage); | |
61 } | |
62 | |
63 NSString NSAppleScriptErrorRange () | |
64 { | |
65 if (NSAppleScriptErrorRange_) | |
66 return NSAppleScriptErrorRange_; | |
67 | |
68 return NSAppleScriptErrorRange_ = new NSString(bindings.NSAppleScriptErrorRange); | |
32 } | 69 } |
33 | 70 |
34 class NSAppleScript : NSObject, INSCopying | 71 class NSAppleScript : NSObject, INSCopying |
35 { | 72 { |
36 mixin ObjcWrap; | 73 mixin (ObjcWrap); |
37 | 74 |
38 Object initWithContentsOfURL (NSURL url, NSDictionary** errorInfo) | 75 this () |
39 { | 76 { |
40 return invokeObjcSelf!(Object, "initWithContentsOfURL:error:", NSURL, NSDictionary**)(url, errorInfo); | 77 super(typeof(this).alloc.init.objcObject); |
78 } | |
79 | |
80 typeof(this) init () | |
81 { | |
82 return invokeObjcSelf!(typeof(this), "init"); | |
41 } | 83 } |
42 | 84 |
43 this (NSURL url, NSDictionary** errorInfo) | 85 Object initWithContentsOfURL (NSURL url, ref NSDictionary errorInfo) |
44 { | 86 { |
45 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); | 87 id error; |
46 id result = Bridge.invokeObjcMethod!(id, "initWithContentsOfURL:error:", NSURL, NSDictionary**)(objcObject, url, errorInfo); | 88 |
89 if (errorInfo) | |
90 error = new objc_object; | |
91 | |
92 Object result = invokeObjcSelf!(Object, "initWithContentsOfURL:error:", NSURL, id*)(url, &error); | |
93 | |
94 if (error) | |
95 errorInfo = new NSDictionary(error); | |
96 | |
97 return result; | |
98 } | |
47 | 99 |
48 if (result) | 100 this (NSURL url, ref NSDictionary errorInfo) |
49 objcObject = ret; | 101 { |
50 | 102 typeof(this).alloc.initWithContentsOfURL(url, errorInfo); |
51 dObject = this; | |
52 } | 103 } |
53 | 104 |
54 Object initWithSource (NSString source) | 105 Object initWithSource (NSString source) |
55 { | 106 { |
56 return invokeObjcSelf!(Object, "initWithSource:", NSString)(source); | 107 return invokeObjcSelf!(Object, "initWithSource:", NSString)(source); |
57 } | 108 } |
58 | 109 |
59 this (NSString source) | 110 this (NSString source) |
60 { | 111 { |
61 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); | 112 typeof(this).alloc.initWithSource(source); |
62 id result = Bridge.invokeObjcMethod!(id, "initWithSource:", NSString)(objcObject, source); | |
63 | |
64 if (result) | |
65 objcObject = ret; | |
66 | |
67 dObject = this; | |
68 } | 113 } |
69 | 114 |
70 NSString source () | 115 NSString source () |
71 { | 116 { |
72 return invokeObjcSelf!(NSString, "source"); | 117 return invokeObjcSelf!(NSString, "source"); |
75 bool isCompiled () | 120 bool isCompiled () |
76 { | 121 { |
77 return invokeObjcSelf!(bool, "isCompiled"); | 122 return invokeObjcSelf!(bool, "isCompiled"); |
78 } | 123 } |
79 | 124 |
80 bool compileAndReturnError (NSDictionary** errorInfo) | 125 bool compileAndReturnError (ref NSDictionary errorInfo) |
81 { | 126 { |
82 return invokeObjcSelf!(bool, "compileAndReturnError:", NSDictionary**)(errorInfo); | 127 id error; |
128 | |
129 if (errorInfo) | |
130 error = new objc_object; | |
131 | |
132 bool result = invokeObjcSelf!(bool, "compileAndReturnError:", id*)(&error); | |
133 | |
134 if (error) | |
135 errorInfo = new NSDictionary(error); | |
136 | |
137 return result; | |
83 } | 138 } |
84 | 139 |
85 NSAppleEventDescriptor executeAndReturnError (NSDictionary** errorInfo) | 140 NSAppleEventDescriptor executeAndReturnError (ref NSDictionary errorInfo) |
86 { | 141 { |
87 return invokeObjcSelf!(NSAppleEventDescriptor, "executeAndReturnError:", NSDictionary**)(errorInfo); | 142 id error; |
143 | |
144 if (errorInfo) | |
145 error = new objc_object; | |
146 | |
147 NSAppleEventDescriptor result = invokeObjcSelf!(NSAppleEventDescriptor, "executeAndReturnError:", id*)(&error); | |
148 | |
149 if (error) | |
150 errorInfo = new NSDictionary(error); | |
151 | |
152 return result; | |
88 } | 153 } |
89 | 154 |
90 NSAppleEventDescriptor executeAppleEvent (NSAppleEventDescriptor event, NSDictionary** errorInfo) | 155 NSAppleEventDescriptor executeAppleEvent (NSAppleEventDescriptor event, ref NSDictionary errorInfo) |
91 { | 156 { |
92 return invokeObjcSelf!(NSAppleEventDescriptor, "executeAppleEvent:error:", NSAppleEventDescriptor, NSDictionary**)(event, errorInfo); | 157 id error; |
158 | |
159 if (errorInfo) | |
160 error = new objc_object; | |
161 | |
162 NSAppleEventDescriptor result = invokeObjcSelf!(NSAppleEventDescriptor, "executeAppleEvent:error:", NSAppleEventDescriptor, id*)(event, &error); | |
163 | |
164 if (error) | |
165 errorInfo = new NSDictionary(error); | |
166 | |
167 return result; | |
93 } | 168 } |
94 | 169 |
95 Object copyWithZone (NSZone* zone) | 170 Object copyWithZone (NSZone* zone) |
96 { | 171 { |
97 return invokeObjcSelf!(Object, "copyWithZone:", NSZone*)(zone); | 172 return invokeObjcSelf!(Object, "copyWithZone:", NSZone*)(zone); |