view dstep/coreservices/carboncore/MacTypes.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 source

/**
 * 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.carboncore.MacTypes;

//import dstep.AvailabilityMacros;
import dstep.coreservices.carboncore.ConditionalMacros;
import dstep.internal.Types;
//import dstep.stdbool;
//import dstep.sys.types;

struct TimeBaseRecord;

alias ubyte UInt8;
alias byte SInt8;
alias ushort UInt16;
alias short SInt16;
alias uint UInt32;
alias int SInt32;
alias long SInt64;
alias ulong UInt64;
alias int Fixed;
alias Fixed* FixedPtr;
alias int Fract;
alias Fract* FractPtr;
alias uint UnsignedFixed;
alias UnsignedFixed* UnsignedFixedPtr;
alias short ShortFixed;
alias ShortFixed* ShortFixedPtr;
alias float Float32;
alias double Float64;
alias char* Ptr;
alias Ptr* Handle;
alias int Size;
alias short OSErr;
alias int OSStatus;
alias void* LogicalAddress;
alias void* ConstLogicalAddress;
alias void* PhysicalAddress;
alias char* BytePtr;
alias uint ByteCount;
alias uint ByteOffset;
alias int Duration;
alias UnsignedWide AbsoluteTime;
alias uint OptionBits;
alias uint ItemCount;
alias uint PBVersion;
alias short ScriptCode;
alias short LangCode;
alias short RegionCode;
alias uint FourCharCode;
alias uint OSType;
alias uint ResType;
alias OSType* OSTypePtr;
alias ResType* ResTypePtr;
alias bool Boolean;
alias ProcPtr UniversalProcPtr;
alias ProcPtr* ProcHandle;
alias UniversalProcPtr* UniversalProcHandle;
alias void* PRefCon;
alias void* URefCon;
alias void* SRefCon;
alias uint UnicodeScalarValue;
alias dchar UTF32Char;
alias wchar UniChar;
alias wchar UTF16Char;
alias char UTF8Char;
alias wchar* UniCharPtr;
alias c_ulong UniCharCount;
alias UniCharCount* UniCharCountPtr;
alias char[256] Str255;
alias char[64] Str63;
alias char[33] Str32;
alias char[32] Str31;
alias char[28] Str28;
alias char[16] Str15;
alias Str63 StrFileName;
alias char* StringPtr;
alias StringPtr* StringHandle;
alias char* ConstStringPtr;
alias char* ConstStr255Param;
alias char* ConstStr63Param;
alias char* ConstStr32Param;
alias char* ConstStr31Param;
alias char* ConstStr27Param;
alias char* ConstStr15Param;
alias char* ConstStrFileNameParam;
alias ProcessSerialNumber* ProcessSerialNumberPtr;
alias Point* PointPtr;
alias Rect* RectPtr;
alias short CharParameter;
alias ubyte Style;
alias short StyleParameter;
alias ubyte StyleField;
alias int TimeValue;
alias int TimeScale;
alias wide CompTimeValue;
alias long TimeValue64;
alias TimeBaseRecord* TimeBase;
alias NumVersionVariant* NumVersionVariantPtr;
alias NumVersionVariantPtr* NumVersionVariantHandle;
alias VersRec* VersRecPtr;
alias VersRecPtr* VersRecHndl;
alias ubyte Byte;
alias byte SignedByte;
alias wide* WidePtr;
alias UnsignedWide* UnsignedWidePtr;
alias Float80[] extended80;
alias Float96[][] extended96;
alias byte VHSelect;

extern (C)
{
	alias c_long function () Register68kProcPtr;
	alias void function () ProcPtr;
}

enum
{
	noErr = 0
}

enum
{
	kNilOptions = 0
}

enum
{
	kVariableLengthArray = 1
}

enum
{
	kUnknownType = 0x3F3F3F3F
}

enum
{
	normal = 0,
	bold = 1,
	italic = 2,
	underline = 4,
	outline = 8,
	shadow = 0x10,
	condense = 0x20,
	extend = 0x40
}

enum
{
	developStage = 0x20,
	alphaStage = 0x40,
	betaStage = 0x60,
	finalStage = 0x80
}

union NumVersionVariant
{
	NumVersion parts;
	uint whole;
}

struct wide
{
	uint lo;
	int hi;
}


struct UnsignedWide
{
	uint lo;
	uint hi;
}


struct Float80
{
	short exp;
	UInt16* man;
}


struct Float96
{
	SInt16* exp;
	UInt16* man;
}


struct Float32Point
{
	float x;
	float y;
}


struct ProcessSerialNumber
{
	uint highLongOfPSN;
	uint lowLongOfPSN;
}


struct Point
{
	short v;
	short h;
}


struct Rect
{
	short top;
	short left;
	short bottom;
	short right;
}


struct FixedPoint
{
	int x;
	int y;
}


struct FixedRect
{
	int left;
	int top;
	int right;
	int bottom;
}


struct TimeRecord
{
	CompTimeValue value;
	int scale;
	TimeBase base;
}


struct NumVersion
{
	ubyte nonRelRev;
	ubyte stage;
	ubyte minorAndBugRev;
	ubyte majorRev;
}


struct VersRec
{
	NumVersion numericVersion;
	short countryCode;
	ubyte[256] shortVersion;
	ubyte[256] reserved;
}

extern (C)
{
	void Debugger ();
	void DebugStr (char* debuggerMsg);
	void SysBreak ();
	void SysBreakStr (char* debuggerMsg);
	void SysBreakFunc (char* debuggerMsg);
}