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

import dstep.appkit.NSEvent;
import dstep.appkit.NSRulerMarker;
import dstep.appkit.NSScrollView;
import dstep.appkit.NSView;
import dstep.applicationservices.coregraphics.CGBase;
import dstep.foundation.NSArray;
import dstep.foundation.NSGeometry;
import dstep.foundation.NSObjCRuntime;
import dstep.foundation.NSString;
import dstep.objc.bridge.Bridge;
import dstep.objc.objc;

alias NSUInteger NSRulerOrientation;

enum
{
	NSHorizontalRuler,
	NSVerticalRuler
}

class NSRulerView : NSView
{
	mixin (ObjcWrap);

	static void registerUnitWithName (NSString unitName, NSString abbreviation, CGFloat conversionFactor, NSArray stepUpCycle, NSArray stepDownCycle)
	{
		return invokeObjcSelfClass!(void, "registerUnitWithName:abbreviation:unitToPointsConversionFactor:stepUpCycle:stepDownCycle:", NSString, NSString, CGFloat, NSArray, NSArray)(unitName, abbreviation, conversionFactor, stepUpCycle, stepDownCycle);
	}

	NSRulerView initWithScrollView (NSScrollView scrollView, uint orientation)
	{
		id result = invokeObjcSelf!(id, "initWithScrollView:orientation:", NSScrollView, uint)(scrollView, orientation);
		return result is this.objcObject ? this : (result !is null ? new NSRulerView(result) : null);
	}

	this (NSScrollView scrollView, uint orientation)
	{
		super(NSRulerView.alloc.initWithScrollView(scrollView, orientation).objcObject);
	}

	void setScrollView (NSScrollView scrollView)
	{
		return invokeObjcSelf!(void, "setScrollView:", NSScrollView)(scrollView);
	}

	NSScrollView scrollView ()
	{
		return invokeObjcSelf!(NSScrollView, "scrollView");
	}

	void setOrientation (uint orientation)
	{
		return invokeObjcSelf!(void, "setOrientation:", uint)(orientation);
	}

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

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

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

	void setRuleThickness (CGFloat thickness)
	{
		return invokeObjcSelf!(void, "setRuleThickness:", CGFloat)(thickness);
	}

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

	void setReservedThicknessForMarkers (CGFloat thickness)
	{
		return invokeObjcSelf!(void, "setReservedThicknessForMarkers:", CGFloat)(thickness);
	}

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

	void setReservedThicknessForAccessoryView (CGFloat thickness)
	{
		return invokeObjcSelf!(void, "setReservedThicknessForAccessoryView:", CGFloat)(thickness);
	}

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

	void setMeasurementUnits (NSString unitName)
	{
		return invokeObjcSelf!(void, "setMeasurementUnits:", NSString)(unitName);
	}

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

	void setOriginOffset (CGFloat offset)
	{
		return invokeObjcSelf!(void, "setOriginOffset:", CGFloat)(offset);
	}

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

	void setClientView (NSView client)
	{
		return invokeObjcSelf!(void, "setClientView:", NSView)(client);
	}

	NSView clientView ()
	{
		return invokeObjcSelf!(NSView, "clientView");
	}

	void setMarkers (NSArray markers)
	{
		return invokeObjcSelf!(void, "setMarkers:", NSArray)(markers);
	}

	void addMarker (NSRulerMarker marker)
	{
		return invokeObjcSelf!(void, "addMarker:", NSRulerMarker)(marker);
	}

	void removeMarker (NSRulerMarker marker)
	{
		return invokeObjcSelf!(void, "removeMarker:", NSRulerMarker)(marker);
	}

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

	bool trackMarker (NSRulerMarker marker, NSEvent event)
	{
		return invokeObjcSelf!(bool, "trackMarker:withMouseEvent:", NSRulerMarker, NSEvent)(marker, event);
	}

	void setAccessoryView (NSView accessory)
	{
		return invokeObjcSelf!(void, "setAccessoryView:", NSView)(accessory);
	}

	NSView accessoryView ()
	{
		return invokeObjcSelf!(NSView, "accessoryView");
	}

	void moveRulerlineFromLocation (CGFloat oldLocation, CGFloat newLocation)
	{
		return invokeObjcSelf!(void, "moveRulerlineFromLocation:toLocation:", CGFloat, CGFloat)(oldLocation, newLocation);
	}

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

	void drawHashMarksAndLabelsInRect (NSRect rect)
	{
		return invokeObjcSelf!(void, "drawHashMarksAndLabelsInRect:", NSRect)(rect);
	}

	void drawMarkersInRect (NSRect rect)
	{
		return invokeObjcSelf!(void, "drawMarkersInRect:", NSRect)(rect);
	}

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

const TNSRulerMarkerClientViewDelegation = `

	bool rulerView_shouldMoveMarker (NSRulerView ruler, NSRulerMarker marker)
	{
		return invokeObjcSelf!(bool, "rulerView:shouldMoveMarker:", NSRulerView, NSRulerMarker)(ruler, marker);
	}	
				
	CGFloat rulerView (NSRulerView ruler, NSRulerMarker marker, CGFloat location)
	{
		return invokeObjcSelf!(CGFloat, "rulerView:willMoveMarker:toLocation:", NSRulerView, NSRulerMarker, CGFloat)(ruler, marker, location);
	}

	void rulerView (NSRulerView ruler, NSRulerMarker marker)
	{
		return invokeObjcSelf!(void, "rulerView:didMoveMarker:", NSRulerView, NSRulerMarker)(ruler, marker);
	}
			
	void rulerView_shouldRemoveMarker (NSRulerView ruler, NSRulerMarker marker)
	{
		return invokeObjcSelf!(void, "rulerView:shouldRemoveMarker:", NSRulerView, NSRulerMarker)(ruler, marker);
	}			
	
	void rulerView_didRemoveMarker (NSRulerView ruler, NSRulerMarker marker)
	{
		return invokeObjcSelf!(void, "rulerView:didRemoveMarker:", NSRulerView, NSRulerMarker)(ruler, marker);
	}
			
	bool rulerView_shouldAddMarker (NSRulerView ruler, NSRulerMarker marker)
	{
		return invokeObjcSelf!(bool, "rulerView:shouldAddMarker:", NSRulerView, NSRulerMarker)(ruler, marker);
	}
			
	CGFloat rulerView_willAddMarker_atLocation (NSRulerView ruler, NSRulerMarker marker, CGFloat location)
	{
		return invokeObjcSelf!(CGFloat, "rulerView:willAddMarker:atLocation:", NSRulerView, NSRulerMarker, CGFloat)(ruler, marker, location);
	}					
	
	void rulerView_didAddMarker (NSRulerView ruler, NSRulerMarker marker)
	{
		return invokeObjcSelf!(void, "rulerView:didAddMarker:", NSRulerView, NSRulerMarker)(ruler, marker);
	}
			
	void rulerView (NSRulerView ruler, NSEvent event)
	{
		return invokeObjcSelf!(void, "rulerView:handleMouseDown:", NSRulerView, NSEvent)(ruler, event);
	}			
	
	CGFloat rulerView (NSRulerView ruler, NSView newClient)
	{
		return invokeObjcSelf!(CGFloat, "rulerView:willSetClientView:", NSRulerView, NSView)(ruler, newClient);
	}

	//mixin ObjcBindMethod!(rulerView_shouldMoveMarker, "rulerView:shouldMoveMarker:");
	//mixin ObjcBindMethod!(rulerView, CGFloat, "rulerView:willMoveMarker:toLocation:", NSRulerView, NSRulerMarker, CGFloat);
	//mixin ObjcBindMethod!(rulerView, void, "rulerView:didMoveMarker:", NSRulerView, NSRulerMarker);
	//mixin ObjcBindMethod!(rulerView_shouldRemoveMarker, "rulerView:shouldRemoveMarker:");
	//mixin ObjcBindMethod!(rulerView_didRemoveMarker, "rulerView:didRemoveMarker:");
	//mixin ObjcBindMethod!(rulerView_shouldAddMarker, "rulerView:shouldAddMarker:");
	//mixin ObjcBindMethod!(rulerView_willAddMarker_atLocation, "rulerView:willAddMarker:atLocation:");
	//mixin ObjcBindMethod!(rulerView_didAddMarker, "rulerView:didAddMarker:");
	//mixin ObjcBindMethod!(rulerView, void, "rulerView:handleMouseDown:", NSRulerView, NSEvent);
	//mixin ObjcBindMethod!(rulerView, CGFloat, "rulerView:willSetClientView:", NSRulerView, NSView);

`;