view dstep/appkit/NSHelpManager.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 b9de51448c6b
line wrap: on
line source

/**
 * Copyright: Copyright (c) 2009 Jacob Carlborg.
 * Authors: Jacob Carlborg
 * Version: Initial created: Sep 24, 2009 
 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
 */
module dstep.appkit.NSHelpManager;

import dstep.appkit.AppKitDefines;
import dstep.appkit.NSApplication;
import dstep.appkit.NSAttributedString;
import dstep.appkit.NSWindow;
import dstep.foundation.NSAttributedString;
import dstep.foundation.NSBundle;
import dstep.foundation.NSGeometry;
import dstep.foundation.NSMapTable;
import dstep.foundation.NSObject;
import dstep.foundation.NSString;
import dstep.objc.bridge.Bridge;
import dstep.objc.objc;

import bindings = dstep.appkit.NSHelpManager_bindings;

private
{
	NSString NSContextHelpModeDidActivateNotification_;
	NSString NSContextHelpModeDidDeactivateNotification_;
}

NSString NSContextHelpModeDidActivateNotification ()
{
	if (NSContextHelpModeDidActivateNotification_)
		return NSContextHelpModeDidActivateNotification_;

	return NSContextHelpModeDidActivateNotification_ = new NSString(bindings.NSContextHelpModeDidActivateNotification);
}

NSString NSContextHelpModeDidDeactivateNotification ()
{
	if (NSContextHelpModeDidDeactivateNotification_)
		return NSContextHelpModeDidDeactivateNotification_;

	return NSContextHelpModeDidDeactivateNotification_ = new NSString(bindings.NSContextHelpModeDidDeactivateNotification);
}

class NSHelpManager : NSObject
{
	mixin (ObjcWrap);

	static NSHelpManager sharedHelpManager ()
	{
		return invokeObjcSelfClass!(NSHelpManager, "sharedHelpManager");
	}

	static void setContextHelpModeActive (bool active)
	{
		return invokeObjcSelfClass!(void, "setContextHelpModeActive:", bool)(active);
	}

	static bool isContextHelpModeActive ()
	{
		return invokeObjcSelfClass!(bool, "isContextHelpModeActive");
	}

	void setContextHelp (NSAttributedString attrString, Object object)
	{
		return invokeObjcSelf!(void, "setContextHelp:forObject:", NSAttributedString, Object)(attrString, object);
	}

	void removeContextHelpForObject (Object object)
	{
		return invokeObjcSelf!(void, "removeContextHelpForObject:", Object)(object);
	}

	NSAttributedString contextHelpForObject (Object object)
	{
		return invokeObjcSelf!(NSAttributedString, "contextHelpForObject:", Object)(object);
	}

	bool showContextHelpForObject (Object object, NSPoint pt)
	{
		return invokeObjcSelf!(bool, "showContextHelpForObject:locationHint:", Object, NSPoint)(object, pt);
	}

	void openHelpAnchor (NSString anchor, NSString book)
	{
		return invokeObjcSelf!(void, "openHelpAnchor:inBook:", NSString, NSString)(anchor, book);
	}

	void findString (NSString query, NSString book)
	{
		return invokeObjcSelf!(void, "findString:inBook:", NSString, NSString)(query, book);
	}
}

const TNSApplicationHelpExtension = `

	void activateContextHelpMode (Object sender)
	{
		return invokeObjcSelf!(void, "activateContextHelpMode:", Object)(sender);
	}

	void showHelp (Object sender)
	{
		return invokeObjcSelf!(void, "showHelp:", Object)(sender);
	}

	//mixin ObjcBindMethod!(activateContextHelpMode, "activateContextHelpMode:");
	//mixin ObjcBindMethod!(showHelp, "showHelp:");

`;

const TNSBundleHelpExtension = `

	NSAttributedString contextHelpForKey (NSString key)
	{
		return invokeObjcSelf!(NSAttributedString, "contextHelpForKey:", NSString)(key);
	}

	//mixin ObjcBindMethod!(contextHelpForKey, "contextHelpForKey:");

`;