]> gitweb.factorcode.org Git - factor.git/blob - extra/cocoa/runtime/runtime.factor
Merge branch 'master' of git://factorcode.org/git/factor
[factor.git] / extra / cocoa / runtime / runtime.factor
1 ! Copyright (C) 2006, 2007 Slava Pestov
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien.syntax ;
4 IN: cocoa.runtime
5
6 TYPEDEF: void* SEL
7
8 TYPEDEF: void* id
9
10 FUNCTION: char* sel_getName ( SEL aSelector ) ;
11
12 FUNCTION: bool sel_isMapped ( SEL aSelector ) ;
13
14 FUNCTION: SEL sel_registerName ( char* str ) ;
15
16 C-STRUCT: objc-super
17     { "id" "receiver" }
18     { "void*" "class" } ;
19
20 : CLS_CLASS        HEX: 1   ;
21 : CLS_META         HEX: 2   ;
22 : CLS_INITIALIZED  HEX: 4   ;
23 : CLS_POSING       HEX: 8   ;
24 : CLS_MAPPED       HEX: 10  ;
25 : CLS_FLUSH_CACHE  HEX: 20  ;
26 : CLS_GROW_CACHE   HEX: 40  ;
27 : CLS_NEED_BIND    HEX: 80  ;
28 : CLS_METHOD_ARRAY HEX: 100 ;
29
30 C-STRUCT: objc-class
31     { "void*" "isa" }
32     { "void*" "super-class" }
33     { "char*" "name" }
34     { "long" "version" }
35     { "long" "info" }
36     { "long" "instance-size" }
37     { "void*" "ivars" }
38     { "void*" "methodLists" }
39     { "void*" "cache" }
40     { "void*" "protocols" } ;
41
42 C-STRUCT: objc-object
43     { "objc-class*" "isa" } ;
44
45 FUNCTION: int objc_getClassList ( void* buffer, int bufferLen ) ;
46
47 FUNCTION: objc-class* objc_getClass ( char* class ) ;
48
49 FUNCTION: objc-class* objc_getMetaClass ( char* class ) ;
50
51 FUNCTION: objc-class* objc_getProtocol ( char* class ) ;
52
53 FUNCTION: void objc_addClass ( objc-class* class ) ;
54
55 FUNCTION: id class_createInstance ( objc-class* class, uint additionalByteCount ) ;
56
57 FUNCTION: id class_createInstanceFromZone ( objc-class* class, uint additionalByteCount, void* zone ) ;
58
59 C-STRUCT: objc-method
60     { "SEL" "name" }
61     { "char*" "types" }
62     { "void*" "imp" } ;
63
64 FUNCTION: objc-method* class_getInstanceMethod ( objc-class* class, SEL selector ) ;
65
66 FUNCTION: objc-method* class_getClassMethod ( objc-class* class, SEL selector ) ;
67
68 C-STRUCT: objc-method-list
69     { "void*" "obsolete" }
70     { "int" "count" } ;
71
72 FUNCTION: objc-method-list* class_nextMethodList ( objc-class* class, void** iterator ) ;
73
74 FUNCTION: void class_addMethods ( objc-class* class, objc-method-list* methodList ) ;
75
76 FUNCTION: void class_removeMethods ( objc-class* class, objc-method-list* methodList ) ;
77
78 FUNCTION: uint method_getNumberOfArguments ( objc-method* method ) ;
79
80 FUNCTION: uint method_getSizeOfArguments ( objc-method* method ) ;
81
82 FUNCTION: uint method_getArgumentInfo ( objc-method* method, int argIndex, char** type, int* offset ) ;
83
84 C-STRUCT: objc-protocol-list
85     { "void*" "next" }
86     { "int" "count" }
87     { "objc-class*" "class" } ;