Mercurial > projects > dstep
comparison dstep/foundation/NSScriptObjectSpecifiers.d @ 14:89f3c3ef1fd2
Added the Foundation framework
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Mon, 03 Aug 2009 15:23:15 +0200 |
parents | |
children | 7ff919f595d5 |
comparison
equal
deleted
inserted
replaced
13:4f583f7e242e | 14:89f3c3ef1fd2 |
---|---|
1 /** | |
2 * Copyright: Copyright (c) 2009 Jacob Carlborg. | |
3 * Authors: Jacob Carlborg | |
4 * Version: Initial created: Aug 3, 2009 | |
5 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) | |
6 */ | |
7 module dstep.foundation.NSScriptObjectSpecifiers; | |
8 | |
9 import dstep.foundation.NSAppleEventDescriptor; | |
10 import dstep.foundation.NSArray; | |
11 import dstep.foundation.NSObject; | |
12 import dstep.foundation.NSScriptClassDescription; | |
13 import dstep.foundation.NSScriptWhoseTest; | |
14 import dstep.foundation.NSString; | |
15 import dstep.objc.bridge.Bridge; | |
16 import dstep.objc.objc : id; | |
17 | |
18 alias NSUInteger NSInsertionPosition; | |
19 alias NSUInteger NSRelativePosition; | |
20 alias NSUInteger NSWhoseSubelementIdentifier; | |
21 | |
22 enum | |
23 { | |
24 NSNoSpecifierError = 0, | |
25 NSNoTopLevelContainersSpecifierError, | |
26 NSContainerSpecifierError, | |
27 NSUnknownKeySpecifierError, | |
28 NSInvalidIndexSpecifierError, | |
29 NSInternalSpecifierError, | |
30 NSOperationNotSupportedForKeySpecifierError | |
31 } | |
32 | |
33 enum | |
34 { | |
35 NSPositionAfter, | |
36 NSPositionBefore, | |
37 NSPositionBeginning, | |
38 NSPositionEnd, | |
39 NSPositionReplace | |
40 } | |
41 | |
42 enum | |
43 { | |
44 NSRelativeAfter = 0, | |
45 NSRelativeBefore | |
46 } | |
47 | |
48 enum | |
49 { | |
50 NSIndexSubelement = 0, | |
51 NSEverySubelement = 1, | |
52 NSMiddleSubelement = 2, | |
53 NSRandomSubelement = 3, | |
54 NSNoSubelement = 4 | |
55 } | |
56 | |
57 class NSIndexSpecifier : NSScriptObjectSpecifier | |
58 { | |
59 mixin ObjcWrap; | |
60 | |
61 Object initWithContainerClassDescription (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, NSInteger index) | |
62 { | |
63 return invokeObjcSelf!(Object, "initWithContainerClassDescription:containerSpecifier:key:index:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, NSInteger)(classDesc, container, property, index); | |
64 } | |
65 | |
66 this (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, NSInteger index) | |
67 { | |
68 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); | |
69 id result = Bridge.invokeObjcMethod!(id, "initWithContainerClassDescription:containerSpecifier:key:index:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, NSInteger)(objcObject, classDesc, container, property, index); | |
70 | |
71 if (result) | |
72 objcObject = ret; | |
73 | |
74 dObject = this; | |
75 } | |
76 | |
77 NSInteger index () | |
78 { | |
79 return invokeObjcSelf!(NSInteger, "index"); | |
80 } | |
81 | |
82 void setIndex (NSInteger index) | |
83 { | |
84 return invokeObjcSelf!(void, "setIndex:", NSInteger)(index); | |
85 } | |
86 } | |
87 | |
88 class NSRangeSpecifier : NSScriptObjectSpecifier | |
89 { | |
90 mixin ObjcWrap; | |
91 | |
92 Object initWithContainerClassDescription (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, NSScriptObjectSpecifier startSpec, NSScriptObjectSpecifier endSpec) | |
93 { | |
94 return invokeObjcSelf!(Object, "initWithContainerClassDescription:containerSpecifier:key:startSpecifier:endSpecifier:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, NSScriptObjectSpecifier, NSScriptObjectSpecifier)(classDesc, container, property, startSpec, endSpec); | |
95 } | |
96 | |
97 this (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, NSScriptObjectSpecifier startSpec, NSScriptObjectSpecifier endSpec) | |
98 { | |
99 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); | |
100 id result = Bridge.invokeObjcMethod!(id, "initWithContainerClassDescription:containerSpecifier:key:startSpecifier:endSpecifier:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, NSScriptObjectSpecifier, NSScriptObjectSpecifier)(objcObject, classDesc, container, property, startSpec, endSpec); | |
101 | |
102 if (result) | |
103 objcObject = ret; | |
104 | |
105 dObject = this; | |
106 } | |
107 | |
108 NSScriptObjectSpecifier startSpecifier () | |
109 { | |
110 return invokeObjcSelf!(NSScriptObjectSpecifier, "startSpecifier"); | |
111 } | |
112 | |
113 void setStartSpecifier (NSScriptObjectSpecifier startSpec) | |
114 { | |
115 return invokeObjcSelf!(void, "setStartSpecifier:", NSScriptObjectSpecifier)(startSpec); | |
116 } | |
117 | |
118 NSScriptObjectSpecifier endSpecifier () | |
119 { | |
120 return invokeObjcSelf!(NSScriptObjectSpecifier, "endSpecifier"); | |
121 } | |
122 | |
123 void setEndSpecifier (NSScriptObjectSpecifier endSpec) | |
124 { | |
125 return invokeObjcSelf!(void, "setEndSpecifier:", NSScriptObjectSpecifier)(endSpec); | |
126 } | |
127 } | |
128 | |
129 class NSUniqueIDSpecifier : NSScriptObjectSpecifier | |
130 { | |
131 mixin ObjcWrap; | |
132 | |
133 Object initWithContainerClassDescription (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, Object uniqueID) | |
134 { | |
135 return invokeObjcSelf!(Object, "initWithContainerClassDescription:containerSpecifier:key:uniqueID:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, Object)(classDesc, container, property, uniqueID); | |
136 } | |
137 | |
138 this (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, Object uniqueID) | |
139 { | |
140 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); | |
141 id result = Bridge.invokeObjcMethod!(id, "initWithContainerClassDescription:containerSpecifier:key:uniqueID:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, Object)(objcObject, classDesc, container, property, uniqueID); | |
142 | |
143 if (result) | |
144 objcObject = ret; | |
145 | |
146 dObject = this; | |
147 } | |
148 | |
149 Object uniqueID () | |
150 { | |
151 return invokeObjcSelf!(Object, "uniqueID"); | |
152 } | |
153 | |
154 void setUniqueID (Object uniqueID) | |
155 { | |
156 return invokeObjcSelf!(void, "setUniqueID:", Object)(uniqueID); | |
157 } | |
158 } | |
159 | |
160 class NSRelativeSpecifier : NSScriptObjectSpecifier | |
161 { | |
162 mixin ObjcWrap; | |
163 | |
164 Object initWithContainerClassDescription (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, uint relPos, NSScriptObjectSpecifier baseSpecifier) | |
165 { | |
166 return invokeObjcSelf!(Object, "initWithContainerClassDescription:containerSpecifier:key:relativePosition:baseSpecifier:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, uint, NSScriptObjectSpecifier)(classDesc, container, property, relPos, baseSpecifier); | |
167 } | |
168 | |
169 this (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, uint relPos, NSScriptObjectSpecifier baseSpecifier) | |
170 { | |
171 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); | |
172 id result = Bridge.invokeObjcMethod!(id, "initWithContainerClassDescription:containerSpecifier:key:relativePosition:baseSpecifier:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, uint, NSScriptObjectSpecifier)(objcObject, classDesc, container, property, relPos, baseSpecifier); | |
173 | |
174 if (result) | |
175 objcObject = ret; | |
176 | |
177 dObject = this; | |
178 } | |
179 | |
180 uint relativePosition () | |
181 { | |
182 return invokeObjcSelf!(uint, "relativePosition"); | |
183 } | |
184 | |
185 void setRelativePosition (uint relPos) | |
186 { | |
187 return invokeObjcSelf!(void, "setRelativePosition:", uint)(relPos); | |
188 } | |
189 | |
190 NSScriptObjectSpecifier baseSpecifier () | |
191 { | |
192 return invokeObjcSelf!(NSScriptObjectSpecifier, "baseSpecifier"); | |
193 } | |
194 | |
195 void setBaseSpecifier (NSScriptObjectSpecifier baseSpecifier) | |
196 { | |
197 return invokeObjcSelf!(void, "setBaseSpecifier:", NSScriptObjectSpecifier)(baseSpecifier); | |
198 } | |
199 } | |
200 | |
201 class NSNameSpecifier : NSScriptObjectSpecifier | |
202 { | |
203 mixin ObjcWrap; | |
204 | |
205 Object initWithContainerClassDescription (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, NSString name) | |
206 { | |
207 return invokeObjcSelf!(Object, "initWithContainerClassDescription:containerSpecifier:key:name:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, NSString)(classDesc, container, property, name); | |
208 } | |
209 | |
210 this (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, NSString name) | |
211 { | |
212 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); | |
213 id result = Bridge.invokeObjcMethod!(id, "initWithContainerClassDescription:containerSpecifier:key:name:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, NSString)(objcObject, classDesc, container, property, name); | |
214 | |
215 if (result) | |
216 objcObject = ret; | |
217 | |
218 dObject = this; | |
219 } | |
220 | |
221 NSString name () | |
222 { | |
223 return invokeObjcSelf!(NSString, "name"); | |
224 } | |
225 | |
226 void setName (NSString name) | |
227 { | |
228 return invokeObjcSelf!(void, "setName:", NSString)(name); | |
229 } | |
230 } | |
231 | |
232 class NSPositionalSpecifier : NSObject | |
233 { | |
234 mixin ObjcWrap; | |
235 | |
236 Object initWithPosition (uint position, NSScriptObjectSpecifier specifier) | |
237 { | |
238 return invokeObjcSelf!(Object, "initWithPosition:objectSpecifier:", uint, NSScriptObjectSpecifier)(position, specifier); | |
239 } | |
240 | |
241 this (uint position, NSScriptObjectSpecifier specifier) | |
242 { | |
243 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); | |
244 id result = Bridge.invokeObjcMethod!(id, "initWithPosition:objectSpecifier:", uint, NSScriptObjectSpecifier)(objcObject, position, specifier); | |
245 | |
246 if (result) | |
247 objcObject = ret; | |
248 | |
249 dObject = this; | |
250 } | |
251 | |
252 uint position () | |
253 { | |
254 return invokeObjcSelf!(uint, "position"); | |
255 } | |
256 | |
257 NSScriptObjectSpecifier objectSpecifier () | |
258 { | |
259 return invokeObjcSelf!(NSScriptObjectSpecifier, "objectSpecifier"); | |
260 } | |
261 | |
262 void setInsertionClassDescription (NSScriptClassDescription classDescription) | |
263 { | |
264 return invokeObjcSelf!(void, "setInsertionClassDescription:", NSScriptClassDescription)(classDescription); | |
265 } | |
266 | |
267 void evaluate () | |
268 { | |
269 return invokeObjcSelf!(void, "evaluate"); | |
270 } | |
271 | |
272 Object insertionContainer () | |
273 { | |
274 return invokeObjcSelf!(Object, "insertionContainer"); | |
275 } | |
276 | |
277 NSString insertionKey () | |
278 { | |
279 return invokeObjcSelf!(NSString, "insertionKey"); | |
280 } | |
281 | |
282 NSInteger insertionIndex () | |
283 { | |
284 return invokeObjcSelf!(NSInteger, "insertionIndex"); | |
285 } | |
286 | |
287 bool insertionReplaces () | |
288 { | |
289 return invokeObjcSelf!(bool, "insertionReplaces"); | |
290 } | |
291 } | |
292 | |
293 class NSScriptObjectSpecifier : NSObject, INSCoding | |
294 { | |
295 mixin ObjcWrap; | |
296 | |
297 static NSScriptObjectSpecifier objectSpecifierWithDescriptor (NSAppleEventDescriptor descriptor) | |
298 { | |
299 return invokeObjcSelfClass!(NSScriptObjectSpecifier, "objectSpecifierWithDescriptor:", NSAppleEventDescriptor)(descriptorreturn result is this.objcObject ? this : (result !is null ? new NSScriptObjectSpecifier(result) : null); } | |
300 | |
301 Object initWithContainerSpecifier (NSScriptObjectSpecifier container, NSString property) | |
302 { | |
303 return invokeObjcSelf!(Object, "initWithContainerSpecifier:key:", NSScriptObjectSpecifier, NSString)(container, property); | |
304 } | |
305 | |
306 this (NSScriptObjectSpecifier container, NSString property) | |
307 { | |
308 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); | |
309 id result = Bridge.invokeObjcMethod!(id, "initWithContainerSpecifier:key:", NSScriptObjectSpecifier, NSString)(objcObject, container, property); | |
310 | |
311 if (result) | |
312 objcObject = ret; | |
313 | |
314 dObject = this; | |
315 } | |
316 | |
317 Object initWithContainerClassDescription (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property) | |
318 { | |
319 return invokeObjcSelf!(Object, "initWithContainerClassDescription:containerSpecifier:key:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString)(classDesc, container, property); | |
320 } | |
321 | |
322 this (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property) | |
323 { | |
324 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); | |
325 id result = Bridge.invokeObjcMethod!(id, "initWithContainerClassDescription:containerSpecifier:key:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString)(objcObject, classDesc, container, property); | |
326 | |
327 if (result) | |
328 objcObject = ret; | |
329 | |
330 dObject = this; | |
331 } | |
332 | |
333 NSScriptObjectSpecifier childSpecifier () | |
334 { | |
335 id result = invokeObjcSelf!(id, "childSpecifier"return result is this.objcObject ? this : (result !is null ? new NSScriptObjectSpecifier(result) : null); } | |
336 | |
337 void setChildSpecifier (NSScriptObjectSpecifier child) | |
338 { | |
339 return invokeObjcSelf!(void, "setChildSpecifier:", NSScriptObjectSpecifier)(child); | |
340 } | |
341 | |
342 NSScriptObjectSpecifier containerSpecifier () | |
343 { | |
344 id result = invokeObjcSelf!(id, "containerSpecifier"return result is this.objcObject ? this : (result !is null ? new NSScriptObjectSpecifier(result) : null); } | |
345 | |
346 void setContainerSpecifier (NSScriptObjectSpecifier subRef) | |
347 { | |
348 return invokeObjcSelf!(void, "setContainerSpecifier:", NSScriptObjectSpecifier)(subRef); | |
349 } | |
350 | |
351 bool containerIsObjectBeingTested () | |
352 { | |
353 return invokeObjcSelf!(bool, "containerIsObjectBeingTested"); | |
354 } | |
355 | |
356 void setContainerIsObjectBeingTested (bool flag) | |
357 { | |
358 return invokeObjcSelf!(void, "setContainerIsObjectBeingTested:", bool)(flag); | |
359 } | |
360 | |
361 bool containerIsRangeContainerObject () | |
362 { | |
363 return invokeObjcSelf!(bool, "containerIsRangeContainerObject"); | |
364 } | |
365 | |
366 void setContainerIsRangeContainerObject (bool flag) | |
367 { | |
368 return invokeObjcSelf!(void, "setContainerIsRangeContainerObject:", bool)(flag); | |
369 } | |
370 | |
371 NSString key () | |
372 { | |
373 return invokeObjcSelf!(NSString, "key"); | |
374 } | |
375 | |
376 void setKey (NSString key) | |
377 { | |
378 return invokeObjcSelf!(void, "setKey:", NSString)(key); | |
379 } | |
380 | |
381 NSScriptClassDescription containerClassDescription () | |
382 { | |
383 return invokeObjcSelf!(NSScriptClassDescription, "containerClassDescription"); | |
384 } | |
385 | |
386 void setContainerClassDescription (NSScriptClassDescription classDesc) | |
387 { | |
388 return invokeObjcSelf!(void, "setContainerClassDescription:", NSScriptClassDescription)(classDesc); | |
389 } | |
390 | |
391 NSScriptClassDescription keyClassDescription () | |
392 { | |
393 return invokeObjcSelf!(NSScriptClassDescription, "keyClassDescription"); | |
394 } | |
395 | |
396 NSInteger* indicesOfObjectsByEvaluatingWithContainer (Object container, NSInteger* count) | |
397 { | |
398 return invokeObjcSelf!(NSInteger*, "indicesOfObjectsByEvaluatingWithContainer:count:", Object, NSInteger*)(container, count); | |
399 } | |
400 | |
401 Object objectsByEvaluatingWithContainers (Object containers) | |
402 { | |
403 return invokeObjcSelf!(Object, "objectsByEvaluatingWithContainers:", Object)(containers); | |
404 } | |
405 | |
406 Object objectsByEvaluatingSpecifier () | |
407 { | |
408 return invokeObjcSelf!(Object, "objectsByEvaluatingSpecifier"); | |
409 } | |
410 | |
411 NSInteger evaluationErrorNumber () | |
412 { | |
413 return invokeObjcSelf!(NSInteger, "evaluationErrorNumber"); | |
414 } | |
415 | |
416 void setEvaluationErrorNumber (NSInteger error) | |
417 { | |
418 return invokeObjcSelf!(void, "setEvaluationErrorNumber:", NSInteger)(error); | |
419 } | |
420 | |
421 NSScriptObjectSpecifier evaluationErrorSpecifier () | |
422 { | |
423 id result = invokeObjcSelf!(id, "evaluationErrorSpecifier"return result is this.objcObject ? this : (result !is null ? new NSScriptObjectSpecifier(result) : null); } | |
424 | |
425 NSAppleEventDescriptor descriptor () | |
426 { | |
427 return invokeObjcSelf!(NSAppleEventDescriptor, "descriptor"); | |
428 } | |
429 | |
430 void encodeWithCoder (NSCoder aCoder) | |
431 { | |
432 return invokeObjcSelf!(void, "encodeWithCoder:", NSCoder)(aCoder); | |
433 } | |
434 | |
435 Object initWithCoder (NSCoder aDecoder) | |
436 { | |
437 return invokeObjcSelf!(Object, "initWithCoder:", NSCoder)(aDecoder); | |
438 } | |
439 | |
440 this (NSCoder aDecoder) | |
441 { | |
442 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); | |
443 id result = Bridge.invokeObjcMethod!(id, "initWithCoder:", NSCoder)(objcObject, aDecoder); | |
444 | |
445 if (result) | |
446 objcObject = ret; | |
447 | |
448 dObject = this; | |
449 } | |
450 } | |
451 | |
452 class NSWhoseSpecifier : NSScriptObjectSpecifier | |
453 { | |
454 mixin ObjcWrap; | |
455 | |
456 Object initWithContainerClassDescription (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, NSScriptWhoseTest test) | |
457 { | |
458 return invokeObjcSelf!(Object, "initWithContainerClassDescription:containerSpecifier:key:test:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, NSScriptWhoseTest)(classDesc, container, property, test); | |
459 } | |
460 | |
461 this (NSScriptClassDescription classDesc, NSScriptObjectSpecifier container, NSString property, NSScriptWhoseTest test) | |
462 { | |
463 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); | |
464 id result = Bridge.invokeObjcMethod!(id, "initWithContainerClassDescription:containerSpecifier:key:test:", NSScriptClassDescription, NSScriptObjectSpecifier, NSString, NSScriptWhoseTest)(objcObject, classDesc, container, property, test); | |
465 | |
466 if (result) | |
467 objcObject = ret; | |
468 | |
469 dObject = this; | |
470 } | |
471 | |
472 NSScriptWhoseTest test () | |
473 { | |
474 return invokeObjcSelf!(NSScriptWhoseTest, "test"); | |
475 } | |
476 | |
477 void setTest (NSScriptWhoseTest test) | |
478 { | |
479 return invokeObjcSelf!(void, "setTest:", NSScriptWhoseTest)(test); | |
480 } | |
481 | |
482 uint startSubelementIdentifier () | |
483 { | |
484 return invokeObjcSelf!(uint, "startSubelementIdentifier"); | |
485 } | |
486 | |
487 void setStartSubelementIdentifier (uint subelement) | |
488 { | |
489 return invokeObjcSelf!(void, "setStartSubelementIdentifier:", uint)(subelement); | |
490 } | |
491 | |
492 NSInteger startSubelementIndex () | |
493 { | |
494 return invokeObjcSelf!(NSInteger, "startSubelementIndex"); | |
495 } | |
496 | |
497 void setStartSubelementIndex (NSInteger index) | |
498 { | |
499 return invokeObjcSelf!(void, "setStartSubelementIndex:", NSInteger)(index); | |
500 } | |
501 | |
502 uint endSubelementIdentifier () | |
503 { | |
504 return invokeObjcSelf!(uint, "endSubelementIdentifier"); | |
505 } | |
506 | |
507 void setEndSubelementIdentifier (uint subelement) | |
508 { | |
509 return invokeObjcSelf!(void, "setEndSubelementIdentifier:", uint)(subelement); | |
510 } | |
511 | |
512 NSInteger endSubelementIndex () | |
513 { | |
514 return invokeObjcSelf!(NSInteger, "endSubelementIndex"); | |
515 } | |
516 | |
517 void setEndSubelementIndex (NSInteger index) | |
518 { | |
519 return invokeObjcSelf!(void, "setEndSubelementIndex:", NSInteger)(index); | |
520 } | |
521 } | |
522 | |
523 template TNSScriptObjectSpecifiers () | |
524 { | |
525 NSScriptObjectSpecifier objectSpecifier (); | |
526 NSArray indicesOfObjectsByEvaluatingObjectSpecifier (NSScriptObjectSpecifier specifier); | |
527 } | |
528 |