diff dstep/objc/bridge/Capsule.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 diff
--- a/dstep/objc/bridge/Capsule.d	Thu Jun 18 22:00:13 2009 +0200
+++ b/dstep/objc/bridge/Capsule.d	Sun Jul 05 17:16:19 2009 +0200
@@ -24,6 +24,7 @@
 
 import dstep.internal.String;
 import dstep.objc.bridge.Bridge;
+import dstep.objc.bridge.Type;
 import dstep.objc.bridge.TypeEncoding;
 import dstep.objc.bridge.Wrapper;
 import dstep.objc.message;
@@ -33,15 +34,6 @@
 
 import mambo.io;
 
-template ObjcType (T)
-{
-	static if (needsEncapsulation!(T))
-		alias id ObjcType;
-	
-	else
-		alias T ObjcType;
-}
-
 Class capsuleClass ()
 {
 	if (!Capsule.capsuleClass)
@@ -119,17 +111,8 @@
 	return cls.getInstanceVariable!(Bridge.dObjectVar) !is null;
 }
 
-template needsEncapsulation (T)
-{
-	static if (is(T == class))
-		const needsEncapsulation = true;
-	
-	else
-		const needsEncapsulation = false;
-}
-
 ObjcType!(T) encapsule (T) (T value)
-{	
+{		
 	static if (needsEncapsulation!(T))
 	{
 		if (!value)
@@ -145,28 +128,25 @@
 		return value;
 }
 
-template decapsule (T)
+T decapsule (T) (ObjcType!(T) value)
 {
-	T decapsule (ObjcType!(T) value)
+	static if (needsEncapsulation!(T))
 	{
-		static if (needsEncapsulation!(T))
+		if (isCapsule(value))
+			return cast(T) Bridge.getDObject(value);
+		
+		else
 		{
-			if (isCapsule(value))
-				return cast(T) Bridge.getDObject(value);
+			static if (is(T : ObjcWrapper))
+				new T(value);
 			
 			else
-			{
-				static if (is(T : ObjcWrapper))
-					new T(value);
-				
-				else
-					return null;
-			}
+				return null;
 		}
-		
-		else
-			return value;
 	}
+	
+	else
+		return value;
 }
 
 private id encapsuleString (string str)