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

import dstep.appkit.NSCell;
import dstep.appkit.NSControl;
import dstep.appkit.NSEvent;
import dstep.applicationservices.coregraphics.CGBase;
import dstep.foundation.NSGeometry;
import dstep.foundation.NSObjCRuntime;
import dstep.objc.bridge.Bridge;
import dstep.objc.objc;

alias NSUInteger NSScrollArrowPosition;
alias NSUInteger NSUsableScrollerParts;
alias NSUInteger NSScrollerPart;
alias NSUInteger NSScrollerArrow;

enum
{
	NSScrollerArrowsMaxEnd = 0,
	NSScrollerArrowsMinEnd = 1,
	NSScrollerArrowsDefaultSetting = 0,
	NSScrollerArrowsNone = 2
}

enum
{
	NSNoScrollerParts = 0,
	NSOnlyScrollerArrows = 1,
	NSAllScrollerParts = 2
}

enum
{
	NSScrollerNoPart = 0,
	NSScrollerDecrementPage = 1,
	NSScrollerKnob = 2,
	NSScrollerIncrementPage = 3,
	NSScrollerDecrementLine = 4,
	NSScrollerIncrementLine = 5,
	NSScrollerKnobSlot = 6
}

enum
{
	NSScrollerIncrementArrow = 0,
	NSScrollerDecrementArrow = 1
}

class NSScroller : NSControl
{
	mixin (ObjcWrap);

	static CGFloat scrollerWidth ()
	{
		return invokeObjcSelfClass!(CGFloat, "scrollerWidth");
	}

	static CGFloat scrollerWidthForControlSize (uint controlSize)
	{
		return invokeObjcSelfClass!(CGFloat, "scrollerWidthForControlSize:", uint)(controlSize);
	}

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

	NSRect rectForPart (uint partCode)
	{
		return invokeObjcSelf!(NSRect, "rectForPart:", uint)(partCode);
	}

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

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

	void setArrowsPosition (uint where)
	{
		return invokeObjcSelf!(void, "setArrowsPosition:", uint)(where);
	}

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

	void setControlTint (uint controlTint)
	{
		return invokeObjcSelf!(void, "setControlTint:", uint)(controlTint);
	}

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

	void setControlSize (uint controlSize)
	{
		return invokeObjcSelf!(void, "setControlSize:", uint)(controlSize);
	}

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

	void drawArrow (uint whichArrow, bool flag)
	{
		return invokeObjcSelf!(void, "drawArrow:highlight:", uint, bool)(whichArrow, flag);
	}

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

	void drawKnobSlotInRect (NSRect slotRect, bool flag)
	{
		return invokeObjcSelf!(void, "drawKnobSlotInRect:highlight:", NSRect, bool)(slotRect, flag);
	}

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

	uint testPart (NSPoint thePoint)
	{
		return invokeObjcSelf!(uint, "testPart:", NSPoint)(thePoint);
	}

	void trackKnob (NSEvent theEvent)
	{
		return invokeObjcSelf!(void, "trackKnob:", NSEvent)(theEvent);
	}

	void trackScrollButtons (NSEvent theEvent)
	{
		return invokeObjcSelf!(void, "trackScrollButtons:", NSEvent)(theEvent);
	}

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

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

	void setKnobProportion (CGFloat proportion)
	{
		return invokeObjcSelf!(void, "setKnobProportion:", CGFloat)(proportion);
	}
}