Mercurial > projects > dwt-mac
annotate dwt/internal/objc/runtime.d @ 156:969e7de37c3d default tip
Fixes to get dwt to work with dmd and ldc
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Wed, 08 Jul 2009 21:56:44 +0200 |
parents | e91dcbf77cc7 |
children |
rev | line source |
---|---|
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
1 /** |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
2 * Copyright: Copyright (c) 2008 Jacob Carlborg. All rights reserved. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3 * Authors: Jacob Carlborg |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
4 * Version: Initial created: 2008 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
5 * License: $(LINK2 http://opensource.org/licenses/bsd-license.php, BSD Style) |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
6 * |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
7 */ |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
8 module dwt.internal.objc.runtime; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
9 |
45 | 10 import dwt.dwthelper.utils; |
60
62202ce0039f
Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents:
46
diff
changeset
|
11 import dwt.internal.c.Carbon; |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
12 import dwt.internal.cocoa.NSPoint; |
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
13 import dwt.internal.cocoa.NSRange; |
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
14 import dwt.internal.cocoa.NSSize; |
19
fba856099f87
Ported dwt.widgets.Display
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
17
diff
changeset
|
15 import dwt.internal.cocoa.NSRect; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
16 static import dwt.internal.objc.bindings; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
17 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
18 alias objc_ivar* Ivar; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
19 alias objc_method* Method; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
20 alias objc_object Protocol; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
21 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
22 alias char* SEL; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
23 alias objc_class* Class; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
24 alias objc_object* id; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
25 |
10
30a762abda2a
Revert automatic changes from dwt/internal and dwt/dwthelper. Excluded dwt/internal/image and theme.
Frank Benoit <benoit@tionex.de>
parents:
7
diff
changeset
|
26 alias extern (C) id function(id, SEL, ...) IMP; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
27 |
60
62202ce0039f
Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents:
46
diff
changeset
|
28 version (X86) |
62202ce0039f
Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents:
46
diff
changeset
|
29 const int STRUCT_SIZE_LIMIT = 8; |
62202ce0039f
Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents:
46
diff
changeset
|
30 |
62202ce0039f
Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents:
46
diff
changeset
|
31 else version (PPC) |
62202ce0039f
Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents:
46
diff
changeset
|
32 const int STRUCT_SIZE_LIMIT = 4; |
62202ce0039f
Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents:
46
diff
changeset
|
33 |
62202ce0039f
Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents:
46
diff
changeset
|
34 else version (X86_64) |
62202ce0039f
Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents:
46
diff
changeset
|
35 const int STRUCT_SIZE_LIMIT = 16; |
62202ce0039f
Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents:
46
diff
changeset
|
36 |
155
e91dcbf77cc7
Fixes runtime problems with dmd and ldc. Changed a couple of floats to CGFloat
Jacob Carlborg <doob@me.com>
parents:
129
diff
changeset
|
37 else version (PPC64) |
e91dcbf77cc7
Fixes runtime problems with dmd and ldc. Changed a couple of floats to CGFloat
Jacob Carlborg <doob@me.com>
parents:
129
diff
changeset
|
38 const int STRUCT_SIZE_LIMIT = 16; |
e91dcbf77cc7
Fixes runtime problems with dmd and ldc. Changed a couple of floats to CGFloat
Jacob Carlborg <doob@me.com>
parents:
129
diff
changeset
|
39 |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
40 struct objc_object |
45 | 41 { |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
42 Class isa; |
45 | 43 } |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
44 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
45 struct objc_super |
45 | 46 { |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
47 id receiver; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
48 Class clazz; |
14
762fbe6f17d3
Ported dwt.widgets.Widget
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
1
diff
changeset
|
49 |
15
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
14
diff
changeset
|
50 // for dwt compatibility |
14
762fbe6f17d3
Ported dwt.widgets.Widget
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
1
diff
changeset
|
51 alias clazz cls; |
46
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
52 alias clazz super_class; |
45 | 53 } |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
54 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
55 struct objc_class |
45 | 56 { |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
57 Class isa; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
58 Class super_class; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
59 const char* name; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
60 int versionn; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
61 int info; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
62 int instance_size; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
63 objc_ivar_list* ivars; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
64 objc_method_list** methodLists; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
65 objc_cache* cache; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
66 objc_protocol_list* protocols; |
45 | 67 } |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
68 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
69 struct objc_ivar |
45 | 70 { |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
71 char* ivar_name; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
72 char* ivar_type; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
73 int ivar_offset; |
37
642f460a0908
Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
36
diff
changeset
|
74 |
10
30a762abda2a
Revert automatic changes from dwt/internal and dwt/dwthelper. Excluded dwt/internal/image and theme.
Frank Benoit <benoit@tionex.de>
parents:
7
diff
changeset
|
75 version (X86_64) |
37
642f460a0908
Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
36
diff
changeset
|
76 int space; |
45 | 77 } |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
78 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
79 struct objc_ivar_list |
45 | 80 { |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
81 int ivar_count; |
37
642f460a0908
Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
36
diff
changeset
|
82 |
10
30a762abda2a
Revert automatic changes from dwt/internal and dwt/dwthelper. Excluded dwt/internal/image and theme.
Frank Benoit <benoit@tionex.de>
parents:
7
diff
changeset
|
83 version (X86_64) |
37
642f460a0908
Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
36
diff
changeset
|
84 int space; |
642f460a0908
Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
36
diff
changeset
|
85 |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
86 /* variable length structure */ |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
87 objc_ivar ivar_list[1]; |
45 | 88 } |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
89 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
90 struct objc_method |
45 | 91 { |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
92 SEL method_name; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
93 char* method_types; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
94 IMP method_imp; |
45 | 95 } |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
96 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
97 struct objc_method_list |
45 | 98 { |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
99 objc_method_list* obsolete; |
37
642f460a0908
Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
36
diff
changeset
|
100 |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
101 int method_count; |
37
642f460a0908
Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
36
diff
changeset
|
102 |
10
30a762abda2a
Revert automatic changes from dwt/internal and dwt/dwthelper. Excluded dwt/internal/image and theme.
Frank Benoit <benoit@tionex.de>
parents:
7
diff
changeset
|
103 version (X86_64) |
37
642f460a0908
Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
36
diff
changeset
|
104 int space; |
642f460a0908
Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
36
diff
changeset
|
105 |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
106 /* variable length structure */ |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
107 objc_method method_list[1]; |
45 | 108 } |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
109 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
110 struct objc_cache |
45 | 111 { |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
112 uint mask /* total = mask + 1 */; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
113 uint occupied; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
114 Method buckets[1]; |
45 | 115 } |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
116 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
117 struct objc_protocol_list |
45 | 118 { |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
119 objc_protocol_list* next; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
120 long count; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
121 Protocol* list[1]; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
122 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
123 |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
124 |
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
125 |
45 | 126 alias dwt.internal.objc.bindings.objc_registerClassPair objc_registerClassPair; |
127 alias dwt.internal.objc.bindings.class_addProtocol class_addProtocol; | |
128 alias dwt.internal.objc.bindings.instrumentObjcMessageSends instrumentObjcMessageSends; | |
129 alias dwt.internal.objc.bindings.object_getClass object_getClass; | |
130 alias dwt.internal.objc.bindings.object_setClass object_setClass; | |
37
642f460a0908
Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
36
diff
changeset
|
131 |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
132 |
14
762fbe6f17d3
Ported dwt.widgets.Widget
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
1
diff
changeset
|
133 bool class_addIvar (Class cls, String name, size_t size, byte alignment, String types) |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
134 { |
129 | 135 return dwt.internal.objc.bindings.class_addIvar(cls, name.ptr, size, alignment, types.toStringz()); |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
136 } |
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
137 |
45 | 138 bool class_addMethod (Class cls, SEL name, IMP imp, String types) |
139 { | |
129 | 140 return dwt.internal.objc.bindings.class_addMethod(cls, name, imp, types.toStringz()); |
45 | 141 } |
142 | |
143 IMP class_getMethodImplementation (Class cls, SEL name) | |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
144 { |
45 | 145 return dwt.internal.objc.bindings.class_getMethodImplementation(cls, name); |
146 } | |
147 | |
148 String class_getName (Class cls) | |
149 { | |
150 return fromStringz(dwt.internal.objc.bindings.class_getName(cls)); | |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
151 } |
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
152 |
14
762fbe6f17d3
Ported dwt.widgets.Widget
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
1
diff
changeset
|
153 Class objc_allocateClassPair (Class superclass, String name, size_t extraBytes) |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
154 { |
129 | 155 return dwt.internal.objc.bindings.objc_allocateClassPair(superclass, name.toStringz(), extraBytes); |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
156 } |
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
157 |
14
762fbe6f17d3
Ported dwt.widgets.Widget
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
1
diff
changeset
|
158 id objc_getClass (String name) |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
159 { |
129 | 160 return dwt.internal.objc.bindings.objc_getClass(name.toStringz()); |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
161 } |
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
162 |
45 | 163 Protocol* objc_getProtocol (String name) |
164 { | |
129 | 165 return dwt.internal.objc.bindings.objc_getProtocol(name.toStringz()); |
45 | 166 } |
167 | |
14
762fbe6f17d3
Ported dwt.widgets.Widget
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
1
diff
changeset
|
168 id objc_lookUpClass (String name) |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
169 { |
129 | 170 return dwt.internal.objc.bindings.objc_lookUpClass(name.toStringz()); |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
171 } |
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
172 |
45 | 173 SEL object_getClassName (id obj) |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
174 { |
45 | 175 return dwt.internal.objc.bindings.object_getClassName(obj); |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
176 } |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
177 |
46
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
178 Ivar object_getInstanceVariable (id obj, String name, out void* outValue) |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
179 { |
129 | 180 return dwt.internal.objc.bindings.object_getInstanceVariable(obj, name.toStringz(), &outValue); |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
181 } |
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
182 |
14
762fbe6f17d3
Ported dwt.widgets.Widget
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
1
diff
changeset
|
183 Ivar object_setInstanceVariable (id obj, String name, void* value) |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
184 { |
129 | 185 return dwt.internal.objc.bindings.object_setInstanceVariable(obj, name.toStringz(), value); |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
186 } |
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
187 |
45 | 188 SEL sel_registerName (String str) |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
189 { |
129 | 190 return dwt.internal.objc.bindings.sel_registerName(str.toStringz()); |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
191 } |
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
192 |
45 | 193 id objc_msgSend (ARGS...) (id theReceiver, SEL theSelector, ARGS args) |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
194 { |
155
e91dcbf77cc7
Fixes runtime problems with dmd and ldc. Changed a couple of floats to CGFloat
Jacob Carlborg <doob@me.com>
parents:
129
diff
changeset
|
195 alias extern (C) id function (id, SEL, ARGS) fp; |
e91dcbf77cc7
Fixes runtime problems with dmd and ldc. Changed a couple of floats to CGFloat
Jacob Carlborg <doob@me.com>
parents:
129
diff
changeset
|
196 return (cast(fp)&dwt.internal.objc.bindings.objc_msgSend)(theReceiver, theSelector, args); |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
197 } |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
198 |
45 | 199 void objc_msgSend_struct (T, ARGS...) (T* result, id theReceiver, SEL theSelector, ARGS args) |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
200 { |
155
e91dcbf77cc7
Fixes runtime problems with dmd and ldc. Changed a couple of floats to CGFloat
Jacob Carlborg <doob@me.com>
parents:
129
diff
changeset
|
201 alias extern (C) T* function (id, SEL, ARGS) fp; |
e91dcbf77cc7
Fixes runtime problems with dmd and ldc. Changed a couple of floats to CGFloat
Jacob Carlborg <doob@me.com>
parents:
129
diff
changeset
|
202 result = (cast(fp)&dwt.internal.objc.bindings.objc_msgSend)(theReceiver, theSelector, args); |
e91dcbf77cc7
Fixes runtime problems with dmd and ldc. Changed a couple of floats to CGFloat
Jacob Carlborg <doob@me.com>
parents:
129
diff
changeset
|
203 //result = cast(T*) dwt.internal.objc.bindings.objc_msgSend(theReceiver, theSelector, args); |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
204 } |
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
205 |
60
62202ce0039f
Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents:
46
diff
changeset
|
206 void objc_msgSend_stret (T, ARGS...) (T* stretAddr, id theReceiver, SEL theSelector, ARGS args) |
62202ce0039f
Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents:
46
diff
changeset
|
207 { |
62202ce0039f
Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents:
46
diff
changeset
|
208 if (T.sizeof > STRUCT_SIZE_LIMIT) |
155
e91dcbf77cc7
Fixes runtime problems with dmd and ldc. Changed a couple of floats to CGFloat
Jacob Carlborg <doob@me.com>
parents:
129
diff
changeset
|
209 { |
e91dcbf77cc7
Fixes runtime problems with dmd and ldc. Changed a couple of floats to CGFloat
Jacob Carlborg <doob@me.com>
parents:
129
diff
changeset
|
210 alias extern (C) void function (T *, id, SEL, ARGS) fp; |
e91dcbf77cc7
Fixes runtime problems with dmd and ldc. Changed a couple of floats to CGFloat
Jacob Carlborg <doob@me.com>
parents:
129
diff
changeset
|
211 (cast(fp)&dwt.internal.objc.bindings.objc_msgSend_stret)(stretAddr, theReceiver, theSelector, args); |
e91dcbf77cc7
Fixes runtime problems with dmd and ldc. Changed a couple of floats to CGFloat
Jacob Carlborg <doob@me.com>
parents:
129
diff
changeset
|
212 } |
60
62202ce0039f
Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents:
46
diff
changeset
|
213 |
62202ce0039f
Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents:
46
diff
changeset
|
214 else |
155
e91dcbf77cc7
Fixes runtime problems with dmd and ldc. Changed a couple of floats to CGFloat
Jacob Carlborg <doob@me.com>
parents:
129
diff
changeset
|
215 { |
156
969e7de37c3d
Fixes to get dwt to work with dmd and ldc
Jacob Carlborg <doob@me.com>
parents:
155
diff
changeset
|
216 alias extern (C) T* function (id, SEL, ARGS) fp; |
969e7de37c3d
Fixes to get dwt to work with dmd and ldc
Jacob Carlborg <doob@me.com>
parents:
155
diff
changeset
|
217 stretAddr = (cast(fp)&dwt.internal.objc.bindings.objc_msgSend)(theReceiver, theSelector, args); |
155
e91dcbf77cc7
Fixes runtime problems with dmd and ldc. Changed a couple of floats to CGFloat
Jacob Carlborg <doob@me.com>
parents:
129
diff
changeset
|
218 } |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
219 } |
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
220 |
45 | 221 id objc_msgSendSuper (ARGS...) (objc_super* superr, SEL op, ARGS args) |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
222 { |
155
e91dcbf77cc7
Fixes runtime problems with dmd and ldc. Changed a couple of floats to CGFloat
Jacob Carlborg <doob@me.com>
parents:
129
diff
changeset
|
223 alias extern (C) id function (objc_super*, SEL, ARGS) fp; |
e91dcbf77cc7
Fixes runtime problems with dmd and ldc. Changed a couple of floats to CGFloat
Jacob Carlborg <doob@me.com>
parents:
129
diff
changeset
|
224 return (cast(fp)&dwt.internal.objc.bindings.objc_msgSendSuper)(superr, op, args); |
45 | 225 } |
226 | |
227 bool objc_msgSend_bool (ARGS...) (id theReceiver, SEL theSelector, ARGS args) | |
228 { | |
155
e91dcbf77cc7
Fixes runtime problems with dmd and ldc. Changed a couple of floats to CGFloat
Jacob Carlborg <doob@me.com>
parents:
129
diff
changeset
|
229 alias extern (C) bool function (id, SEL, ARGS) fp; |
e91dcbf77cc7
Fixes runtime problems with dmd and ldc. Changed a couple of floats to CGFloat
Jacob Carlborg <doob@me.com>
parents:
129
diff
changeset
|
230 return (cast(fp)&dwt.internal.objc.bindings.objc_msgSend)(theReceiver, theSelector, args); |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
231 } |
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
232 |
10
30a762abda2a
Revert automatic changes from dwt/internal and dwt/dwthelper. Excluded dwt/internal/image and theme.
Frank Benoit <benoit@tionex.de>
parents:
7
diff
changeset
|
233 version (X86) |
1
8b48be5454ce
The internal cocoa classes compile now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
234 { |
45 | 235 double objc_msgSend_fpret(ARGS...) (id self, SEL op, ARGS args) |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
236 { |
155
e91dcbf77cc7
Fixes runtime problems with dmd and ldc. Changed a couple of floats to CGFloat
Jacob Carlborg <doob@me.com>
parents:
129
diff
changeset
|
237 alias extern (C) double function (id, SEL, ARGS) fp; |
e91dcbf77cc7
Fixes runtime problems with dmd and ldc. Changed a couple of floats to CGFloat
Jacob Carlborg <doob@me.com>
parents:
129
diff
changeset
|
238 return (cast(fp)&dwt.internal.objc.bindings.objc_msgSend_fpret)(self, op, args); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
239 } |
128
07399639c0c8
Added DWT extension to dwt.widgets.MessageBox
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
240 } |
07399639c0c8
Added DWT extension to dwt.widgets.MessageBox
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
241 |
07399639c0c8
Added DWT extension to dwt.widgets.MessageBox
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
242 else |
07399639c0c8
Added DWT extension to dwt.widgets.MessageBox
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
243 { |
07399639c0c8
Added DWT extension to dwt.widgets.MessageBox
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
244 double objc_msgSend_fpret(ARGS...) (id self, SEL op, ARGS args) |
07399639c0c8
Added DWT extension to dwt.widgets.MessageBox
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
245 { |
155
e91dcbf77cc7
Fixes runtime problems with dmd and ldc. Changed a couple of floats to CGFloat
Jacob Carlborg <doob@me.com>
parents:
129
diff
changeset
|
246 alias extern (C) double function (id, SEL, ARGS) fp; |
e91dcbf77cc7
Fixes runtime problems with dmd and ldc. Changed a couple of floats to CGFloat
Jacob Carlborg <doob@me.com>
parents:
129
diff
changeset
|
247 return (cast(fp)&dwt.internal.objc.bindings.objc_msgSend)(self, op, args); |
128
07399639c0c8
Added DWT extension to dwt.widgets.MessageBox
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
248 } |
10
30a762abda2a
Revert automatic changes from dwt/internal and dwt/dwthelper. Excluded dwt/internal/image and theme.
Frank Benoit <benoit@tionex.de>
parents:
7
diff
changeset
|
249 } |