Mercurial > projects > dstep
view dstep/objc/bindings.d @ 2:9fd439a28ce3
Adapted the scripts for the new bridge + a lot more
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sun, 05 Jul 2009 17:16:19 +0200 |
parents | 033d260cfc9b |
children | 19885b43130e |
line wrap: on
line source
/** * Copyright: Copyright (c) 2009 Jacob Carlborg. * Authors: Jacob Carlborg * Version: Initial created: Feb 1, 2009 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) */ module dstep.objc.bindings; import dstep.objc.message; import dstep.objc.objc; import dstep.objc.runtime; import dstep.internal.Util; extern (C) { // runtime.h id object_copy (id obj, size_t size); id object_dispose (id obj); Class object_getClass (id obj); Class object_setClass (id obj, Class cls); char* object_getClassName (id obj); void* object_getIndexedIvars (id obj); id object_getIvar (id obj, Ivar ivar); void object_setIvar (id obj, Ivar ivar, id value); Ivar object_setInstanceVariable (id obj, char* name, void* value); Ivar object_getInstanceVariable (id obj, char* name, void** outValue); id objc_getClass (char* name); id objc_getMetaClass (char* name); id objc_lookUpClass (char* name); id objc_getRequiredClass (char* name); Class objc_getFutureClass (char* name); void objc_setFutureClass (Class cls, char* name); int objc_getClassList (Class* buffer, int bufferCount); id objc_getProtocol (char* name); Protocol** objc_copyProtocolList (uint* outCount); char* class_getName (Class cls); bool class_isMetaClass (Class cls); Class class_getSuperclass (Class cls); Class class_setSuperclass (Class cls, Class newSuper); int class_getVersion (Class cls); void class_setVersion (Class cls, int version_); size_t class_getInstanceSize (Class cls); Ivar class_getInstanceVariable (Class cls, char* name); Ivar class_getClassVariable (Class cls, char* name); Ivar* class_copyIvarList (Class cls, uint* outCount); Method class_getInstanceMethod (Class cls, SEL name); Method class_getClassMethod (Class cls, SEL name); IMP class_getMethodImplementation (Class cls, SEL name); IMP class_getMethodImplementation_stret (Class cls, SEL name); bool class_respondsToSelector (Class cls, SEL sel); Method* class_copyMethodList (Class cls, uint* outCount); bool class_conformsToProtocol (Class cls, Protocol* protocol); Protocol** class_copyProtocolList (Class cls, uint* outCount); objc_property_t* class_getProperty (Class cls, char* name); objc_property_t* class_copyPropertyList (Class cls, uint* outCount); char* class_getIvarLayout (Class cls); char* class_getWeakIvarLayout (Class cls); id class_createInstance (Class cls, size_t extraBytes); Class objc_allocateClassPair (Class superclass, char* name, size_t extraBytes); void objc_registerClassPair (Class cls); Class objc_duplicateClass (Class original, char* name, size_t extraBytes); void objc_disposeClassPair (Class cls); bool class_addMethod (Class cls, SEL name, IMP imp, char* types); IMP class_replaceMethod (Class cls, SEL name, IMP imp, char* types); bool class_addIvar (Class cls, char* name, size_t size, ubyte alignment, char* types); bool class_addProtocol (Class cls, Protocol* protocol); void class_setIvarLayout (Class cls, char* layout); void class_setWeakIvarLayout (Class cls, char* layout); SEL method_getName (Method m); IMP method_getImplementation (Method m); char* method_getTypeEncoding (Method m); uint method_getNumberOfArguments (Method m); char* method_copyReturnType (Method m); char* method_copyArgumentType (Method m, uint index); void method_getReturnType (Method m, char* dst, size_t dst_len); void method_getArgumentType (Method m, uint index, char* dst, size_t dst_len); objc_method_description* method_getDescription (Method m); IMP method_setImplementation (Method m, IMP imp); void method_exchangeImplementations (Method m1, Method m2); char* ivar_getName (Ivar v); char* ivar_getTypeEncoding (Ivar v); ptrdiff_t ivar_getOffset (Ivar v); char* property_getName (objc_property_t* property); char* property_getAttributes (objc_property_t* property); bool protocol_conformsToProtocol (id proto, id other); bool protocol_isEqual (id proto, id other); char* protocol_getName (id p); objc_method_description protocol_getMethodDescription (id p, SEL aSel, bool isRequiredMethod, bool isInstanceMethod); objc_method_description* protocol_copyMethodDescriptionList(id p, bool isRequiredMethod, bool isInstanceMethod, uint* outCount); objc_property_t* protocol_getProperty (id proto, char* name, bool isRequiredProperty, bool isInstanceProperty); objc_property_t* protocol_copyPropertyList (id proto, uint* outCount); Protocol** protocol_copyProtocolList (id proto, uint* outCount); char** objc_copyImageNames (uint* outCount); char* class_getImageName (Class cls); char** objc_copyClassNamesForImage (char* image, uint* outCount); char* sel_getName (SEL sel); SEL sel_getUid (char* str); SEL sel_registerName (char* str); bool sel_isEqual (SEL lhs, SEL rhs); void objc_enumerationMutation (id arg0); void objc_setForwardHandler (void* fwd, void* fwd_stret); bool sel_isMapped (SEL sel); id object_copyFromZone (id anObject, size_t nBytes, void* z); id object_realloc (id anObject, size_t nBytes); id object_reallocFromZone (id anObject, size_t nBytes, void* z); void* objc_getClasses (); void objc_addClass (Class myClass); void objc_setMultithreaded (bool flag); id class_createInstanceFromZone (Class arg0, size_t idxIvars, void* z); void class_addMethods (Class arg0, objc_method_list* arg1); void class_removeMethods (Class arg0, objc_method_list* arg1); Class class_poseAs (Class imposter, Class original); uint method_getSizeOfArguments (Method m); uint method_getArgumentInfo (objc_method* m, int arg, char** type, int* offset); bool class_respondsToMethod (Class arg0, SEL arg1); IMP class_lookupMethod (Class arg0, SEL arg1); Class objc_getOrigClass (char* name); objc_method_list* class_nextMethodList (Class arg0, void* arg1); // message.h id objc_msgSend (id self, SEL op, ...); id objc_msgSendSuper (objc_super* super_, SEL op, ...); void objc_msgSend_stret (void* stretAddr, id self, SEL op, ...); void objc_msgSendSuper_stret (void* stretAddr, objc_super* super_, SEL op, ...); id objc_msgSendv (id self, SEL op, size_t arg_size, void* arg_frame); void objc_msgSendv_stret (void* stretAddr, id self, SEL op, size_t arg_size, void* arg_frame); id method_invoke (id receiver, Method m, ...); void method_invoke_stret (id receiver, Method m, ...); version (X86_64) real objc_msgSend_fpret (id self, SEL op, ...); else version (X86) { double objc_msgSendv_fpret (id self, SEL op, uint arg_size, void* arg_frame); double objc_msgSend_fpret (id self, SEL op, ...); } } version (build) { version (GNU) { pragma(link, "objc -framework Cocoa"); } else { pragma(link, "objc -L-framework -LCocoa"); } }