view dstep/foundation/NSScanner.d @ 14:89f3c3ef1fd2

Added the Foundation framework
author Jacob Carlborg <doob@me.com>
date Mon, 03 Aug 2009 15:23:15 +0200
parents
children 19885b43130e
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.NSScanner;

import dstep.foundation.NSCharacterSet;
import dstep.foundation.NSDictionary;
import dstep.foundation.NSObject;
import dstep.foundation.NSString;
import dstep.objc.bridge.Bridge;
import dstep.objc.objc : id;

class NSScanner : NSObject, INSCopying
{
	mixin ObjcWrap;
	mixin TNSDecimalNumberScanning;
	mixin TNSExtendedScanner;

	NSString string ()
	{
		return invokeObjcSelf!(NSString, "string");
	}

	NSUInteger scanLocation ()
	{
		return invokeObjcSelf!(NSUInteger, "scanLocation");
	}

	void setScanLocation (NSUInteger pos)
	{
		return invokeObjcSelf!(void, "setScanLocation:", NSUInteger)(pos);
	}

	void setCharactersToBeSkipped (NSCharacterSet set)
	{
		return invokeObjcSelf!(void, "setCharactersToBeSkipped:", NSCharacterSet)(set);
	}

	void setCaseSensitive (bool flag)
	{
		return invokeObjcSelf!(void, "setCaseSensitive:", bool)(flag);
	}

	void setLocale (Object locale)
	{
		return invokeObjcSelf!(void, "setLocale:", Object)(locale);
	}

	Object copyWithZone (NSZone* zone)
	{
		return invokeObjcSelf!(Object, "copyWithZone:", NSZone*)(zone);
	}
}

template TNSExtendedScanner ()
{
	NSCharacterSet charactersToBeSkipped ()
	{
		return invokeObjcSelf!(NSCharacterSet, "charactersToBeSkipped");
	}

	bool caseSensitive ()
	{
		return invokeObjcSelf!(bool, "caseSensitive");
	}

	Object locale ()
	{
		return invokeObjcSelf!(Object, "locale");
	}

	bool scanInt (int* value)
	{
		return invokeObjcSelf!(bool, "scanInt:", int*)(value);
	}

	bool scanInteger (NSInteger* value)
	{
		return invokeObjcSelf!(bool, "scanInteger:", NSInteger*)(value);
	}

	bool scanHexLongLong (unsigned long long* result)
	{
		return invokeObjcSelf!(bool, "scanHexLongLong:", unsigned long long*)(result);
	}

	bool scanHexFloat (float* result)
	{
		return invokeObjcSelf!(bool, "scanHexFloat:", float*)(result);
	}

	bool scanHexDouble (double* result)
	{
		return invokeObjcSelf!(bool, "scanHexDouble:", double*)(result);
	}

	bool scanHexInt (unsigned* value)
	{
		return invokeObjcSelf!(bool, "scanHexInt:", unsigned*)(value);
	}

	bool scanLongLong (long long* value)
	{
		return invokeObjcSelf!(bool, "scanLongLong:", long long*)(value);
	}

	bool scanFloat (float* value)
	{
		return invokeObjcSelf!(bool, "scanFloat:", float*)(value);
	}

	bool scanDouble (double* value)
	{
		return invokeObjcSelf!(bool, "scanDouble:", double*)(value);
	}

	bool scanString (NSString string, NSString** value)
	{
		return invokeObjcSelf!(bool, "scanString:intoString:", NSString, NSString**)(string, value);
	}

	bool scanCharactersFromSet (NSCharacterSet set, NSString** value)
	{
		return invokeObjcSelf!(bool, "scanCharactersFromSet:intoString:", NSCharacterSet, NSString**)(set, value);
	}

	bool scanUpToString (NSString string, NSString** value)
	{
		return invokeObjcSelf!(bool, "scanUpToString:intoString:", NSString, NSString**)(string, value);
	}

	bool scanUpToCharactersFromSet (NSCharacterSet set, NSString** value)
	{
		return invokeObjcSelf!(bool, "scanUpToCharactersFromSet:intoString:", NSCharacterSet, NSString**)(set, value);
	}

	bool isAtEnd ()
	{
		return invokeObjcSelf!(bool, "isAtEnd");
	}

	Object initWithString (NSString string)
	{
		return invokeObjcSelf!(Object, "initWithString:", NSString)(string);
	}

	this (NSString string)
	{
		objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
		id result = Bridge.invokeObjcMethod!(id, "initWithString:", NSString)(objcObject, string);

		if (result)
			objcObject = ret;

		dObject = this;
	}

	static Object scannerWithString (NSString string)
	{
		return invokeObjcSelfClass!(Object, "scannerWithString:", NSString)(string);
	}

	static Object localizedScannerWithString (NSString string)
	{
		return invokeObjcSelfClass!(Object, "localizedScannerWithString:", NSString)(string);
	}
}