Mercurial > projects > dstep
view dstep/foundation/NSGeometry.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.NSGeometry; import dstep.applicationservices.coregraphics.CGBase; import dstep.applicationservices.coregraphics.CGGeometry; import dstep.foundation.NSCoder; import dstep.foundation.NSObjCRuntime; import dstep.foundation.NSString; import dstep.foundation.NSValue; import dstep.internal.Version; import dstep.objc.bridge.Bridge; import dstep.objc.objc; import bindings = dstep.foundation.NSGeometry_bindings; alias dstep.applicationservices.coregraphics.CGGeometry.CGPoint NSPoint; alias NSPoint* NSPointPointer; alias NSPoint* NSPointArray; alias dstep.applicationservices.coregraphics.CGGeometry.CGSize NSSize; alias NSSize* NSSizePointer; alias NSSize* NSSizeArray; alias dstep.applicationservices.coregraphics.CGGeometry.CGRect NSRect; alias NSRect* NSRectPointer; alias NSRect* NSRectArray; alias NSUInteger NSRectEdge; extern (C) { extern { const NSPoint NSZeroPoint; const NSSize NSZeroSize; const NSRect NSZeroRect; } } const TNSGeometryCoding = ` void encodePoint (NSPoint point) { return invokeObjcSelf!(void, "encodePoint:", NSPoint)(point); } NSPoint decodePoint () { return invokeObjcSelf!(NSPoint, "decodePoint"); } void encodeSize (NSSize size) { return invokeObjcSelf!(void, "encodeSize:", NSSize)(size); } NSSize decodeSize () { return invokeObjcSelf!(NSSize, "decodeSize"); } void encodeRect (NSRect rect) { return invokeObjcSelf!(void, "encodeRect:", NSRect)(rect); } NSRect decodeRect () { return invokeObjcSelf!(NSRect, "decodeRect"); } `; const TNSValueGeometryExtensions = ` static NSValue valueWithPoint (NSPoint point) { return invokeObjcSuperClass!(NSValue, "valueWithPoint:", NSPoint)(point); } static NSValue valueWithSize (NSSize size) { return invokeObjcSuperClass!(NSValue, "valueWithSize:", NSSize)(size); } static NSValue valueWithRect (NSRect rect) { return invokeObjcSuperClass!(NSValue, "valueWithRect:", NSRect)(rect); } NSPoint pointValue () { return invokeObjcSelf!(NSPoint, "pointValue"); } NSSize sizeValue () { return invokeObjcSelf!(NSSize, "sizeValue"); } NSRect rectValue () { return invokeObjcSelf!(NSRect, "rectValue"); } `; NSString NSStringFromPoint (NSPoint aPoint) { return Bridge.invokeObjcFunction!(NSString, bindings.NSStringFromPoint, NSPoint)(aPoint); } NSString NSStringFromSize (NSSize aSize) { return Bridge.invokeObjcFunction!(NSString, bindings.NSStringFromSize, NSSize)(aSize); } NSString NSStringFromRect (NSRect aRect) { return Bridge.invokeObjcFunction!(NSString, bindings.NSStringFromRect, NSRect)(aRect); } NSPoint NSPointFromString (NSString aString) { return Bridge.invokeObjcFunction!(NSPoint, bindings.NSPointFromString, NSString)(aString); } NSSize NSSizeFromString (NSString aString) { return Bridge.invokeObjcFunction!(NSSize, bindings.NSSizeFromString, NSString)(aString); } NSRect NSRectFromString (NSString aString) { return Bridge.invokeObjcFunction!(NSRect, bindings.NSRectFromString, NSString)(aString); } extern (C) { bool NSEqualPoints (NSPoint aPoint, NSPoint bPoint); bool NSEqualSizes (NSSize aSize, NSSize bSize); bool NSEqualRects (NSRect aRect, NSRect bRect); bool NSIsEmptyRect (NSRect aRect); NSRect NSInsetRect (NSRect aRect, CGFloat dX, CGFloat dY); NSRect NSIntegralRect (NSRect aRect); NSRect NSUnionRect (NSRect aRect, NSRect bRect); NSRect NSIntersectionRect (NSRect aRect, NSRect bRect); NSRect NSOffsetRect (NSRect aRect, CGFloat dX, CGFloat dY); void NSDivideRect (NSRect inRect, NSRect* slice, NSRect* rem, CGFloat amount, int edge); bool NSPointInRect (NSPoint aPoint, NSRect aRect); bool NSMouseInRect (NSPoint aPoint, NSRect aRect, bool flipped); bool NSContainsRect (NSRect aRect, NSRect bRect); bool NSIntersectsRect (NSRect aRect, NSRect bRect); }