Mercurial > projects > dstep
diff 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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dstep/appkit/NSScrollView.d Sun Jan 03 22:06:11 2010 +0100 @@ -0,0 +1,400 @@ +/** + * 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"); + } +} \ No newline at end of file