Mercurial > projects > dstep
view dstep/appkit/NSDrawer.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.NSDrawer; import dstep.appkit.AppKitDefines; import dstep.appkit.NSResponder; import dstep.appkit.NSView; import dstep.appkit.NSWindow; import dstep.applicationservices.coregraphics.CGBase; import dstep.corefoundation.CFDate; import dstep.corefoundation.CFRunLoop; import dstep.foundation.NSArray; import dstep.foundation.NSGeometry; import dstep.foundation.NSLock; import dstep.foundation.NSNotification; import dstep.foundation.NSObjCRuntime; import dstep.foundation.NSObject; import dstep.foundation.NSString; import dstep.objc.bridge.Bridge; import dstep.objc.objc; import bindings = dstep.appkit.NSDrawer_bindings; alias NSUInteger NSDrawerState; private { NSString NSDrawerWillOpenNotification_; NSString NSDrawerDidOpenNotification_; NSString NSDrawerWillCloseNotification_; NSString NSDrawerDidCloseNotification_; } NSString NSDrawerWillOpenNotification () { if (NSDrawerWillOpenNotification_) return NSDrawerWillOpenNotification_; return NSDrawerWillOpenNotification_ = new NSString(bindings.NSDrawerWillOpenNotification); } NSString NSDrawerDidOpenNotification () { if (NSDrawerDidOpenNotification_) return NSDrawerDidOpenNotification_; return NSDrawerDidOpenNotification_ = new NSString(bindings.NSDrawerDidOpenNotification); } NSString NSDrawerWillCloseNotification () { if (NSDrawerWillCloseNotification_) return NSDrawerWillCloseNotification_; return NSDrawerWillCloseNotification_ = new NSString(bindings.NSDrawerWillCloseNotification); } NSString NSDrawerDidCloseNotification () { if (NSDrawerDidCloseNotification_) return NSDrawerDidCloseNotification_; return NSDrawerDidCloseNotification_ = new NSString(bindings.NSDrawerDidCloseNotification); } enum { NSDrawerClosedState = 0, NSDrawerOpeningState = 1, NSDrawerOpenState = 2, NSDrawerClosingState = 3 } class NSDrawer : NSResponder { mixin (ObjcWrap); NSDrawer initWithContentSize (NSSize contentSize, int edge) { id result = invokeObjcSelf!(id, "initWithContentSize:preferredEdge:", NSSize, int)(contentSize, edge); return result is this.objcObject ? this : (result !is null ? new NSDrawer(result) : null); } this (NSSize contentSize, int edge) { super(NSDrawer.alloc.initWithContentSize(contentSize, edge).objcObject); } void setParentWindow (NSWindow parent) { return invokeObjcSelf!(void, "setParentWindow:", NSWindow)(parent); } NSWindow parentWindow () { return invokeObjcSelf!(NSWindow, "parentWindow"); } void setContentView (NSView aView) { return invokeObjcSelf!(void, "setContentView:", NSView)(aView); } NSView contentView () { return invokeObjcSelf!(NSView, "contentView"); } void setPreferredEdge (int edge) { return invokeObjcSelf!(void, "setPreferredEdge:", int)(edge); } int preferredEdge () { return invokeObjcSelf!(int, "preferredEdge"); } void setDelegate (Object anObject) { return invokeObjcSelf!(void, "setDelegate:", Object)(anObject); } Object delegate_ () { return invokeObjcSelf!(Object, "delegate"); } void open () { return invokeObjcSelf!(void, "open"); } void openOnEdge (int edge) { return invokeObjcSelf!(void, "openOnEdge:", int)(edge); } void close () { return invokeObjcSelf!(void, "close"); } void open (Object sender) { return invokeObjcSelf!(void, "open:", Object)(sender); } void close (Object sender) { return invokeObjcSelf!(void, "close:", Object)(sender); } void toggle (Object sender) { return invokeObjcSelf!(void, "toggle:", Object)(sender); } NSInteger state () { return invokeObjcSelf!(NSInteger, "state"); } int edge () { return invokeObjcSelf!(int, "edge"); } void setContentSize (NSSize size) { return invokeObjcSelf!(void, "setContentSize:", NSSize)(size); } NSSize contentSize () { return invokeObjcSelf!(NSSize, "contentSize"); } void setMinContentSize (NSSize size) { return invokeObjcSelf!(void, "setMinContentSize:", NSSize)(size); } NSSize minContentSize () { return invokeObjcSelf!(NSSize, "minContentSize"); } void setMaxContentSize (NSSize size) { return invokeObjcSelf!(void, "setMaxContentSize:", NSSize)(size); } NSSize maxContentSize () { return invokeObjcSelf!(NSSize, "maxContentSize"); } void setLeadingOffset (CGFloat offset) { return invokeObjcSelf!(void, "setLeadingOffset:", CGFloat)(offset); } CGFloat leadingOffset () { return invokeObjcSelf!(CGFloat, "leadingOffset"); } void setTrailingOffset (CGFloat offset) { return invokeObjcSelf!(void, "setTrailingOffset:", CGFloat)(offset); } CGFloat trailingOffset () { return invokeObjcSelf!(CGFloat, "trailingOffset"); } } const TDrawers = ` NSArray drawers () { return invokeObjcSelf!(NSArray, "drawers"); } //mixin ObjcBindMethod!(drawers, "drawers"); `; const TNSDrawerDelegate = ` bool drawerShouldOpen (NSDrawer sender) { return invokeObjcSelf!(bool, "drawerShouldOpen:", NSDrawer)(sender); } bool drawerShouldClose (NSDrawer sender) { return invokeObjcSelf!(bool, "drawerShouldClose:", NSDrawer)(sender); } NSSize drawerWillResizeContents (NSDrawer sender, NSSize contentSize) { return invokeObjcSelf!(NSSize, "drawerWillResizeContents:toSize:", NSDrawer, NSSize)(sender, contentSize); } //mixin ObjcBindMethod!(drawerShouldOpen, "drawerShouldOpen:"); //mixin ObjcBindMethod!(drawerShouldClose, "drawerShouldClose:"); //mixin ObjcBindMethod!(drawerWillResizeContents, "drawerWillResizeContents:toSize:"); `; const TNSDrawerNotifications = ` void drawerWillOpen (NSNotification notification) { return invokeObjcSelf!(void, "drawerWillOpen:", NSNotification)(notification); } void drawerDidOpen (NSNotification notification) { return invokeObjcSelf!(void, "drawerDidOpen:", NSNotification)(notification); } void drawerWillClose (NSNotification notification) { return invokeObjcSelf!(void, "drawerWillClose:", NSNotification)(notification); } void drawerDidClose (NSNotification notification) { return invokeObjcSelf!(void, "drawerDidClose:", NSNotification)(notification); } //mixin ObjcBindMethod!(drawerWillOpen, "drawerWillOpen:"); //mixin ObjcBindMethod!(drawerDidOpen, "drawerDidOpen:"); //mixin ObjcBindMethod!(drawerWillClose, "drawerWillClose:"); //mixin ObjcBindMethod!(drawerDidClose, "drawerDidClose:"); `;