Mercurial > projects > dstep
view dstep/foundation/NSObjCRuntime.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 |
line wrap: on
line source
/** * Copyright: Copyright (c) 2009 Jacob Carlborg. * Authors: Jacob Carlborg * Version: Initial created: Aug 3, 2009 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) */ module dstep.foundation.NSObjCRuntime; import dstep.foundation.NSString; import dstep.foundation.NSZone; import dstep.internal.Version; import dstep.objc.bridge.Bridge; import dstep.objc.objc; import dstep.objc.runtime; import bindings = dstep.foundation.NSObjCRuntime_bindings; version (D_LP64) { alias long NSInteger; alias ulong NSUInteger; } else { alias int NSInteger; alias uint NSUInteger; } alias NSInteger NSComparisonResult; extern (C) { extern { double NSFoundationVersionNumber; } } enum _NSComparisonResult { NSOrderedAscending = -1, NSOrderedSame, NSOrderedDescending } enum { NSNotFound = 2147483647L } NSString NSStringFromSelector (SEL aSelector) { return Bridge.invokeObjcFunction!(NSString, bindings.NSStringFromSelector, SEL)(aSelector); } SEL NSSelectorFromString (NSString aSelectorName) { return Bridge.invokeObjcFunction!(SEL, bindings.NSSelectorFromString, NSString)(aSelectorName); } NSString NSStringFromClass (Class aClass) { return Bridge.invokeObjcFunction!(NSString, bindings.NSStringFromClass, Class)(aClass); } Class NSClassFromString (NSString aClassName) { return Bridge.invokeObjcFunction!(Class, bindings.NSClassFromString, NSString)(aClassName); } NSString NSStringFromProtocol (Protocol* proto) { return Bridge.invokeObjcFunction!(NSString, bindings.NSStringFromProtocol, Protocol*)(proto); } Protocol* NSProtocolFromString (NSString namestr) { return Bridge.invokeObjcFunction!(Protocol*, bindings.NSProtocolFromString, NSString)(namestr); } void NSLog (ARGS...) (NSString format, ARGS args) { return Bridge.invokeObjcFunction!(void, bindings.NSLog, NSString, ARGS)(format, args); } void NSLogv (NSString format, char* args) { return Bridge.invokeObjcFunction!(void, bindings.NSLogv, NSString, char*)(format, args); } extern (C) { char* NSGetSizeAndAlignment (char* typePtr, NSUInteger* sizep, NSUInteger* alignp); }