view dstep/foundation/NSPathUtilities.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.NSPathUtilities;

import dstep.foundation.NSArray;
import dstep.foundation.NSObjCRuntime;
import dstep.foundation.NSString;
import dstep.objc.bridge.Bridge;
import dstep.objc.objc;

import bindings = dstep.foundation.NSPathUtilities_bindings;

alias NSUInteger NSSearchPathDirectory;
alias NSUInteger NSSearchPathDomainMask;

enum
{
	NSApplicationDirectory = 1,
	NSDemoApplicationDirectory,
	NSDeveloperApplicationDirectory,
	NSAdminApplicationDirectory,
	NSLibraryDirectory,
	NSDeveloperDirectory,
	NSUserDirectory,
	NSDocumentationDirectory,
	NSDocumentDirectory,
	NSCoreServiceDirectory,
	NSDesktopDirectory = 12,
	NSCachesDirectory = 13,
	NSApplicationSupportDirectory = 14,
	NSDownloadsDirectory = 15,
	NSAllApplicationsDirectory = 100,
	NSAllLibrariesDirectory = 101
}

enum
{
	NSUserDomainMask = 1,
	NSLocalDomainMask = 2,
	NSNetworkDomainMask = 4,
	NSSystemDomainMask = 8,
	NSAllDomainsMask = 0x0ffff
}

const TNSStringPathExtensions = `

	static NSString pathWithComponents (NSArray components)
	{
		return invokeObjcSuperClass!(NSString, "pathWithComponents:", NSArray)(components);
	}

	NSArray pathComponents ()
	{
		return invokeObjcSelf!(NSArray, "pathComponents");
	}

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

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

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

	NSString stringByAppendingPathComponent (NSString str)
	{
		return invokeObjcSelf!(NSString, "stringByAppendingPathComponent:", NSString)(str);
	}

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

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

	NSString stringByAppendingPathExtension (NSString str)
	{
		return invokeObjcSelf!(NSString, "stringByAppendingPathExtension:", NSString)(str);
	}

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

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

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

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

	NSArray stringsByAppendingPaths (NSArray paths)
	{
		return invokeObjcSelf!(NSArray, "stringsByAppendingPaths:", NSArray)(paths);
	}

	NSUInteger completePathIntoString (NSString** outputName, bool flag, NSArray** outputArray, NSArray filterTypes)
	{
		return invokeObjcSelf!(NSUInteger, "completePathIntoString:caseSensitive:matchesIntoArray:filterTypes:", NSString**, bool, NSArray**, NSArray)(outputName, flag, outputArray, filterTypes);
	}

	char* fileSystemRepresentation ()
	{
		return invokeObjcSelf!(char*, "fileSystemRepresentation");
	}

	bool getFileSystemRepresentation (char* cname, NSUInteger max)
	{
		return invokeObjcSelf!(bool, "getFileSystemRepresentation:maxLength:", char*, NSUInteger)(cname, max);
	}
`;

const TNSArrayPathExtensions = `

	NSArray pathsMatchingExtensions (NSArray filterTypes)
	{
		return invokeObjcSelf!(NSArray, "pathsMatchingExtensions:", NSArray)(filterTypes);
	}
`;

NSString NSUserName ()
{
	return Bridge.invokeObjcFunction!(NSString, bindings.NSUserName);
}

NSString NSFullUserName ()
{
	return Bridge.invokeObjcFunction!(NSString, bindings.NSFullUserName);
}

NSString NSHomeDirectory ()
{
	return Bridge.invokeObjcFunction!(NSString, bindings.NSHomeDirectory);
}

NSString NSHomeDirectoryForUser (NSString userName)
{
	return Bridge.invokeObjcFunction!(NSString, bindings.NSHomeDirectoryForUser, NSString)(userName);
}

NSString NSTemporaryDirectory ()
{
	return Bridge.invokeObjcFunction!(NSString, bindings.NSTemporaryDirectory);
}

NSString NSOpenStepRootDirectory ()
{
	return Bridge.invokeObjcFunction!(NSString, bindings.NSOpenStepRootDirectory);
}

NSArray NSSearchPathForDirectoriesInDomains (uint directory, uint domainMask, bool expandTilde)
{
	return Bridge.invokeObjcFunction!(NSArray, bindings.NSSearchPathForDirectoriesInDomains, uint, uint, bool)(directory, domainMask, expandTilde);
}