view dstep/appkit/NSToolbar.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.NSToolbar;

import dstep.appkit.AppKitDefines;
import dstep.appkit.NSToolbarItem;
import dstep.appkit.NSWindow;
import dstep.foundation.NSArray;
import dstep.foundation.NSDictionary;
import dstep.foundation.NSNotification;
import dstep.foundation.NSObjCRuntime;
import dstep.foundation.NSObject;
import dstep.foundation.NSString;
import dstep.objc.bridge.Bridge;
import dstep.objc.objc;

import bindings = dstep.appkit.NSToolbar_bindings;

typedef NSUInteger NSToolbarDisplayMode;
typedef NSUInteger NSToolbarSizeMode;

private
{
	NSString NSToolbarWillAddItemNotification_;
	NSString NSToolbarDidRemoveItemNotification_;
}

NSString NSToolbarWillAddItemNotification ()
{
	if (NSToolbarWillAddItemNotification_)
		return NSToolbarWillAddItemNotification_;

	return NSToolbarWillAddItemNotification_ = new NSString(bindings.NSToolbarWillAddItemNotification);
}

NSString NSToolbarDidRemoveItemNotification ()
{
	if (NSToolbarDidRemoveItemNotification_)
		return NSToolbarDidRemoveItemNotification_;

	return NSToolbarDidRemoveItemNotification_ = new NSString(bindings.NSToolbarDidRemoveItemNotification);
}

enum : NSUInteger
{
	NSToolbarDisplayModeDefault,
	NSToolbarDisplayModeIconAndLabel,
	NSToolbarDisplayModeIconOnly,
	NSToolbarDisplayModeLabelOnly
}

enum : NSUInteger
{
	NSToolbarSizeModeDefault,
	NSToolbarSizeModeRegular,
	NSToolbarSizeModeSmall
}

class NSToolbar : NSObject
{
	mixin (ObjcWrap);

	NSToolbar initWithIdentifier (NSString identifier)
	{
		id result = invokeObjcSelf!(id, "initWithIdentifier:", NSString)(identifier);
		return result is this.objcObject ? this : (result !is null ? new NSToolbar(result) : null);
	}

	this (NSString identifier)
	{
		super(NSToolbar.alloc.initWithIdentifier(identifier).objcObject);
	}

	void insertItemWithItemIdentifier (NSString itemIdentifier, NSInteger index)
	{
		return invokeObjcSelf!(void, "insertItemWithItemIdentifier:atIndex:", NSString, NSInteger)(itemIdentifier, index);
	}

	void removeItemAtIndex (NSInteger index)
	{
		return invokeObjcSelf!(void, "removeItemAtIndex:", NSInteger)(index);
	}

	void setDelegate (Object delegate_)
	{
		return invokeObjcSelf!(void, "setDelegate:", Object)(delegate_);
	}

	Object delegate_ ()
	{
		return invokeObjcSelf!(Object, "delegate");
	}

	void setVisible (bool shown)
	{
		return invokeObjcSelf!(void, "setVisible:", bool)(shown);
	}

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

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

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

	void setDisplayMode (uint displayMode)
	{
		return invokeObjcSelf!(void, "setDisplayMode:", uint)(displayMode);
	}

	uint displayMode ()
	{
		return invokeObjcSelf!(uint, "displayMode");
	}

	void setSelectedItemIdentifier (NSString itemIdentifier)
	{
		return invokeObjcSelf!(void, "setSelectedItemIdentifier:", NSString)(itemIdentifier);
	}

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

	void setSizeMode (uint sizeMode)
	{
		return invokeObjcSelf!(void, "setSizeMode:", uint)(sizeMode);
	}

	uint sizeMode ()
	{
		return invokeObjcSelf!(uint, "sizeMode");
	}

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

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

	void setAllowsUserCustomization (bool allowCustomization)
	{
		return invokeObjcSelf!(void, "setAllowsUserCustomization:", bool)(allowCustomization);
	}

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

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

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

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

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

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

	void setConfigurationFromDictionary (NSDictionary configDict)
	{
		return invokeObjcSelf!(void, "setConfigurationFromDictionary:", NSDictionary)(configDict);
	}

	NSDictionary configurationDictionary ()
	{
		return invokeObjcSelf!(NSDictionary, "configurationDictionary");
	}

	void validateVisibleItems ()
	{
		return invokeObjcSelf!(void, "validateVisibleItems");
	}
}

const TNSToolbarDelegate = `

	NSToolbarItem toolbar (NSToolbar toolbar, NSString itemIdentifier, bool flag)
	{
		return invokeObjcSelf!(NSToolbarItem, "toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar:", NSToolbar, NSString, bool)(toolbar, itemIdentifier, flag);
	}

	NSArray toolbarDefaultItemIdentifiers (NSToolbar toolbar)
	{
		return invokeObjcSelf!(NSArray, "toolbarDefaultItemIdentifiers:", NSToolbar)(toolbar);
	}

	NSArray toolbarAllowedItemIdentifiers (NSToolbar toolbar)
	{
		return invokeObjcSelf!(NSArray, "toolbarAllowedItemIdentifiers:", NSToolbar)(toolbar);
	}

	NSArray toolbarSelectableItemIdentifiers (NSToolbar toolbar)
	{
		return invokeObjcSelf!(NSArray, "toolbarSelectableItemIdentifiers:", NSToolbar)(toolbar);
	}

	//mixin ObjcBindMethod!(toolbar, "toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar:");
	//mixin ObjcBindMethod!(toolbarDefaultItemIdentifiers, "toolbarDefaultItemIdentifiers:");
	//mixin ObjcBindMethod!(toolbarAllowedItemIdentifiers, "toolbarAllowedItemIdentifiers:");
	//mixin ObjcBindMethod!(toolbarSelectableItemIdentifiers, "toolbarSelectableItemIdentifiers:");

`;

const TNSToolbarNotifications = `

	void toolbarWillAddItem (NSNotification notification)
	{
		return invokeObjcSelf!(void, "toolbarWillAddItem:", NSNotification)(notification);
	}

	void toolbarDidRemoveItem (NSNotification notification)
	{
		return invokeObjcSelf!(void, "toolbarDidRemoveItem:", NSNotification)(notification);
	}

	//mixin ObjcBindMethod!(toolbarWillAddItem, "toolbarWillAddItem:");
	//mixin ObjcBindMethod!(toolbarDidRemoveItem, "toolbarDidRemoveItem:");

`;