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

import dstep.appkit.NSActionCell;
import dstep.appkit.NSImage;
import dstep.appkit.NSMenu;
import dstep.appkit.NSSegmentedControl;
import dstep.appkit.NSView;
import dstep.applicationservices.coregraphics.CGBase;
import dstep.foundation.NSArray;
import dstep.foundation.NSObjCRuntime;
import dstep.foundation.NSGeometry;
import dstep.foundation.NSString;
import dstep.objc.bridge.Bridge;
import dstep.objc.objc;

typedef NSUInteger NSSegmentSwitchTracking;

enum : NSUInteger
{
	NSSegmentSwitchTrackingSelectOne = 0,
	NSSegmentSwitchTrackingSelectAny = 1,
	NSSegmentSwitchTrackingMomentary = 2
}

const TNSSegmentBackgroundStyle = `

	int interiorBackgroundStyleForSegment (NSInteger segment)
	{
		return invokeObjcSelf!(int, "interiorBackgroundStyleForSegment:", NSInteger)(segment);
	}

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

`;

class NSSegmentedCell : NSActionCell
{
	mixin (ObjcWrap);

	void setSegmentCount (NSInteger count)
	{
		return invokeObjcSelf!(void, "setSegmentCount:", NSInteger)(count);
	}

	NSInteger segmentCount ()
	{
		return invokeObjcSelf!(NSInteger, "segmentCount");
	}

	void setSelectedSegment (NSInteger selectedSegment)
	{
		return invokeObjcSelf!(void, "setSelectedSegment:", NSInteger)(selectedSegment);
	}

	NSInteger selectedSegment ()
	{
		return invokeObjcSelf!(NSInteger, "selectedSegment");
	}

	bool selectSegmentWithTag (NSInteger tag)
	{
		return invokeObjcSelf!(bool, "selectSegmentWithTag:", NSInteger)(tag);
	}

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

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

	void setTrackingMode (uint trackingMode)
	{
		return invokeObjcSelf!(void, "setTrackingMode:", uint)(trackingMode);
	}

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

	void setWidth (CGFloat width, NSInteger segment)
	{
		return invokeObjcSelf!(void, "setWidth:forSegment:", CGFloat, NSInteger)(width, segment);
	}

	CGFloat widthForSegment (NSInteger segment)
	{
		return invokeObjcSelf!(CGFloat, "widthForSegment:", NSInteger)(segment);
	}

	void setImage (NSImage image, NSInteger segment)
	{
		return invokeObjcSelf!(void, "setImage:forSegment:", NSImage, NSInteger)(image, segment);
	}

	NSImage imageForSegment (NSInteger segment)
	{
		return invokeObjcSelf!(NSImage, "imageForSegment:", NSInteger)(segment);
	}

	void setImageScaling (uint scaling, NSInteger segment)
	{
		return invokeObjcSelf!(void, "setImageScaling:forSegment:", uint, NSInteger)(scaling, segment);
	}

	uint imageScalingForSegment (NSInteger segment)
	{
		return invokeObjcSelf!(uint, "imageScalingForSegment:", NSInteger)(segment);
	}

	void setLabel (NSString label, NSInteger segment)
	{
		return invokeObjcSelf!(void, "setLabel:forSegment:", NSString, NSInteger)(label, segment);
	}

	NSString labelForSegment (NSInteger segment)
	{
		return invokeObjcSelf!(NSString, "labelForSegment:", NSInteger)(segment);
	}

	void setSelected (bool selected, NSInteger segment)
	{
		return invokeObjcSelf!(void, "setSelected:forSegment:", bool, NSInteger)(selected, segment);
	}

	bool isSelectedForSegment (NSInteger segment)
	{
		return invokeObjcSelf!(bool, "isSelectedForSegment:", NSInteger)(segment);
	}

	void setEnabled (bool enabled, NSInteger segment)
	{
		return invokeObjcSelf!(void, "setEnabled:forSegment:", bool, NSInteger)(enabled, segment);
	}

	bool isEnabledForSegment (NSInteger segment)
	{
		return invokeObjcSelf!(bool, "isEnabledForSegment:", NSInteger)(segment);
	}

	void setMenu (NSMenu menu, NSInteger segment)
	{
		return invokeObjcSelf!(void, "setMenu:forSegment:", NSMenu, NSInteger)(menu, segment);
	}

	NSMenu menuForSegment (NSInteger segment)
	{
		return invokeObjcSelf!(NSMenu, "menuForSegment:", NSInteger)(segment);
	}

	void setToolTip (NSString toolTip, NSInteger segment)
	{
		return invokeObjcSelf!(void, "setToolTip:forSegment:", NSString, NSInteger)(toolTip, segment);
	}

	NSString toolTipForSegment (NSInteger segment)
	{
		return invokeObjcSelf!(NSString, "toolTipForSegment:", NSInteger)(segment);
	}

	void setTag (NSInteger tag, NSInteger segment)
	{
		return invokeObjcSelf!(void, "setTag:forSegment:", NSInteger, NSInteger)(tag, segment);
	}

	NSInteger tagForSegment (NSInteger segment)
	{
		return invokeObjcSelf!(NSInteger, "tagForSegment:", NSInteger)(segment);
	}

	void setSegmentStyle (int segmentStyle)
	{
		return invokeObjcSelf!(void, "setSegmentStyle:", int)(segmentStyle);
	}

	int segmentStyle ()
	{
		return invokeObjcSelf!(int, "segmentStyle");
	}

	void drawSegment (NSInteger segment, NSRect frame, NSView controlView)
	{
		return invokeObjcSelf!(void, "drawSegment:inFrame:withView:", NSInteger, NSRect, NSView)(segment, frame, controlView);
	}
	
	// NSSegmentBackgroundStyle
	int interiorBackgroundStyleForSegment (NSInteger segment)
	{
		return invokeObjcSelf!(int, "interiorBackgroundStyleForSegment:", NSInteger)(segment);
	}
}