Mercurial > projects > dstep
view dstep/appkit/NSSplitView.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.NSSplitView; import dstep.appkit.NSColor; import dstep.appkit.NSView; import dstep.applicationservices.coregraphics.CGBase; import dstep.foundation.NSGeometry; import dstep.foundation.NSNotification; import dstep.foundation.NSObjCRuntime; import dstep.foundation.NSString; import dstep.objc.bridge.Bridge; import dstep.objc.objc; import bindings = dstep.appkit.NSSplitView_bindings; alias NSInteger NSSplitViewDividerStyle; private { NSString NSSplitViewWillResizeSubviewsNotification_; NSString NSSplitViewDidResizeSubviewsNotification_; } NSString NSSplitViewWillResizeSubviewsNotification () { if (NSSplitViewWillResizeSubviewsNotification_) return NSSplitViewWillResizeSubviewsNotification_; return NSSplitViewWillResizeSubviewsNotification_ = new NSString(bindings.NSSplitViewWillResizeSubviewsNotification); } NSString NSSplitViewDidResizeSubviewsNotification () { if (NSSplitViewDidResizeSubviewsNotification_) return NSSplitViewDidResizeSubviewsNotification_; return NSSplitViewDidResizeSubviewsNotification_ = new NSString(bindings.NSSplitViewDidResizeSubviewsNotification); } enum { NSSplitViewDividerStyleThick = 1, NSSplitViewDividerStyleThin } class NSSplitView : NSView { mixin (ObjcWrap); void setVertical (bool flag) { return invokeObjcSelf!(void, "setVertical:", bool)(flag); } bool isVertical () { return invokeObjcSelf!(bool, "isVertical"); } void setDividerStyle (int dividerStyle) { return invokeObjcSelf!(void, "setDividerStyle:", int)(dividerStyle); } int dividerStyle () { return invokeObjcSelf!(int, "dividerStyle"); } void setAutosaveName (NSString autosaveName) { return invokeObjcSelf!(void, "setAutosaveName:", NSString)(autosaveName); } NSString autosaveName () { return invokeObjcSelf!(NSString, "autosaveName"); } void setDelegate (Object delegate_) { return invokeObjcSelf!(void, "setDelegate:", Object)(delegate_); } Object delegate_ () { return invokeObjcSelf!(Object, "delegate"); } void drawDividerInRect (NSRect rect) { return invokeObjcSelf!(void, "drawDividerInRect:", NSRect)(rect); } NSColor dividerColor () { return invokeObjcSelf!(NSColor, "dividerColor"); } CGFloat dividerThickness () { return invokeObjcSelf!(CGFloat, "dividerThickness"); } void adjustSubviews () { return invokeObjcSelf!(void, "adjustSubviews"); } bool isSubviewCollapsed (NSView subview) { return invokeObjcSelf!(bool, "isSubviewCollapsed:", NSView)(subview); } CGFloat minPossiblePositionOfDividerAtIndex (NSInteger dividerIndex) { return invokeObjcSelf!(CGFloat, "minPossiblePositionOfDividerAtIndex:", NSInteger)(dividerIndex); } CGFloat maxPossiblePositionOfDividerAtIndex (NSInteger dividerIndex) { return invokeObjcSelf!(CGFloat, "maxPossiblePositionOfDividerAtIndex:", NSInteger)(dividerIndex); } void setPosition (CGFloat position, NSInteger dividerIndex) { return invokeObjcSelf!(void, "setPosition:ofDividerAtIndex:", CGFloat, NSInteger)(position, dividerIndex); } void setIsPaneSplitter (bool flag) { return invokeObjcSelf!(void, "setIsPaneSplitter:", bool)(flag); } bool isPaneSplitter () { return invokeObjcSelf!(bool, "isPaneSplitter"); } } const TNSSplitViewDelegate = ` bool splitView (NSSplitView splitView, NSView subview) { return invokeObjcSelf!(bool, "splitView:canCollapseSubview:", NSSplitView, NSView)(splitView, subview); } bool splitView (NSSplitView splitView, NSView subview, NSInteger dividerIndex) { return invokeObjcSelf!(bool, "splitView:shouldCollapseSubview:forDoubleClickOnDividerAtIndex:", NSSplitView, NSView, NSInteger)(splitView, subview, dividerIndex); } CGFloat splitView (NSSplitView splitView, CGFloat proposedMinimumPosition, NSInteger dividerIndex) { return invokeObjcSelf!(CGFloat, "splitView:constrainMinCoordinate:ofSubviewAt:", NSSplitView, CGFloat, NSInteger)(splitView, proposedMinimumPosition, dividerIndex); } CGFloat splitView (NSSplitView splitView, CGFloat proposedMaximumPosition, NSInteger dividerIndex) { return invokeObjcSelf!(CGFloat, "splitView:constrainMaxCoordinate:ofSubviewAt:", NSSplitView, CGFloat, NSInteger)(splitView, proposedMaximumPosition, dividerIndex); } CGFloat splitView (NSSplitView splitView, CGFloat proposedPosition, NSInteger dividerIndex) { return invokeObjcSelf!(CGFloat, "splitView:constrainSplitPosition:ofSubviewAt:", NSSplitView, CGFloat, NSInteger)(splitView, proposedPosition, dividerIndex); } void splitView (NSSplitView splitView, NSSize oldSize) { return invokeObjcSelf!(void, "splitView:resizeSubviewsWithOldSize:", NSSplitView, NSSize)(splitView, oldSize); } bool splitView (NSSplitView splitView, NSInteger dividerIndex) { return invokeObjcSelf!(bool, "splitView:shouldHideDividerAtIndex:", NSSplitView, NSInteger)(splitView, dividerIndex); } NSRect splitView (NSSplitView splitView, NSRect proposedEffectiveRect, NSRect drawnRect, NSInteger dividerIndex) { return invokeObjcSelf!(NSRect, "splitView:effectiveRect:forDrawnRect:ofDividerAtIndex:", NSSplitView, NSRect, NSRect, NSInteger)(splitView, proposedEffectiveRect, drawnRect, dividerIndex); } NSRect splitView (NSSplitView splitView, NSInteger dividerIndex) { return invokeObjcSelf!(NSRect, "splitView:additionalEffectiveRectOfDividerAtIndex:", NSSplitView, NSInteger)(splitView, dividerIndex); } void splitViewWillResizeSubviews (NSNotification notification) { return invokeObjcSelf!(void, "splitViewWillResizeSubviews:", NSNotification)(notification); } void splitViewDidResizeSubviews (NSNotification notification) { return invokeObjcSelf!(void, "splitViewDidResizeSubviews:", NSNotification)(notification); } //mixin ObjcBindMethod!(splitView, "splitView:canCollapseSubview:"); //mixin ObjcBindMethod!(splitView, "splitView:shouldCollapseSubview:forDoubleClickOnDividerAtIndex:"); //mixin ObjcBindMethod!(splitView, "splitView:constrainMinCoordinate:ofSubviewAt:"); //mixin ObjcBindMethod!(splitView, "splitView:constrainMaxCoordinate:ofSubviewAt:"); //mixin ObjcBindMethod!(splitView, "splitView:constrainSplitPosition:ofSubviewAt:"); //mixin ObjcBindMethod!(splitView, "splitView:resizeSubviewsWithOldSize:"); //mixin ObjcBindMethod!(splitView, "splitView:shouldHideDividerAtIndex:"); //mixin ObjcBindMethod!(splitView, "splitView:effectiveRect:forDrawnRect:ofDividerAtIndex:"); //mixin ObjcBindMethod!(splitView, "splitView:additionalEffectiveRectOfDividerAtIndex:"); //mixin ObjcBindMethod!(splitViewWillResizeSubviews, "splitViewWillResizeSubviews:"); //mixin ObjcBindMethod!(splitViewDidResizeSubviews, "splitViewDidResizeSubviews:"); `;