Mercurial > projects > dstep
view dstep/qtkit/QTTimeRange.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 |
line wrap: on
line source
/** * Copyright: Copyright (c) 2009 Jacob Carlborg. * Authors: Jacob Carlborg * Version: Initial created: Sep 28, 2009 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) */ module dstep.qtkit.QTTimeRange; import dstep.foundation.Foundation; import dstep.objc.bridge.Bridge; import dstep.objc.objc; import dstep.qtkit.QTKitDefines; import dstep.qtkit.QTTime; import bindings = dstep.qtkit.QTTimeRange_bindings; struct QTTimeRange { QTTime time; QTTime duration; } const TNSQTTimeRangeCoding = ` void encodeQTTimeRange (QTTimeRange range, NSString key) { return invokeObjcSelf!(void, "encodeQTTimeRange:forKey:", QTTimeRange, NSString)(range, key); } QTTimeRange decodeQTTimeRangeForKey (NSString key) { return invokeObjcSelf!(QTTimeRange, "decodeQTTimeRangeForKey:", NSString)(key); } //mixin ObjcBindMethod!(encodeQTTimeRange, "encodeQTTimeRange:forKey:"); //mixin ObjcBindMethod!(decodeQTTimeRangeForKey, "decodeQTTimeRangeForKey:"); `; const TNSValueQTTimeRangeExtensions = ` static NSValue valueWithQTTimeRange (QTTimeRange range) { return invokeObjcSelfClass!(NSValue, "valueWithQTTimeRange:", QTTimeRange)(range); } QTTimeRange QTTimeRangeValue () { return invokeObjcSelf!(QTTimeRange, "QTTimeRangeValue"); } //mixin ObjcBindClassMethod!(valueWithQTTimeRange, "valueWithQTTimeRange:"); //mixin ObjcBindMethod!(QTTimeRangeValue, "QTTimeRangeValue"); `; NSString QTStringFromTimeRange (QTTimeRange range) { return Bridge.invokeObjcFunction!(NSString, bindings.QTStringFromTimeRange, QTTimeRange)(range); } QTTimeRange QTTimeRangeFromString (NSString str) { return Bridge.invokeObjcFunction!(QTTimeRange, bindings.QTTimeRangeFromString, NSString)(str); } extern (C) { QTTimeRange QTMakeTimeRange (QTTime time, QTTime duration); bool QTTimeInTimeRange (QTTime time, QTTimeRange range); bool QTEqualTimeRanges (QTTimeRange range, QTTimeRange range2); QTTime QTTimeRangeEnd (QTTimeRange range); QTTimeRange QTUnionTimeRange (QTTimeRange range1, QTTimeRange range2); QTTimeRange QTIntersectionTimeRange (QTTimeRange range1, QTTimeRange range2); }