diff dstep/appkit/NSGraphicsContext.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
children b9de51448c6b
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dstep/appkit/NSGraphicsContext.d	Sun Jan 03 22:06:11 2010 +0100
@@ -0,0 +1,315 @@
+/**
+ * Copyright: Copyright (c) 2009 Jacob Carlborg.
+ * Authors: Jacob Carlborg
+ * Version: Initial created: Sep 24, 2009 
+ * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
+ */
+module dstep.appkit.NSGraphicsContext;
+
+import dstep.appkit.AppKitDefines;
+import dstep.appkit.NSBitmapImageRep;
+import dstep.appkit.NSGraphics;
+import dstep.appkit.NSWindow;
+import dstep.foundation.NSDictionary;
+import dstep.foundation.NSGeometry;
+import dstep.foundation.NSObjCRuntime;
+import dstep.foundation.NSObject;
+import dstep.foundation.NSString;
+import dstep.objc.bridge.Bridge;
+import dstep.objc.objc;
+import dstep.quartzcore.CIContext;
+
+import bindings = dstep.appkit.NSGraphicsContext_bindings;
+
+typedef NSUInteger NSImageInterpolation;
+typedef NSInteger NSColorRenderingIntent;
+
+private
+{
+	NSString NSGraphicsContextDestinationAttributeName_;
+	NSString NSGraphicsContextRepresentationFormatAttributeName_;
+	NSString NSGraphicsContextPSFormat_;
+	NSString NSGraphicsContextPDFFormat_;
+}
+
+NSString NSGraphicsContextDestinationAttributeName ()
+{
+	if (NSGraphicsContextDestinationAttributeName_)
+		return NSGraphicsContextDestinationAttributeName_;
+
+	return NSGraphicsContextDestinationAttributeName_ = new NSString(bindings.NSGraphicsContextDestinationAttributeName);
+}
+
+NSString NSGraphicsContextRepresentationFormatAttributeName ()
+{
+	if (NSGraphicsContextRepresentationFormatAttributeName_)
+		return NSGraphicsContextRepresentationFormatAttributeName_;
+
+	return NSGraphicsContextRepresentationFormatAttributeName_ = new NSString(bindings.NSGraphicsContextRepresentationFormatAttributeName);
+}
+
+NSString NSGraphicsContextPSFormat ()
+{
+	if (NSGraphicsContextPSFormat_)
+		return NSGraphicsContextPSFormat_;
+
+	return NSGraphicsContextPSFormat_ = new NSString(bindings.NSGraphicsContextPSFormat);
+}
+
+NSString NSGraphicsContextPDFFormat ()
+{
+	if (NSGraphicsContextPDFFormat_)
+		return NSGraphicsContextPDFFormat_;
+
+	return NSGraphicsContextPDFFormat_ = new NSString(bindings.NSGraphicsContextPDFFormat);
+}
+
+enum
+{
+	NSImageInterpolationDefault,
+	NSImageInterpolationNone,
+	NSImageInterpolationLow,
+	NSImageInterpolationHigh
+}
+
+enum
+{
+	NSColorRenderingIntentDefault,
+	NSColorRenderingIntentAbsoluteColorimetric,
+	NSColorRenderingIntentRelativeColorimetric,
+	NSColorRenderingIntentPerceptual,
+	NSColorRenderingIntentSaturation
+}
+
+const TNSQuartzCoreAdditions = `
+
+	CIContext CIContext_ ()
+	{
+		return invokeObjcSelf!(CIContext, "CIContext");
+	}
+
+	//mixin ObjcBindMethod!(CIContext_, "CIContext");
+
+`;
+
+const TNSGraphicsContext_RenderingOptions = `
+
+	void setShouldAntialias (bool antialias)
+	{
+		return invokeObjcSelf!(void, "setShouldAntialias:", bool)(antialias);
+	}
+
+	bool shouldAntialias ()
+	{
+		return invokeObjcSelf!(bool, "shouldAntialias");
+	}
+
+	void setImageInterpolation (uint interpolation)
+	{
+		return invokeObjcSelf!(void, "setImageInterpolation:", uint)(interpolation);
+	}
+
+	uint imageInterpolation ()
+	{
+		return invokeObjcSelf!(uint, "imageInterpolation");
+	}
+
+	void setPatternPhase (NSPoint phase)
+	{
+		return invokeObjcSelf!(void, "setPatternPhase:", NSPoint)(phase);
+	}
+
+	NSPoint patternPhase ()
+	{
+		return invokeObjcSelf!(NSPoint, "patternPhase");
+	}
+
+	void setCompositingOperation (uint operation)
+	{
+		return invokeObjcSelf!(void, "setCompositingOperation:", uint)(operation);
+	}
+
+	uint compositingOperation ()
+	{
+		return invokeObjcSelf!(uint, "compositingOperation");
+	}
+
+	int colorRenderingIntent ()
+	{
+		return invokeObjcSelf!(int, "colorRenderingIntent");
+	}
+
+	void setColorRenderingIntent (int renderingIntent)
+	{
+		return invokeObjcSelf!(void, "setColorRenderingIntent:", int)(renderingIntent);
+	}
+
+	//mixin ObjcBindMethod!(setShouldAntialias, "setShouldAntialias:");
+	//mixin ObjcBindMethod!(shouldAntialias, "shouldAntialias");
+	//mixin ObjcBindMethod!(setImageInterpolation, "setImageInterpolation:");
+	//mixin ObjcBindMethod!(imageInterpolation, "imageInterpolation");
+	//mixin ObjcBindMethod!(setPatternPhase, "setPatternPhase:");
+	//mixin ObjcBindMethod!(patternPhase, "patternPhase");
+	//mixin ObjcBindMethod!(setCompositingOperation, "setCompositingOperation:");
+	//mixin ObjcBindMethod!(compositingOperation, "compositingOperation");
+	//mixin ObjcBindMethod!(colorRenderingIntent, "colorRenderingIntent");
+	//mixin ObjcBindMethod!(setColorRenderingIntent, "setColorRenderingIntent:");
+
+`;
+
+class NSGraphicsContext : NSObject
+{
+	mixin (ObjcWrap);
+
+	static NSGraphicsContext graphicsContextWithAttributes (NSDictionary attributes)
+	{
+		return invokeObjcSelfClass!(NSGraphicsContext, "graphicsContextWithAttributes:", NSDictionary)(attributes);
+	}
+
+	static NSGraphicsContext graphicsContextWithWindow (NSWindow window)
+	{
+		return invokeObjcSelfClass!(NSGraphicsContext, "graphicsContextWithWindow:", NSWindow)(window);
+	}
+
+	static NSGraphicsContext graphicsContextWithBitmapImageRep (NSBitmapImageRep bitmapRep)
+	{
+		return invokeObjcSelfClass!(NSGraphicsContext, "graphicsContextWithBitmapImageRep:", NSBitmapImageRep)(bitmapRep);
+	}
+
+	static NSGraphicsContext graphicsContextWithGraphicsPort (void* graphicsPort, bool initialFlippedState)
+	{
+		return invokeObjcSelfClass!(NSGraphicsContext, "graphicsContextWithGraphicsPort:flipped:", void*, bool)(graphicsPort, initialFlippedState);
+	}
+
+	static NSGraphicsContext currentContext ()
+	{
+		return invokeObjcSelfClass!(NSGraphicsContext, "currentContext");
+	}
+
+	static void setCurrentContext (NSGraphicsContext context)
+	{
+		return invokeObjcSelfClass!(void, "setCurrentContext:", NSGraphicsContext)(context);
+	}
+
+	static bool currentContextDrawingToScreen ()
+	{
+		return invokeObjcSelfClass!(bool, "currentContextDrawingToScreen");
+	}
+
+	static void saveGraphicsState_static ()
+	{
+		return invokeObjcSelfClass!(void, "saveGraphicsState");
+	}
+
+	static void restoreGraphicsState_static ()
+	{
+		return invokeObjcSelfClass!(void, "restoreGraphicsState");
+	}
+
+	static void setGraphicsState (NSInteger gState)
+	{
+		return invokeObjcSelfClass!(void, "setGraphicsState:", NSInteger)(gState);
+	}
+
+	NSDictionary attributes ()
+	{
+		return invokeObjcSelf!(NSDictionary, "attributes");
+	}
+
+	bool isDrawingToScreen ()
+	{
+		return invokeObjcSelf!(bool, "isDrawingToScreen");
+	}
+
+	void saveGraphicsState ()
+	{
+		return invokeObjcSelf!(void, "saveGraphicsState");
+	}
+
+	void restoreGraphicsState ()
+	{
+		return invokeObjcSelf!(void, "restoreGraphicsState");
+	}
+
+	void flushGraphics ()
+	{
+		return invokeObjcSelf!(void, "flushGraphics");
+	}
+
+	Object focusStack ()
+	{
+		return invokeObjcSelf!(Object, "focusStack");
+	}
+
+	void setFocusStack (Object stack)
+	{
+		return invokeObjcSelf!(void, "setFocusStack:", Object)(stack);
+	}
+
+	void* graphicsPort ()
+	{
+		return invokeObjcSelf!(void*, "graphicsPort");
+	}
+
+	bool isFlipped ()
+	{
+		return invokeObjcSelf!(bool, "isFlipped");
+	}
+	
+	// NSQuartzCoreAdditions
+	CIContext CIContext_ ()
+	{
+		return invokeObjcSelf!(CIContext, "CIContext");
+	}
+	
+	// NSGraphicsContext_RenderingOptions
+	void setShouldAntialias (bool antialias)
+	{
+		return invokeObjcSelf!(void, "setShouldAntialias:", bool)(antialias);
+	}
+
+	bool shouldAntialias ()
+	{
+		return invokeObjcSelf!(bool, "shouldAntialias");
+	}
+
+	void setImageInterpolation (uint interpolation)
+	{
+		return invokeObjcSelf!(void, "setImageInterpolation:", uint)(interpolation);
+	}
+
+	uint imageInterpolation ()
+	{
+		return invokeObjcSelf!(uint, "imageInterpolation");
+	}
+
+	void setPatternPhase (NSPoint phase)
+	{
+		return invokeObjcSelf!(void, "setPatternPhase:", NSPoint)(phase);
+	}
+
+	NSPoint patternPhase ()
+	{
+		return invokeObjcSelf!(NSPoint, "patternPhase");
+	}
+
+	void setCompositingOperation (uint operation)
+	{
+		return invokeObjcSelf!(void, "setCompositingOperation:", uint)(operation);
+	}
+
+	uint compositingOperation ()
+	{
+		return invokeObjcSelf!(uint, "compositingOperation");
+	}
+
+	int colorRenderingIntent ()
+	{
+		return invokeObjcSelf!(int, "colorRenderingIntent");
+	}
+
+	void setColorRenderingIntent (int renderingIntent)
+	{
+		return invokeObjcSelf!(void, "setColorRenderingIntent:", int)(renderingIntent);
+	}
+}
\ No newline at end of file