Mercurial > projects > dstep
view dstep/appkit/NSControl.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.NSControl; import dstep.appkit.NSCell; import dstep.appkit.NSEvent; import dstep.appkit.NSFont; import dstep.appkit.NSText; import dstep.appkit.NSTextView; import dstep.appkit.NSView; import dstep.foundation.NSAttributedString; import dstep.foundation.NSFormatter; import dstep.foundation.NSGeometry; import dstep.foundation.NSObjCRuntime; import dstep.foundation.NSObject; import dstep.foundation.NSNotification; import dstep.foundation.NSString; import dstep.objc.bridge.Bridge; import dstep.objc.objc; import bindings = dstep.appkit.NSControl_bindings; private { NSString NSControlTextDidBeginEditingNotification_; NSString NSControlTextDidEndEditingNotification_; NSString NSControlTextDidChangeNotification_; } NSString NSControlTextDidBeginEditingNotification () { if (NSControlTextDidBeginEditingNotification_) return NSControlTextDidBeginEditingNotification_; return NSControlTextDidBeginEditingNotification_ = new NSString(bindings.NSControlTextDidBeginEditingNotification); } NSString NSControlTextDidEndEditingNotification () { if (NSControlTextDidEndEditingNotification_) return NSControlTextDidEndEditingNotification_; return NSControlTextDidEndEditingNotification_ = new NSString(bindings.NSControlTextDidEndEditingNotification); } NSString NSControlTextDidChangeNotification () { if (NSControlTextDidChangeNotification_) return NSControlTextDidChangeNotification_; return NSControlTextDidChangeNotification_ = new NSString(bindings.NSControlTextDidChangeNotification); } const TNSControlSubclassNotifications = ` void controlTextDidBeginEditing (NSNotification obj) { return invokeObjcSelf!(void, "controlTextDidBeginEditing:", NSNotification)(obj); } void controlTextDidEndEditing (NSNotification obj) { return invokeObjcSelf!(void, "controlTextDidEndEditing:", NSNotification)(obj); } void controlTextDidChange (NSNotification obj) { return invokeObjcSelf!(void, "controlTextDidChange:", NSNotification)(obj); } //mixin ObjcBindMethod!(controlTextDidBeginEditing, "controlTextDidBeginEditing:"); //mixin ObjcBindMethod!(controlTextDidEndEditing, "controlTextDidEndEditing:"); //mixin ObjcBindMethod!(controlTextDidChange, "controlTextDidChange:"); `; const TNSControlAttributedStringMethods = ` NSAttributedString attributedStringValue () { return invokeObjcSelf!(NSAttributedString, "attributedStringValue"); } void setAttributedStringValue (NSAttributedString obj) { return invokeObjcSelf!(void, "setAttributedStringValue:", NSAttributedString)(obj); } //mixin ObjcBindMethod!(attributedStringValue, "attributedStringValue"); //mixin ObjcBindMethod!(setAttributedStringValue, "setAttributedStringValue:"); `; const TNSControlSubclassDelegate = ` bool control (NSControl control, NSText fieldEditor) { return invokeObjcSelf!(bool, "control:textShouldBeginEditing:", NSControl, NSText)(control, fieldEditor); } bool control (NSControl control, NSText fieldEditor) { return invokeObjcSelf!(bool, "control:textShouldEndEditing:", NSControl, NSText)(control, fieldEditor); } bool control (NSControl control, NSString string, NSString error) { return invokeObjcSelf!(bool, "control:didFailToFormatString:errorDescription:", NSControl, NSString, NSString)(control, string, error); } void control (NSControl control, NSString string, NSString error) { return invokeObjcSelf!(void, "control:didFailToValidatePartialString:errorDescription:", NSControl, NSString, NSString)(control, string, error); } bool control (NSControl control, Object obj) { return invokeObjcSelf!(bool, "control:isValidObject:", NSControl, Object)(control, obj); } bool control (NSControl control, NSTextView textView, SEL commandSelector) { return invokeObjcSelf!(bool, "control:textView:doCommandBySelector:", NSControl, NSTextView, SEL)(control, textView, commandSelector); } NSArray control (NSControl control, NSTextView textView, NSArray words, NSRange charRange, NSInteger* index) { return invokeObjcSelf!(NSArray, "control:textView:completions:forPartialWordRange:indexOfSelectedItem:", NSControl, NSTextView, NSArray, NSRange, NSInteger*)(control, textView, words, charRange, index); } //mixin ObjcBindMethod!(control, "control:textShouldBeginEditing:"); //mixin ObjcBindMethod!(control, "control:textShouldEndEditing:"); //mixin ObjcBindMethod!(control, "control:didFailToFormatString:errorDescription:"); //mixin ObjcBindMethod!(control, "control:didFailToValidatePartialString:errorDescription:"); //mixin ObjcBindMethod!(control, "control:isValidObject:"); //mixin ObjcBindMethod!(control, "control:textView:doCommandBySelector:"); //mixin ObjcBindMethod!(control, "control:textView:completions:forPartialWordRange:indexOfSelectedItem:"); `; class NSControl : NSView { mixin (ObjcWrap); static void setCellClass (Class factoryId) { return invokeObjcSelfClass!(void, "setCellClass:", Class)(factoryId); } static Class cellClass () { return invokeObjcSelfClass!(Class, "cellClass"); } NSControl initWithFrame (NSRect frameRect) { id result = invokeObjcSelf!(id, "initWithFrame:", NSRect)(frameRect); return result is this.objcObject ? this : (result !is null ? new NSControl(result) : null); } this (NSRect frameRect) { super(NSControl.alloc.initWithFrame(frameRect).objcObject); } void sizeToFit () { return invokeObjcSelf!(void, "sizeToFit"); } void calcSize () { return invokeObjcSelf!(void, "calcSize"); } Object cell () { return invokeObjcSelf!(Object, "cell"); } void setCell (NSCell aCell) { return invokeObjcSelf!(void, "setCell:", NSCell)(aCell); } Object selectedCell () { return invokeObjcSelf!(Object, "selectedCell"); } Object target () { return invokeObjcSelf!(Object, "target"); } void setTarget (Object anObject) { return invokeObjcSelf!(void, "setTarget:", Object)(anObject); } SEL action () { return invokeObjcSelf!(SEL, "action"); } void setAction (SEL aSelector) { return invokeObjcSelf!(void, "setAction:", SEL)(aSelector); } NSInteger tag () { return invokeObjcSelf!(NSInteger, "tag"); } void setTag (NSInteger anInt) { return invokeObjcSelf!(void, "setTag:", NSInteger)(anInt); } NSInteger selectedTag () { return invokeObjcSelf!(NSInteger, "selectedTag"); } void setIgnoresMultiClick (bool flag) { return invokeObjcSelf!(void, "setIgnoresMultiClick:", bool)(flag); } bool ignoresMultiClick () { return invokeObjcSelf!(bool, "ignoresMultiClick"); } NSInteger sendActionOn (NSInteger mask) { return invokeObjcSelf!(NSInteger, "sendActionOn:", NSInteger)(mask); } bool isContinuous () { return invokeObjcSelf!(bool, "isContinuous"); } void setContinuous (bool flag) { return invokeObjcSelf!(void, "setContinuous:", bool)(flag); } bool isEnabled () { return invokeObjcSelf!(bool, "isEnabled"); } void setEnabled (bool flag) { return invokeObjcSelf!(void, "setEnabled:", bool)(flag); } void setFloatingPointFormat (bool autoRange, NSUInteger leftDigits, NSUInteger rightDigits) { return invokeObjcSelf!(void, "setFloatingPointFormat:left:right:", bool, NSUInteger, NSUInteger)(autoRange, leftDigits, rightDigits); } uint alignment () { return invokeObjcSelf!(uint, "alignment"); } void setAlignment (uint mode) { return invokeObjcSelf!(void, "setAlignment:", uint)(mode); } NSFont font () { return invokeObjcSelf!(NSFont, "font"); } void setFont (NSFont fontObj) { return invokeObjcSelf!(void, "setFont:", NSFont)(fontObj); } void setFormatter (NSFormatter newFormatter) { return invokeObjcSelf!(void, "setFormatter:", NSFormatter)(newFormatter); } Object formatter () { return invokeObjcSelf!(Object, "formatter"); } void setObjectValue (INSCopying obj) { return invokeObjcSelf!(void, "setObjectValue:", INSCopying)(obj); } void setStringValue (NSString aString) { return invokeObjcSelf!(void, "setStringValue:", NSString)(aString); } void setIntValue (int anInt) { return invokeObjcSelf!(void, "setIntValue:", int)(anInt); } void setFloatValue (float aFloat) { return invokeObjcSelf!(void, "setFloatValue:", float)(aFloat); } void setDoubleValue (double aDouble) { return invokeObjcSelf!(void, "setDoubleValue:", double)(aDouble); } Object objectValue () { return invokeObjcSelf!(Object, "objectValue"); } NSString stringValue () { return invokeObjcSelf!(NSString, "stringValue"); } int intValue () { return invokeObjcSelf!(int, "intValue"); } float floatValue () { return invokeObjcSelf!(float, "floatValue"); } double doubleValue () { return invokeObjcSelf!(double, "doubleValue"); } void setNeedsDisplay () { return invokeObjcSelf!(void, "setNeedsDisplay"); } void updateCell (NSCell aCell) { return invokeObjcSelf!(void, "updateCell:", NSCell)(aCell); } void updateCellInside (NSCell aCell) { return invokeObjcSelf!(void, "updateCellInside:", NSCell)(aCell); } void drawCellInside (NSCell aCell) { return invokeObjcSelf!(void, "drawCellInside:", NSCell)(aCell); } void drawCell (NSCell aCell) { return invokeObjcSelf!(void, "drawCell:", NSCell)(aCell); } void selectCell (NSCell aCell) { return invokeObjcSelf!(void, "selectCell:", NSCell)(aCell); } bool sendAction (SEL theAction, Object theTarget) { return invokeObjcSelf!(bool, "sendAction:to:", SEL, Object)(theAction, theTarget); } void takeIntValueFrom (Object sender) { return invokeObjcSelf!(void, "takeIntValueFrom:", Object)(sender); } void takeFloatValueFrom (Object sender) { return invokeObjcSelf!(void, "takeFloatValueFrom:", Object)(sender); } void takeDoubleValueFrom (Object sender) { return invokeObjcSelf!(void, "takeDoubleValueFrom:", Object)(sender); } void takeStringValueFrom (Object sender) { return invokeObjcSelf!(void, "takeStringValueFrom:", Object)(sender); } void takeObjectValueFrom (Object sender) { return invokeObjcSelf!(void, "takeObjectValueFrom:", Object)(sender); } NSText currentEditor () { return invokeObjcSelf!(NSText, "currentEditor"); } bool abortEditing () { return invokeObjcSelf!(bool, "abortEditing"); } void validateEditing () { return invokeObjcSelf!(void, "validateEditing"); } void mouseDown (NSEvent theEvent) { return invokeObjcSelf!(void, "mouseDown:", NSEvent)(theEvent); } int baseWritingDirection () { return invokeObjcSelf!(int, "baseWritingDirection"); } void setBaseWritingDirection (int writingDirection) { return invokeObjcSelf!(void, "setBaseWritingDirection:", int)(writingDirection); } NSInteger integerValue () { return invokeObjcSelf!(NSInteger, "integerValue"); } void setIntegerValue (NSInteger anInteger) { return invokeObjcSelf!(void, "setIntegerValue:", NSInteger)(anInteger); } void takeIntegerValueFrom (Object sender) { return invokeObjcSelf!(void, "takeIntegerValueFrom:", Object)(sender); } // NSControlAttributedStringMethods NSAttributedString attributedStringValue () { return invokeObjcSelf!(NSAttributedString, "attributedStringValue"); } void setAttributedStringValue (NSAttributedString obj) { return invokeObjcSelf!(void, "setAttributedStringValue:", NSAttributedString)(obj); } }