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

import dstep.appkit.NSClipView;
import dstep.appkit.NSColor;
import dstep.appkit.NSCursor;
import dstep.appkit.NSEvent;
import dstep.appkit.NSRulerView;
import dstep.appkit.NSScroller;
import dstep.appkit.NSView;
import dstep.applicationservices.coregraphics.CGBase;
import dstep.foundation.NSDate;
import dstep.foundation.NSGeometry;
import dstep.objc.bridge.Bridge;
import dstep.objc.objc;

struct _SFlags
{
	uint RESERVED;
	uint autoforwardsScrollWheelEvents;
	uint autohidesScrollers;
	uint hasCustomLineBorderColor;
	uint focusRingNeedsRedisplay;
	uint skipRemoveSuperviewCheck;
	uint doesNotDrawBackground;
	uint needsTile;
	uint hasVerticalRuler;
	uint hasHorizontalRuler;
	uint showRulers;
	uint oldRulerInstalled;
	uint borderType;
	uint noDynamicScrolling;
	uint hScrollerStatus;
	uint vScrollerStatus;
	uint hScrollerRequired;
	uint vScrollerRequired;
}

const TNSRulerSupport = `

	static void setRulerViewClass (Class rulerViewClass)
	{
		return invokeObjcSelfClass!(void, "setRulerViewClass:", Class)(rulerViewClass);
	}

	static Class rulerViewClass ()
	{
		return invokeObjcSelfClass!(Class, "rulerViewClass");
	}

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

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

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

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

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

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

	void setHorizontalRulerView (NSRulerView ruler)
	{
		return invokeObjcSelf!(void, "setHorizontalRulerView:", NSRulerView)(ruler);
	}

	NSRulerView horizontalRulerView ()
	{
		return invokeObjcSelf!(NSRulerView, "horizontalRulerView");
	}

	void setVerticalRulerView (NSRulerView ruler)
	{
		return invokeObjcSelf!(void, "setVerticalRulerView:", NSRulerView)(ruler);
	}

	NSRulerView verticalRulerView ()
	{
		return invokeObjcSelf!(NSRulerView, "verticalRulerView");
	}

	//mixin ObjcBindClassMethod!(setRulerViewClass, "setRulerViewClass:");
	//mixin ObjcBindClassMethod!(rulerViewClass, "rulerViewClass");
	//mixin ObjcBindMethod!(setRulersVisible, "setRulersVisible:");
	//mixin ObjcBindMethod!(rulersVisible, "rulersVisible");
	//mixin ObjcBindMethod!(setHasHorizontalRuler, "setHasHorizontalRuler:");
	//mixin ObjcBindMethod!(hasHorizontalRuler, "hasHorizontalRuler");
	//mixin ObjcBindMethod!(setHasVerticalRuler, "setHasVerticalRuler:");
	//mixin ObjcBindMethod!(hasVerticalRuler, "hasVerticalRuler");
	//mixin ObjcBindMethod!(setHorizontalRulerView, "setHorizontalRulerView:");
	//mixin ObjcBindMethod!(horizontalRulerView, "horizontalRulerView");
	//mixin ObjcBindMethod!(setVerticalRulerView, "setVerticalRulerView:");
	//mixin ObjcBindMethod!(verticalRulerView, "verticalRulerView");

`;

class NSScrollView : NSView
{
	mixin (ObjcWrap);

	static NSSize frameSizeForContentSize (NSSize cSize, bool hFlag, bool vFlag, uint aType)
	{
		return invokeObjcSelfClass!(NSSize, "frameSizeForContentSize:hasHorizontalScroller:hasVerticalScroller:borderType:", NSSize, bool, bool, uint)(cSize, hFlag, vFlag, aType);
	}

	static NSSize contentSizeForFrameSize (NSSize fSize, bool hFlag, bool vFlag, uint aType)
	{
		return invokeObjcSelfClass!(NSSize, "contentSizeForFrameSize:hasHorizontalScroller:hasVerticalScroller:borderType:", NSSize, bool, bool, uint)(fSize, hFlag, vFlag, aType);
	}

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

	NSSize contentSize ()
	{
		return invokeObjcSelf!(NSSize, "contentSize");
	}

	void setDocumentView (NSView aView)
	{
		return invokeObjcSelf!(void, "setDocumentView:", NSView)(aView);
	}

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

	void setContentView (NSClipView contentView)
	{
		return invokeObjcSelf!(void, "setContentView:", NSClipView)(contentView);
	}

	NSClipView contentView ()
	{
		return invokeObjcSelf!(NSClipView, "contentView");
	}

	void setDocumentCursor (NSCursor anObj)
	{
		return invokeObjcSelf!(void, "setDocumentCursor:", NSCursor)(anObj);
	}

	NSCursor documentCursor ()
	{
		return invokeObjcSelf!(NSCursor, "documentCursor");
	}

	void setBorderType (uint aType)
	{
		return invokeObjcSelf!(void, "setBorderType:", uint)(aType);
	}

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

	void setBackgroundColor (NSColor color)
	{
		return invokeObjcSelf!(void, "setBackgroundColor:", NSColor)(color);
	}

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

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

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

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

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

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

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

	void setVerticalScroller (NSScroller anObject)
	{
		return invokeObjcSelf!(void, "setVerticalScroller:", NSScroller)(anObject);
	}

	NSScroller verticalScroller ()
	{
		return invokeObjcSelf!(NSScroller, "verticalScroller");
	}

	void setHorizontalScroller (NSScroller anObject)
	{
		return invokeObjcSelf!(void, "setHorizontalScroller:", NSScroller)(anObject);
	}

	NSScroller horizontalScroller ()
	{
		return invokeObjcSelf!(NSScroller, "horizontalScroller");
	}

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

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

	void setHorizontalLineScroll (CGFloat value)
	{
		return invokeObjcSelf!(void, "setHorizontalLineScroll:", CGFloat)(value);
	}

	void setVerticalLineScroll (CGFloat value)
	{
		return invokeObjcSelf!(void, "setVerticalLineScroll:", CGFloat)(value);
	}

	void setLineScroll (CGFloat value)
	{
		return invokeObjcSelf!(void, "setLineScroll:", CGFloat)(value);
	}

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

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

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

	void setHorizontalPageScroll (CGFloat value)
	{
		return invokeObjcSelf!(void, "setHorizontalPageScroll:", CGFloat)(value);
	}

	void setVerticalPageScroll (CGFloat value)
	{
		return invokeObjcSelf!(void, "setVerticalPageScroll:", CGFloat)(value);
	}

	void setPageScroll (CGFloat value)
	{
		return invokeObjcSelf!(void, "setPageScroll:", CGFloat)(value);
	}

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

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

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

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

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

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

	void reflectScrolledClipView (NSClipView cView)
	{
		return invokeObjcSelf!(void, "reflectScrolledClipView:", NSClipView)(cView);
	}

	void scrollWheel (NSEvent theEvent)
	{
		return invokeObjcSelf!(void, "scrollWheel:", NSEvent)(theEvent);
	}
	
	// NSRulerSupport
	static void setRulerViewClass (Class rulerViewClass)
	{
		return invokeObjcSelfClass!(void, "setRulerViewClass:", Class)(rulerViewClass);
	}

	static Class rulerViewClass ()
	{
		return invokeObjcSelfClass!(Class, "rulerViewClass");
	}

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

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

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

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

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

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

	void setHorizontalRulerView (NSRulerView ruler)
	{
		return invokeObjcSelf!(void, "setHorizontalRulerView:", NSRulerView)(ruler);
	}

	NSRulerView horizontalRulerView ()
	{
		return invokeObjcSelf!(NSRulerView, "horizontalRulerView");
	}

	void setVerticalRulerView (NSRulerView ruler)
	{
		return invokeObjcSelf!(void, "setVerticalRulerView:", NSRulerView)(ruler);
	}

	NSRulerView verticalRulerView ()
	{
		return invokeObjcSelf!(NSRulerView, "verticalRulerView");
	}
}