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

import dstep.appkit.NSActionCell;
import dstep.appkit.NSColor;
import dstep.appkit.NSCell;
import dstep.appkit.NSFont;
import dstep.applicationservices.coregraphics.CGBase;
import dstep.foundation.NSGeometry;
import dstep.foundation.NSObjCRuntime;
import dstep.foundation.NSString;
import dstep.objc.bridge.Bridge;
import dstep.objc.objc;

alias NSUInteger NSTickMarkPosition;
alias NSUInteger NSSliderType;

enum
{
	NSTickMarkBelow = 0,
	NSTickMarkAbove = 1,
	NSTickMarkLeft = NSTickMarkAbove,
	NSTickMarkRight = NSTickMarkBelow
}

enum
{
	NSLinearSlider = 0,
	NSCircularSlider = 1
}

const TNSTickMarkSupport = `

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

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

	void setTickMarkPosition (uint position)
	{
		return invokeObjcSelf!(void, "setTickMarkPosition:", uint)(position);
	}

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

	void setAllowsTickMarkValuesOnly (bool yorn)
	{
		return invokeObjcSelf!(void, "setAllowsTickMarkValuesOnly:", bool)(yorn);
	}

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

	double tickMarkValueAtIndex (NSInteger index)
	{
		return invokeObjcSelf!(double, "tickMarkValueAtIndex:", NSInteger)(index);
	}

	NSRect rectOfTickMarkAtIndex (NSInteger index)
	{
		return invokeObjcSelf!(NSRect, "rectOfTickMarkAtIndex:", NSInteger)(index);
	}

	NSInteger indexOfTickMarkAtPoint (NSPoint point)
	{
		return invokeObjcSelf!(NSInteger, "indexOfTickMarkAtPoint:", NSPoint)(point);
	}

	double closestTickMarkValueToValue (double value)
	{
		return invokeObjcSelf!(double, "closestTickMarkValueToValue:", double)(value);
	}

	//mixin ObjcBindMethod!(setNumberOfTickMarks, "setNumberOfTickMarks:");
	//mixin ObjcBindMethod!(numberOfTickMarks, "numberOfTickMarks");
	//mixin ObjcBindMethod!(setTickMarkPosition, "setTickMarkPosition:");
	//mixin ObjcBindMethod!(tickMarkPosition, "tickMarkPosition");
	//mixin ObjcBindMethod!(setAllowsTickMarkValuesOnly, "setAllowsTickMarkValuesOnly:");
	//mixin ObjcBindMethod!(allowsTickMarkValuesOnly, "allowsTickMarkValuesOnly");
	//mixin ObjcBindMethod!(tickMarkValueAtIndex, "tickMarkValueAtIndex:");
	//mixin ObjcBindMethod!(rectOfTickMarkAtIndex, "rectOfTickMarkAtIndex:");
	//mixin ObjcBindMethod!(indexOfTickMarkAtPoint, "indexOfTickMarkAtPoint:");
	//mixin ObjcBindMethod!(closestTickMarkValueToValue, "closestTickMarkValueToValue:");
`;

class NSSliderCell : NSActionCell
{
	mixin (ObjcWrap);

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

	double minValue ()
	{
		return invokeObjcSelf!(double, "minValue");
	}

	void setMinValue (double aDouble)
	{
		return invokeObjcSelf!(void, "setMinValue:", double)(aDouble);
	}

	double maxValue ()
	{
		return invokeObjcSelf!(double, "maxValue");
	}

	void setMaxValue (double aDouble)
	{
		return invokeObjcSelf!(void, "setMaxValue:", double)(aDouble);
	}

	void setAltIncrementValue (double incValue)
	{
		return invokeObjcSelf!(void, "setAltIncrementValue:", double)(incValue);
	}

	double altIncrementValue ()
	{
		return invokeObjcSelf!(double, "altIncrementValue");
	}

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

	void setTitleColor (NSColor newColor)
	{
		return invokeObjcSelf!(void, "setTitleColor:", NSColor)(newColor);
	}

	NSColor titleColor ()
	{
		return invokeObjcSelf!(NSColor, "titleColor");
	}

	void setTitleFont (NSFont fontObj)
	{
		return invokeObjcSelf!(void, "setTitleFont:", NSFont)(fontObj);
	}

	NSFont titleFont ()
	{
		return invokeObjcSelf!(NSFont, "titleFont");
	}

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

	void setTitle (NSString aString)
	{
		return invokeObjcSelf!(void, "setTitle:", NSString)(aString);
	}

	void setTitleCell (NSCell aCell)
	{
		return invokeObjcSelf!(void, "setTitleCell:", NSCell)(aCell);
	}

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

	void setKnobThickness (CGFloat aFloat)
	{
		return invokeObjcSelf!(void, "setKnobThickness:", CGFloat)(aFloat);
	}

	CGFloat knobThickness ()
	{
		return invokeObjcSelf!(CGFloat, "knobThickness");
	}

	NSRect knobRectFlipped (bool flipped)
	{
		return invokeObjcSelf!(NSRect, "knobRectFlipped:", bool)(flipped);
	}

	void drawKnob (NSRect knobRect)
	{
		return invokeObjcSelf!(void, "drawKnob:", NSRect)(knobRect);
	}

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

	void drawBarInside (NSRect aRect, bool flipped)
	{
		return invokeObjcSelf!(void, "drawBarInside:flipped:", NSRect, bool)(aRect, flipped);
	}

	NSRect trackRect ()
	{
		return invokeObjcSelf!(NSRect, "trackRect");
	}

	void setSliderType (uint sliderType)
	{
		return invokeObjcSelf!(void, "setSliderType:", uint)(sliderType);
	}

	uint sliderType ()
	{
		return invokeObjcSelf!(uint, "sliderType");
	}
	
	// NSTickMarkSupport
	void setNumberOfTickMarks (NSInteger count)
	{
		return invokeObjcSelf!(void, "setNumberOfTickMarks:", NSInteger)(count);
	}

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

	void setTickMarkPosition (uint position)
	{
		return invokeObjcSelf!(void, "setTickMarkPosition:", uint)(position);
	}

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

	void setAllowsTickMarkValuesOnly (bool yorn)
	{
		return invokeObjcSelf!(void, "setAllowsTickMarkValuesOnly:", bool)(yorn);
	}

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

	double tickMarkValueAtIndex (NSInteger index)
	{
		return invokeObjcSelf!(double, "tickMarkValueAtIndex:", NSInteger)(index);
	}

	NSRect rectOfTickMarkAtIndex (NSInteger index)
	{
		return invokeObjcSelf!(NSRect, "rectOfTickMarkAtIndex:", NSInteger)(index);
	}

	NSInteger indexOfTickMarkAtPoint (NSPoint point)
	{
		return invokeObjcSelf!(NSInteger, "indexOfTickMarkAtPoint:", NSPoint)(point);
	}

	double closestTickMarkValueToValue (double value)
	{
		return invokeObjcSelf!(double, "closestTickMarkValueToValue:", double)(value);
	}
}