diff dstep/coreservices/ae/AEObjects.d @ 11:07194b026fa4

Added bindings to a couple of frameworks, new license + some other things
author Jacob Carlborg <doob@me.com>
date Sat, 01 Aug 2009 15:03:28 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dstep/coreservices/ae/AEObjects.d	Sat Aug 01 15:03:28 2009 +0200
@@ -0,0 +1,247 @@
+/**
+ * Copyright: Copyright (c) 2009 Jacob Carlborg.
+ * Authors: Jacob Carlborg
+ * Version: Initial created: Jul 21, 2009 
+ * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
+ */
+module dstep.coreservices.ae.AEObjects;
+
+//import dstep.AvailabilityMacros;
+import dstep.coreservices.ae.AEDataModel;
+import dstep.coreservices.ae.AppleEvents;
+import dstep.coreservices.carboncore.CarbonCore;
+import dstep.objc.bridge.TypeEncoding;
+
+alias ccntTokenRecord* ccntTokenRecPtr;
+alias ccntTokenRecPtr* ccntTokenRecHandle;
+alias OSLAccessorProcPtr OSLAccessorUPP;
+alias OSLCompareProcPtr OSLCompareUPP;
+alias OSLCountProcPtr OSLCountUPP;
+alias OSLDisposeTokenProcPtr OSLDisposeTokenUPP;
+alias OSLGetMarkTokenProcPtr OSLGetMarkTokenUPP;
+alias OSLGetErrDescProcPtr OSLGetErrDescUPP;
+alias OSLMarkProcPtr OSLMarkUPP;
+alias OSLAdjustMarksProcPtr OSLAdjustMarksUPP;
+
+extern (C)
+{
+	alias short function (int, int, AEDesc*) OSLAdjustMarksProcPtr;
+	alias short function (AEDesc*, AEDesc*, int) OSLMarkProcPtr;
+	alias short function (AEDesc*, uint, AEDesc*) OSLGetMarkTokenProcPtr;
+	alias short function (AEDesc*) OSLDisposeTokenProcPtr;
+	alias short function (AEDesc**) OSLGetErrDescProcPtr;
+	alias short function (uint, AEDesc*, AEDesc*, char*) OSLCompareProcPtr;
+	alias short function (uint, AEDesc*, uint, uint, AEDesc*, AEDesc*, int) OSLAccessorProcPtr;
+	alias short function (uint, uint, AEDesc*, long*) OSLCountProcPtr;
+}
+
+// This is needed otherwise the enums will fail compiling with gdc
+version (GNU)
+{
+	private
+	{
+		const __kAEAND = getOSType!("AND ");
+		const __kAEOR = getOSType!("OR  ");
+		const __kAENOT = getOSType!("NOT ");
+		const __kAEFirst = getOSType!("firs");
+		const __kAELast = getOSType!("last");
+		const __kAEMiddle = getOSType!("midd");
+		const __kAEAny = getOSType!("any ");
+		const __kAEAll = getOSType!("all ");
+		const __kAENext = getOSType!("next");
+		const __kAEPrevious = getOSType!("prev");
+		const __keyAECompOperator = getOSType!("relo");
+		const __keyAELogicalTerms = getOSType!("term");
+		const __keyAELogicalOperator = getOSType!("logc");
+		const __keyAEObject1 = getOSType!("obj1");
+		const __keyAEObject2 = getOSType!("obj2");
+		const __keyAEDesiredClass = getOSType!("want");
+		const __keyAEContainer = getOSType!("from");
+		const __keyAEKeyForm = getOSType!("form");
+		const __keyAEKeyData = getOSType!("seld");
+
+	}
+}
+
+// This is needed otherwise the enums will fail compiling with gdc
+version (GNU)
+{
+	private
+	{
+		const __keyAERangeStart = getOSType!("star");
+		const __keyAERangeStop = getOSType!("stop");
+		const __keyDisposeTokenProc = getOSType!("xtok");
+		const __keyAECompareProc = getOSType!("cmpr");
+		const __keyAECountProc = getOSType!("cont");
+		const __keyAEMarkTokenProc = getOSType!("mkid");
+		const __keyAEMarkProc = getOSType!("mark");
+		const __keyAEAdjustMarksProc = getOSType!("adjm");
+		const __keyAEGetErrDescProc = getOSType!("indc");
+
+	}
+}
+
+// This is needed otherwise the enums will fail compiling with gdc
+version (GNU)
+{
+	private
+	{
+		const __formAbsolutePosition = getOSType!("indx");
+		const __formRelativePosition = getOSType!("rele");
+		const __formTest = getOSType!("test");
+		const __formRange = getOSType!("rang");
+		const __formPropertyID = getOSType!("prop");
+		const __formName = getOSType!("name");
+		const __formUniqueID = getOSType!("ID  ");
+		const __typeObjectSpecifier = getOSType!("obj ");
+		const __typeObjectBeingExamined = getOSType!("exmn");
+		const __typeCurrentContainer = getOSType!("ccnt");
+		const __typeToken = getOSType!("toke");
+		const __typeRelativeDescriptor = getOSType!("rel ");
+		const __typeAbsoluteOrdinal = getOSType!("abso");
+		const __typeIndexDescriptor = getOSType!("inde");
+		const __typeRangeDescriptor = getOSType!("rang");
+		const __typeLogicalDescriptor = getOSType!("logi");
+		const __typeCompDescriptor = getOSType!("cmpd");
+		const __typeOSLTokenList = getOSType!("ostl");
+
+	}
+}
+
+// This is needed otherwise the enums will fail compiling with gdc
+version (GNU)
+{
+	private
+	{
+		const __typeWhoseDescriptor = getOSType!("whos");
+		const __formWhose = getOSType!("whos");
+		const __typeWhoseRange = getOSType!("wrng");
+		const __keyAEWhoseRangeStart = getOSType!("wstr");
+		const __keyAEWhoseRangeStop = getOSType!("wstp");
+		const __keyAEIndex = getOSType!("kidx");
+		const __keyAETest = getOSType!("ktst");
+
+	}
+}
+
+enum
+{
+	kAEAND = getOSType!("AND "),
+	kAEOR = getOSType!("OR  "),
+	kAENOT = getOSType!("NOT "),
+	kAEFirst = getOSType!("firs"),
+	kAELast = getOSType!("last"),
+	kAEMiddle = getOSType!("midd"),
+	kAEAny = getOSType!("any "),
+	kAEAll = getOSType!("all "),
+	kAENext = getOSType!("next"),
+	kAEPrevious = getOSType!("prev"),
+	keyAECompOperator = getOSType!("relo"),
+	keyAELogicalTerms = getOSType!("term"),
+	keyAELogicalOperator = getOSType!("logc"),
+	keyAEObject1 = getOSType!("obj1"),
+	keyAEObject2 = getOSType!("obj2"),
+	keyAEDesiredClass = getOSType!("want"),
+	keyAEContainer = getOSType!("from"),
+	keyAEKeyForm = getOSType!("form"),
+	keyAEKeyData = getOSType!("seld")
+}
+
+enum
+{
+	keyAERangeStart = getOSType!("star"),
+	keyAERangeStop = getOSType!("stop"),
+	keyDisposeTokenProc = getOSType!("xtok"),
+	keyAECompareProc = getOSType!("cmpr"),
+	keyAECountProc = getOSType!("cont"),
+	keyAEMarkTokenProc = getOSType!("mkid"),
+	keyAEMarkProc = getOSType!("mark"),
+	keyAEAdjustMarksProc = getOSType!("adjm"),
+	keyAEGetErrDescProc = getOSType!("indc")
+}
+
+enum
+{
+	formAbsolutePosition = getOSType!("indx"),
+	formRelativePosition = getOSType!("rele"),
+	formTest = getOSType!("test"),
+	formRange = getOSType!("rang"),
+	formPropertyID = getOSType!("prop"),
+	formName = getOSType!("name"),
+	formUniqueID = getOSType!("ID  "),
+	typeObjectSpecifier = getOSType!("obj "),
+	typeObjectBeingExamined = getOSType!("exmn"),
+	typeCurrentContainer = getOSType!("ccnt"),
+	typeToken = getOSType!("toke"),
+	typeRelativeDescriptor = getOSType!("rel "),
+	typeAbsoluteOrdinal = getOSType!("abso"),
+	typeIndexDescriptor = getOSType!("inde"),
+	typeRangeDescriptor = getOSType!("rang"),
+	typeLogicalDescriptor = getOSType!("logi"),
+	typeCompDescriptor = getOSType!("cmpd"),
+	typeOSLTokenList = getOSType!("ostl")
+}
+
+enum
+{
+	kAEIDoMinimum = 0x0000,
+	kAEIDoWhose = 0x0001,
+	kAEIDoMarking = 0x0004,
+	kAEPassSubDescs = 0x0008,
+	kAEResolveNestedLists = 0x0010,
+	kAEHandleSimpleRanges = 0x0020,
+	kAEUseRelativeIterators = 0x0040
+}
+
+enum
+{
+	typeWhoseDescriptor = getOSType!("whos"),
+	formWhose = getOSType!("whos"),
+	typeWhoseRange = getOSType!("wrng"),
+	keyAEWhoseRangeStart = getOSType!("wstr"),
+	keyAEWhoseRangeStop = getOSType!("wstp"),
+	keyAEIndex = getOSType!("kidx"),
+	keyAETest = getOSType!("ktst")
+}
+
+struct ccntTokenRecord
+{
+	uint tokenClass;
+	AEDesc token;
+}
+
+extern (C)
+{
+	OSLAccessorUPP NewOSLAccessorUPP (OSLAccessorProcPtr userRoutine);
+	OSLCompareUPP NewOSLCompareUPP (OSLCompareProcPtr userRoutine);
+	OSLCountUPP NewOSLCountUPP (OSLCountProcPtr userRoutine);
+	OSLDisposeTokenUPP NewOSLDisposeTokenUPP (OSLDisposeTokenProcPtr userRoutine);
+	OSLGetMarkTokenUPP NewOSLGetMarkTokenUPP (OSLGetMarkTokenProcPtr userRoutine);
+	OSLGetErrDescUPP NewOSLGetErrDescUPP (OSLGetErrDescProcPtr userRoutine);
+	OSLMarkUPP NewOSLMarkUPP (OSLMarkProcPtr userRoutine);
+	OSLAdjustMarksUPP NewOSLAdjustMarksUPP (OSLAdjustMarksProcPtr userRoutine);
+	void DisposeOSLAccessorUPP (OSLAccessorUPP userUPP);
+	void DisposeOSLCompareUPP (OSLCompareUPP userUPP);
+	void DisposeOSLCountUPP (OSLCountUPP userUPP);
+	void DisposeOSLDisposeTokenUPP (OSLDisposeTokenUPP userUPP);
+	void DisposeOSLGetMarkTokenUPP (OSLGetMarkTokenUPP userUPP);
+	void DisposeOSLGetErrDescUPP (OSLGetErrDescUPP userUPP);
+	void DisposeOSLMarkUPP (OSLMarkUPP userUPP);
+	void DisposeOSLAdjustMarksUPP (OSLAdjustMarksUPP userUPP);
+	short InvokeOSLAccessorUPP (uint desiredClass, AEDesc* container, uint containerClass, uint form, AEDesc* selectionData, AEDesc* value, int accessorRefcon, OSLAccessorUPP userUPP);
+	short InvokeOSLCompareUPP (uint oper, AEDesc* obj1, AEDesc* obj2, char* result, OSLCompareUPP userUPP);
+	short InvokeOSLCountUPP (uint desiredType, uint containerClass, AEDesc* container, long* result, OSLCountUPP userUPP);
+	short InvokeOSLDisposeTokenUPP (AEDesc* unneededToken, OSLDisposeTokenUPP userUPP);
+	short InvokeOSLGetMarkTokenUPP (AEDesc* dContainerToken, uint containerClass, AEDesc* result, OSLGetMarkTokenUPP userUPP);
+	short InvokeOSLGetErrDescUPP (AEDesc** appDescPtr, OSLGetErrDescUPP userUPP);
+	short InvokeOSLMarkUPP (AEDesc* dToken, AEDesc* markToken, int index, OSLMarkUPP userUPP);
+	short InvokeOSLAdjustMarksUPP (int newStart, int newStop, AEDesc* markToken, OSLAdjustMarksUPP userUPP);
+	short AEObjectInit ();
+	short AESetObjectCallbacks (OSLCompareUPP myCompareProc, OSLCountUPP myCountProc, OSLDisposeTokenUPP myDisposeTokenProc, OSLGetMarkTokenUPP myGetMarkTokenProc, OSLMarkUPP myMarkProc, OSLAdjustMarksUPP myAdjustMarksProc, OSLGetErrDescUPP myGetErrDescProcPtr);
+	short AEResolve (AEDesc* objectSpecifier, short callbackFlags, AEDesc* theToken);
+	short AEInstallObjectAccessor (uint desiredClass, uint containerType, OSLAccessorUPP theAccessor, int accessorRefcon, ubyte isSysHandler);
+	short AERemoveObjectAccessor (uint desiredClass, uint containerType, OSLAccessorUPP theAccessor, ubyte isSysHandler);
+	short AEGetObjectAccessor (uint desiredClass, uint containerType, OSLAccessorUPP* accessor, SRefCon* accessorRefcon, ubyte isSysHandler);
+	short AEDisposeToken (AEDesc* theToken);
+	short AECallObjectAccessor (uint desiredClass, AEDesc* containerToken, uint containerClass, uint keyForm, AEDesc* keyData, AEDesc* token);
+}
\ No newline at end of file