diff dstep/appkit/NSResponder.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/NSResponder.d	Sun Jan 03 22:06:11 2010 +0100
@@ -0,0 +1,1059 @@
+/**
+ * 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.NSResponder;
+
+import dstep.appkit.NSEvent;
+import dstep.appkit.NSInterfaceStyle;
+import dstep.appkit.NSMenu;
+import dstep.appkit.NSWindow;
+import dstep.foundation.NSArray;
+import dstep.foundation.NSCoder;
+import dstep.foundation.NSError;
+import dstep.foundation.NSObject;
+import dstep.foundation.NSString;
+import dstep.foundation.NSUndoManager;
+import dstep.objc.bridge.Bridge;
+import dstep.objc.objc;
+
+const TNSErrorPresentation = `
+
+	void presentError (NSError error, NSWindow window, Object delegate_, SEL didPresentSelector, void* contextInfo)
+	{
+		return invokeObjcSelf!(void, "presentError:modalForWindow:delegate:didPresentSelector:contextInfo:", NSError, NSWindow, Object, SEL, void*)(error, window, delegate_, didPresentSelector, contextInfo);
+	}
+
+	bool presentError (NSError error)
+	{
+		return invokeObjcSelf!(bool, "presentError:", NSError)(error);
+	}
+
+	NSError willPresentError (NSError error)
+	{
+		return invokeObjcSelf!(NSError, "willPresentError:", NSError)(error);
+	}
+
+	//mixin ObjcBindMethod!(presentError, "presentError:modalForWindow:delegate:didPresentSelector:contextInfo:");
+	//mixin ObjcBindMethod!(presentError, "presentError:");
+	//mixin ObjcBindMethod!(willPresentError, "willPresentError:");
+
+`;
+
+const TNSUndoSupport = `
+
+	NSUndoManager undoManager ()
+	{
+		return invokeObjcSelf!(NSUndoManager, "undoManager");
+	}
+
+	//mixin ObjcBindMethod!(undoManager, "undoManager");
+
+`;
+
+const TNSStandardKeyBindingMethods = `
+
+	void insertText (Object insertString)
+	{
+		return invokeObjcSelf!(void, "insertText:", Object)(insertString);
+	}
+
+	void doCommandBySelector (SEL aSelector)
+	{
+		return invokeObjcSelf!(void, "doCommandBySelector:", SEL)(aSelector);
+	}
+
+	void moveForward (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveForward:", Object)(sender);
+	}
+
+	void moveRight (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveRight:", Object)(sender);
+	}
+
+	void moveBackward (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveBackward:", Object)(sender);
+	}
+
+	void moveLeft (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveLeft:", Object)(sender);
+	}
+
+	void moveUp (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveUp:", Object)(sender);
+	}
+
+	void moveDown (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveDown:", Object)(sender);
+	}
+
+	void moveWordForward (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveWordForward:", Object)(sender);
+	}
+
+	void moveWordBackward (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveWordBackward:", Object)(sender);
+	}
+
+	void moveToBeginningOfLine (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveToBeginningOfLine:", Object)(sender);
+	}
+
+	void moveToEndOfLine (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveToEndOfLine:", Object)(sender);
+	}
+
+	void moveToBeginningOfParagraph (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveToBeginningOfParagraph:", Object)(sender);
+	}
+
+	void moveToEndOfParagraph (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveToEndOfParagraph:", Object)(sender);
+	}
+
+	void moveToEndOfDocument (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveToEndOfDocument:", Object)(sender);
+	}
+
+	void moveToBeginningOfDocument (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveToBeginningOfDocument:", Object)(sender);
+	}
+
+	void pageDown (Object sender)
+	{
+		return invokeObjcSelf!(void, "pageDown:", Object)(sender);
+	}
+
+	void pageUp (Object sender)
+	{
+		return invokeObjcSelf!(void, "pageUp:", Object)(sender);
+	}
+
+	void centerSelectionInVisibleArea (Object sender)
+	{
+		return invokeObjcSelf!(void, "centerSelectionInVisibleArea:", Object)(sender);
+	}
+
+	void moveBackwardAndModifySelection (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveBackwardAndModifySelection:", Object)(sender);
+	}
+
+	void moveForwardAndModifySelection (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveForwardAndModifySelection:", Object)(sender);
+	}
+
+	void moveWordForwardAndModifySelection (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveWordForwardAndModifySelection:", Object)(sender);
+	}
+
+	void moveWordBackwardAndModifySelection (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveWordBackwardAndModifySelection:", Object)(sender);
+	}
+
+	void moveUpAndModifySelection (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveUpAndModifySelection:", Object)(sender);
+	}
+
+	void moveDownAndModifySelection (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveDownAndModifySelection:", Object)(sender);
+	}
+
+	void moveWordRight (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveWordRight:", Object)(sender);
+	}
+
+	void moveWordLeft (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveWordLeft:", Object)(sender);
+	}
+
+	void moveRightAndModifySelection (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveRightAndModifySelection:", Object)(sender);
+	}
+
+	void moveLeftAndModifySelection (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveLeftAndModifySelection:", Object)(sender);
+	}
+
+	void moveWordRightAndModifySelection (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveWordRightAndModifySelection:", Object)(sender);
+	}
+
+	void moveWordLeftAndModifySelection (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveWordLeftAndModifySelection:", Object)(sender);
+	}
+
+	void scrollPageUp (Object sender)
+	{
+		return invokeObjcSelf!(void, "scrollPageUp:", Object)(sender);
+	}
+
+	void scrollPageDown (Object sender)
+	{
+		return invokeObjcSelf!(void, "scrollPageDown:", Object)(sender);
+	}
+
+	void scrollLineUp (Object sender)
+	{
+		return invokeObjcSelf!(void, "scrollLineUp:", Object)(sender);
+	}
+
+	void scrollLineDown (Object sender)
+	{
+		return invokeObjcSelf!(void, "scrollLineDown:", Object)(sender);
+	}
+
+	void transpose (Object sender)
+	{
+		return invokeObjcSelf!(void, "transpose:", Object)(sender);
+	}
+
+	void transposeWords (Object sender)
+	{
+		return invokeObjcSelf!(void, "transposeWords:", Object)(sender);
+	}
+
+	void selectAll (Object sender)
+	{
+		return invokeObjcSelf!(void, "selectAll:", Object)(sender);
+	}
+
+	void selectParagraph (Object sender)
+	{
+		return invokeObjcSelf!(void, "selectParagraph:", Object)(sender);
+	}
+
+	void selectLine (Object sender)
+	{
+		return invokeObjcSelf!(void, "selectLine:", Object)(sender);
+	}
+
+	void selectWord (Object sender)
+	{
+		return invokeObjcSelf!(void, "selectWord:", Object)(sender);
+	}
+
+	void indent (Object sender)
+	{
+		return invokeObjcSelf!(void, "indent:", Object)(sender);
+	}
+
+	void insertTab (Object sender)
+	{
+		return invokeObjcSelf!(void, "insertTab:", Object)(sender);
+	}
+
+	void insertBacktab (Object sender)
+	{
+		return invokeObjcSelf!(void, "insertBacktab:", Object)(sender);
+	}
+
+	void insertNewline (Object sender)
+	{
+		return invokeObjcSelf!(void, "insertNewline:", Object)(sender);
+	}
+
+	void insertParagraphSeparator (Object sender)
+	{
+		return invokeObjcSelf!(void, "insertParagraphSeparator:", Object)(sender);
+	}
+
+	void insertNewlineIgnoringFieldEditor (Object sender)
+	{
+		return invokeObjcSelf!(void, "insertNewlineIgnoringFieldEditor:", Object)(sender);
+	}
+
+	void insertTabIgnoringFieldEditor (Object sender)
+	{
+		return invokeObjcSelf!(void, "insertTabIgnoringFieldEditor:", Object)(sender);
+	}
+
+	void insertLineBreak (Object sender)
+	{
+		return invokeObjcSelf!(void, "insertLineBreak:", Object)(sender);
+	}
+
+	void insertContainerBreak (Object sender)
+	{
+		return invokeObjcSelf!(void, "insertContainerBreak:", Object)(sender);
+	}
+
+	void changeCaseOfLetter (Object sender)
+	{
+		return invokeObjcSelf!(void, "changeCaseOfLetter:", Object)(sender);
+	}
+
+	void uppercaseWord (Object sender)
+	{
+		return invokeObjcSelf!(void, "uppercaseWord:", Object)(sender);
+	}
+
+	void lowercaseWord (Object sender)
+	{
+		return invokeObjcSelf!(void, "lowercaseWord:", Object)(sender);
+	}
+
+	void capitalizeWord (Object sender)
+	{
+		return invokeObjcSelf!(void, "capitalizeWord:", Object)(sender);
+	}
+
+	void deleteForward (Object sender)
+	{
+		return invokeObjcSelf!(void, "deleteForward:", Object)(sender);
+	}
+
+	void deleteBackward (Object sender)
+	{
+		return invokeObjcSelf!(void, "deleteBackward:", Object)(sender);
+	}
+
+	void deleteBackwardByDecomposingPreviousCharacter (Object sender)
+	{
+		return invokeObjcSelf!(void, "deleteBackwardByDecomposingPreviousCharacter:", Object)(sender);
+	}
+
+	void deleteWordForward (Object sender)
+	{
+		return invokeObjcSelf!(void, "deleteWordForward:", Object)(sender);
+	}
+
+	void deleteWordBackward (Object sender)
+	{
+		return invokeObjcSelf!(void, "deleteWordBackward:", Object)(sender);
+	}
+
+	void deleteToBeginningOfLine (Object sender)
+	{
+		return invokeObjcSelf!(void, "deleteToBeginningOfLine:", Object)(sender);
+	}
+
+	void deleteToEndOfLine (Object sender)
+	{
+		return invokeObjcSelf!(void, "deleteToEndOfLine:", Object)(sender);
+	}
+
+	void deleteToBeginningOfParagraph (Object sender)
+	{
+		return invokeObjcSelf!(void, "deleteToBeginningOfParagraph:", Object)(sender);
+	}
+
+	void deleteToEndOfParagraph (Object sender)
+	{
+		return invokeObjcSelf!(void, "deleteToEndOfParagraph:", Object)(sender);
+	}
+
+	void yank (Object sender)
+	{
+		return invokeObjcSelf!(void, "yank:", Object)(sender);
+	}
+
+	void complete (Object sender)
+	{
+		return invokeObjcSelf!(void, "complete:", Object)(sender);
+	}
+
+	void setMark (Object sender)
+	{
+		return invokeObjcSelf!(void, "setMark:", Object)(sender);
+	}
+
+	void deleteToMark (Object sender)
+	{
+		return invokeObjcSelf!(void, "deleteToMark:", Object)(sender);
+	}
+
+	void selectToMark (Object sender)
+	{
+		return invokeObjcSelf!(void, "selectToMark:", Object)(sender);
+	}
+
+	void swapWithMark (Object sender)
+	{
+		return invokeObjcSelf!(void, "swapWithMark:", Object)(sender);
+	}
+
+	void cancelOperation (Object sender)
+	{
+		return invokeObjcSelf!(void, "cancelOperation:", Object)(sender);
+	}
+
+	//mixin ObjcBindMethod!(insertText, "insertText:");
+	//mixin ObjcBindMethod!(doCommandBySelector, "doCommandBySelector:");
+	//mixin ObjcBindMethod!(moveForward, "moveForward:");
+	//mixin ObjcBindMethod!(moveRight, "moveRight:");
+	//mixin ObjcBindMethod!(moveBackward, "moveBackward:");
+	//mixin ObjcBindMethod!(moveLeft, "moveLeft:");
+	//mixin ObjcBindMethod!(moveUp, "moveUp:");
+	//mixin ObjcBindMethod!(moveDown, "moveDown:");
+	//mixin ObjcBindMethod!(moveWordForward, "moveWordForward:");
+	//mixin ObjcBindMethod!(moveWordBackward, "moveWordBackward:");
+	//mixin ObjcBindMethod!(moveToBeginningOfLine, "moveToBeginningOfLine:");
+	//mixin ObjcBindMethod!(moveToEndOfLine, "moveToEndOfLine:");
+	//mixin ObjcBindMethod!(moveToBeginningOfParagraph, "moveToBeginningOfParagraph:");
+	//mixin ObjcBindMethod!(moveToEndOfParagraph, "moveToEndOfParagraph:");
+	//mixin ObjcBindMethod!(moveToEndOfDocument, "moveToEndOfDocument:");
+	//mixin ObjcBindMethod!(moveToBeginningOfDocument, "moveToBeginningOfDocument:");
+	//mixin ObjcBindMethod!(pageDown, "pageDown:");
+	//mixin ObjcBindMethod!(pageUp, "pageUp:");
+	//mixin ObjcBindMethod!(centerSelectionInVisibleArea, "centerSelectionInVisibleArea:");
+	//mixin ObjcBindMethod!(moveBackwardAndModifySelection, "moveBackwardAndModifySelection:");
+	//mixin ObjcBindMethod!(moveForwardAndModifySelection, "moveForwardAndModifySelection:");
+	//mixin ObjcBindMethod!(moveWordForwardAndModifySelection, "moveWordForwardAndModifySelection:");
+	//mixin ObjcBindMethod!(moveWordBackwardAndModifySelection, "moveWordBackwardAndModifySelection:");
+	//mixin ObjcBindMethod!(moveUpAndModifySelection, "moveUpAndModifySelection:");
+	//mixin ObjcBindMethod!(moveDownAndModifySelection, "moveDownAndModifySelection:");
+	//mixin ObjcBindMethod!(moveWordRight, "moveWordRight:");
+	//mixin ObjcBindMethod!(moveWordLeft, "moveWordLeft:");
+	//mixin ObjcBindMethod!(moveRightAndModifySelection, "moveRightAndModifySelection:");
+	//mixin ObjcBindMethod!(moveLeftAndModifySelection, "moveLeftAndModifySelection:");
+	//mixin ObjcBindMethod!(moveWordRightAndModifySelection, "moveWordRightAndModifySelection:");
+	//mixin ObjcBindMethod!(moveWordLeftAndModifySelection, "moveWordLeftAndModifySelection:");
+	//mixin ObjcBindMethod!(scrollPageUp, "scrollPageUp:");
+	//mixin ObjcBindMethod!(scrollPageDown, "scrollPageDown:");
+	//mixin ObjcBindMethod!(scrollLineUp, "scrollLineUp:");
+	//mixin ObjcBindMethod!(scrollLineDown, "scrollLineDown:");
+	//mixin ObjcBindMethod!(transpose, "transpose:");
+	//mixin ObjcBindMethod!(transposeWords, "transposeWords:");
+	//mixin ObjcBindMethod!(selectAll, "selectAll:");
+	//mixin ObjcBindMethod!(selectParagraph, "selectParagraph:");
+	//mixin ObjcBindMethod!(selectLine, "selectLine:");
+	//mixin ObjcBindMethod!(selectWord, "selectWord:");
+	//mixin ObjcBindMethod!(indent, "indent:");
+	//mixin ObjcBindMethod!(insertTab, "insertTab:");
+	//mixin ObjcBindMethod!(insertBacktab, "insertBacktab:");
+	//mixin ObjcBindMethod!(insertNewline, "insertNewline:");
+	//mixin ObjcBindMethod!(insertParagraphSeparator, "insertParagraphSeparator:");
+	//mixin ObjcBindMethod!(insertNewlineIgnoringFieldEditor, "insertNewlineIgnoringFieldEditor:");
+	//mixin ObjcBindMethod!(insertTabIgnoringFieldEditor, "insertTabIgnoringFieldEditor:");
+	//mixin ObjcBindMethod!(insertLineBreak, "insertLineBreak:");
+	//mixin ObjcBindMethod!(insertContainerBreak, "insertContainerBreak:");
+	//mixin ObjcBindMethod!(changeCaseOfLetter, "changeCaseOfLetter:");
+	//mixin ObjcBindMethod!(uppercaseWord, "uppercaseWord:");
+	//mixin ObjcBindMethod!(lowercaseWord, "lowercaseWord:");
+	//mixin ObjcBindMethod!(capitalizeWord, "capitalizeWord:");
+	//mixin ObjcBindMethod!(deleteForward, "deleteForward:");
+	//mixin ObjcBindMethod!(deleteBackward, "deleteBackward:");
+	//mixin ObjcBindMethod!(deleteBackwardByDecomposingPreviousCharacter, "deleteBackwardByDecomposingPreviousCharacter:");
+	//mixin ObjcBindMethod!(deleteWordForward, "deleteWordForward:");
+	//mixin ObjcBindMethod!(deleteWordBackward, "deleteWordBackward:");
+	//mixin ObjcBindMethod!(deleteToBeginningOfLine, "deleteToBeginningOfLine:");
+	//mixin ObjcBindMethod!(deleteToEndOfLine, "deleteToEndOfLine:");
+	//mixin ObjcBindMethod!(deleteToBeginningOfParagraph, "deleteToBeginningOfParagraph:");
+	//mixin ObjcBindMethod!(deleteToEndOfParagraph, "deleteToEndOfParagraph:");
+	//mixin ObjcBindMethod!(yank, "yank:");
+	//mixin ObjcBindMethod!(complete, "complete:");
+	//mixin ObjcBindMethod!(setMark, "setMark:");
+	//mixin ObjcBindMethod!(deleteToMark, "deleteToMark:");
+	//mixin ObjcBindMethod!(selectToMark, "selectToMark:");
+	//mixin ObjcBindMethod!(swapWithMark, "swapWithMark:");
+	//mixin ObjcBindMethod!(cancelOperation, "cancelOperation:");
+
+`;
+
+class NSResponder : NSObject, INSCoding
+{
+	mixin (ObjcWrap);
+	
+	this (NSCoder aDecoder)
+	{
+		super(typeof(this).alloc.initWithCoder(aDecoder).objcObject);
+	}
+	
+	void encodeWithCoder (NSCoder aCoder)
+	{
+		return invokeObjcSelf!(void, "encodeWithCoder:", NSCoder)(aCoder);
+	}
+	
+	typeof(this) initWithCoder (NSCoder aDecoder)
+	{
+		return invokeObjcSelf!(typeof(this), "initWithCoder:", NSCoder)(aDecoder);
+	}
+	
+	NSResponder nextResponder ()
+	{
+		id result = invokeObjcSelf!(id, "nextResponder");
+		return result is this.objcObject ? this : (result !is null ? new NSResponder(result) : null);
+	}
+
+	void setNextResponder (NSResponder aResponder)
+	{
+		return invokeObjcSelf!(void, "setNextResponder:", NSResponder)(aResponder);
+	}
+
+	bool tryToPerform (SEL anAction, Object anObject)
+	{
+		return invokeObjcSelf!(bool, "tryToPerform:with:", SEL, Object)(anAction, anObject);
+	}
+
+	bool performKeyEquivalent (NSEvent theEvent)
+	{
+		return invokeObjcSelf!(bool, "performKeyEquivalent:", NSEvent)(theEvent);
+	}
+
+	Object validRequestorForSendType (NSString sendType, NSString returnType)
+	{
+		return invokeObjcSelf!(Object, "validRequestorForSendType:returnType:", NSString, NSString)(sendType, returnType);
+	}
+
+	void mouseDown (NSEvent theEvent)
+	{
+		return invokeObjcSelf!(void, "mouseDown:", NSEvent)(theEvent);
+	}
+
+	void rightMouseDown (NSEvent theEvent)
+	{
+		return invokeObjcSelf!(void, "rightMouseDown:", NSEvent)(theEvent);
+	}
+
+	void otherMouseDown (NSEvent theEvent)
+	{
+		return invokeObjcSelf!(void, "otherMouseDown:", NSEvent)(theEvent);
+	}
+
+	void mouseUp (NSEvent theEvent)
+	{
+		return invokeObjcSelf!(void, "mouseUp:", NSEvent)(theEvent);
+	}
+
+	void rightMouseUp (NSEvent theEvent)
+	{
+		return invokeObjcSelf!(void, "rightMouseUp:", NSEvent)(theEvent);
+	}
+
+	void otherMouseUp (NSEvent theEvent)
+	{
+		return invokeObjcSelf!(void, "otherMouseUp:", NSEvent)(theEvent);
+	}
+
+	void mouseMoved (NSEvent theEvent)
+	{
+		return invokeObjcSelf!(void, "mouseMoved:", NSEvent)(theEvent);
+	}
+
+	void mouseDragged (NSEvent theEvent)
+	{
+		return invokeObjcSelf!(void, "mouseDragged:", NSEvent)(theEvent);
+	}
+
+	void scrollWheel (NSEvent theEvent)
+	{
+		return invokeObjcSelf!(void, "scrollWheel:", NSEvent)(theEvent);
+	}
+
+	void rightMouseDragged (NSEvent theEvent)
+	{
+		return invokeObjcSelf!(void, "rightMouseDragged:", NSEvent)(theEvent);
+	}
+
+	void otherMouseDragged (NSEvent theEvent)
+	{
+		return invokeObjcSelf!(void, "otherMouseDragged:", NSEvent)(theEvent);
+	}
+
+	void mouseEntered (NSEvent theEvent)
+	{
+		return invokeObjcSelf!(void, "mouseEntered:", NSEvent)(theEvent);
+	}
+
+	void mouseExited (NSEvent theEvent)
+	{
+		return invokeObjcSelf!(void, "mouseExited:", NSEvent)(theEvent);
+	}
+
+	void keyDown (NSEvent theEvent)
+	{
+		return invokeObjcSelf!(void, "keyDown:", NSEvent)(theEvent);
+	}
+
+	void keyUp (NSEvent theEvent)
+	{
+		return invokeObjcSelf!(void, "keyUp:", NSEvent)(theEvent);
+	}
+
+	void flagsChanged (NSEvent theEvent)
+	{
+		return invokeObjcSelf!(void, "flagsChanged:", NSEvent)(theEvent);
+	}
+
+	void tabletPoint (NSEvent theEvent)
+	{
+		return invokeObjcSelf!(void, "tabletPoint:", NSEvent)(theEvent);
+	}
+
+	void tabletProximity (NSEvent theEvent)
+	{
+		return invokeObjcSelf!(void, "tabletProximity:", NSEvent)(theEvent);
+	}
+
+	void cursorUpdate (NSEvent event)
+	{
+		return invokeObjcSelf!(void, "cursorUpdate:", NSEvent)(event);
+	}
+
+	void noResponderFor (SEL eventSelector)
+	{
+		return invokeObjcSelf!(void, "noResponderFor:", SEL)(eventSelector);
+	}
+
+	bool acceptsFirstResponder ()
+	{
+		return invokeObjcSelf!(bool, "acceptsFirstResponder");
+	}
+
+	bool becomeFirstResponder ()
+	{
+		return invokeObjcSelf!(bool, "becomeFirstResponder");
+	}
+
+	bool resignFirstResponder ()
+	{
+		return invokeObjcSelf!(bool, "resignFirstResponder");
+	}
+
+	void interpretKeyEvents (NSArray eventArray)
+	{
+		return invokeObjcSelf!(void, "interpretKeyEvents:", NSArray)(eventArray);
+	}
+
+	void flushBufferedKeyEvents ()
+	{
+		return invokeObjcSelf!(void, "flushBufferedKeyEvents");
+	}
+
+	void setMenu (NSMenu menu)
+	{
+		return invokeObjcSelf!(void, "setMenu:", NSMenu)(menu);
+	}
+
+	NSMenu menu ()
+	{
+		return invokeObjcSelf!(NSMenu, "menu");
+	}
+
+	void showContextHelp (Object sender)
+	{
+		return invokeObjcSelf!(void, "showContextHelp:", Object)(sender);
+	}
+
+	void helpRequested (NSEvent eventPtr)
+	{
+		return invokeObjcSelf!(void, "helpRequested:", NSEvent)(eventPtr);
+	}
+
+	bool shouldBeTreatedAsInkEvent (NSEvent theEvent)
+	{
+		return invokeObjcSelf!(bool, "shouldBeTreatedAsInkEvent:", NSEvent)(theEvent);
+	}
+
+	// NSInterfaceStyle
+	uint interfaceStyle ()
+	{
+		return invokeObjcSelf!(uint, "interfaceStyle");
+	}
+
+	void setInterfaceStyle (uint interfaceStyle)
+	{
+		return invokeObjcSelf!(void, "setInterfaceStyle:", uint)(interfaceStyle);
+	}
+	
+	// NSErrorPresentation
+	void presentError (NSError error, NSWindow window, Object delegate_, SEL didPresentSelector, void* contextInfo)
+	{
+		return invokeObjcSelf!(void, "presentError:modalForWindow:delegate:didPresentSelector:contextInfo:", NSError, NSWindow, Object, SEL, void*)(error, window, delegate_, didPresentSelector, contextInfo);
+	}
+
+	bool presentError (NSError error)
+	{
+		return invokeObjcSelf!(bool, "presentError:", NSError)(error);
+	}
+
+	NSError willPresentError (NSError error)
+	{
+		return invokeObjcSelf!(NSError, "willPresentError:", NSError)(error);
+	}
+	
+	// NSUndoSupport
+	NSUndoManager undoManager ()
+	{
+		return invokeObjcSelf!(NSUndoManager, "undoManager");
+	}
+	
+	// NSStandardKeyBindingMethods
+	void insertText (Object insertString)
+	{
+		return invokeObjcSelf!(void, "insertText:", Object)(insertString);
+	}
+
+	void doCommandBySelector (SEL aSelector)
+	{
+		return invokeObjcSelf!(void, "doCommandBySelector:", SEL)(aSelector);
+	}
+
+	void moveForward (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveForward:", Object)(sender);
+	}
+
+	void moveRight (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveRight:", Object)(sender);
+	}
+
+	void moveBackward (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveBackward:", Object)(sender);
+	}
+
+	void moveLeft (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveLeft:", Object)(sender);
+	}
+
+	void moveUp (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveUp:", Object)(sender);
+	}
+
+	void moveDown (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveDown:", Object)(sender);
+	}
+
+	void moveWordForward (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveWordForward:", Object)(sender);
+	}
+
+	void moveWordBackward (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveWordBackward:", Object)(sender);
+	}
+
+	void moveToBeginningOfLine (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveToBeginningOfLine:", Object)(sender);
+	}
+
+	void moveToEndOfLine (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveToEndOfLine:", Object)(sender);
+	}
+
+	void moveToBeginningOfParagraph (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveToBeginningOfParagraph:", Object)(sender);
+	}
+
+	void moveToEndOfParagraph (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveToEndOfParagraph:", Object)(sender);
+	}
+
+	void moveToEndOfDocument (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveToEndOfDocument:", Object)(sender);
+	}
+
+	void moveToBeginningOfDocument (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveToBeginningOfDocument:", Object)(sender);
+	}
+
+	void pageDown (Object sender)
+	{
+		return invokeObjcSelf!(void, "pageDown:", Object)(sender);
+	}
+
+	void pageUp (Object sender)
+	{
+		return invokeObjcSelf!(void, "pageUp:", Object)(sender);
+	}
+
+	void centerSelectionInVisibleArea (Object sender)
+	{
+		return invokeObjcSelf!(void, "centerSelectionInVisibleArea:", Object)(sender);
+	}
+
+	void moveBackwardAndModifySelection (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveBackwardAndModifySelection:", Object)(sender);
+	}
+
+	void moveForwardAndModifySelection (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveForwardAndModifySelection:", Object)(sender);
+	}
+
+	void moveWordForwardAndModifySelection (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveWordForwardAndModifySelection:", Object)(sender);
+	}
+
+	void moveWordBackwardAndModifySelection (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveWordBackwardAndModifySelection:", Object)(sender);
+	}
+
+	void moveUpAndModifySelection (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveUpAndModifySelection:", Object)(sender);
+	}
+
+	void moveDownAndModifySelection (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveDownAndModifySelection:", Object)(sender);
+	}
+
+	void moveWordRight (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveWordRight:", Object)(sender);
+	}
+
+	void moveWordLeft (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveWordLeft:", Object)(sender);
+	}
+
+	void moveRightAndModifySelection (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveRightAndModifySelection:", Object)(sender);
+	}
+
+	void moveLeftAndModifySelection (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveLeftAndModifySelection:", Object)(sender);
+	}
+
+	void moveWordRightAndModifySelection (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveWordRightAndModifySelection:", Object)(sender);
+	}
+
+	void moveWordLeftAndModifySelection (Object sender)
+	{
+		return invokeObjcSelf!(void, "moveWordLeftAndModifySelection:", Object)(sender);
+	}
+
+	void scrollPageUp (Object sender)
+	{
+		return invokeObjcSelf!(void, "scrollPageUp:", Object)(sender);
+	}
+
+	void scrollPageDown (Object sender)
+	{
+		return invokeObjcSelf!(void, "scrollPageDown:", Object)(sender);
+	}
+
+	void scrollLineUp (Object sender)
+	{
+		return invokeObjcSelf!(void, "scrollLineUp:", Object)(sender);
+	}
+
+	void scrollLineDown (Object sender)
+	{
+		return invokeObjcSelf!(void, "scrollLineDown:", Object)(sender);
+	}
+
+	void transpose (Object sender)
+	{
+		return invokeObjcSelf!(void, "transpose:", Object)(sender);
+	}
+
+	void transposeWords (Object sender)
+	{
+		return invokeObjcSelf!(void, "transposeWords:", Object)(sender);
+	}
+
+	void selectAll (Object sender)
+	{
+		return invokeObjcSelf!(void, "selectAll:", Object)(sender);
+	}
+
+	void selectParagraph (Object sender)
+	{
+		return invokeObjcSelf!(void, "selectParagraph:", Object)(sender);
+	}
+
+	void selectLine (Object sender)
+	{
+		return invokeObjcSelf!(void, "selectLine:", Object)(sender);
+	}
+
+	void selectWord (Object sender)
+	{
+		return invokeObjcSelf!(void, "selectWord:", Object)(sender);
+	}
+
+	void indent (Object sender)
+	{
+		return invokeObjcSelf!(void, "indent:", Object)(sender);
+	}
+
+	void insertTab (Object sender)
+	{
+		return invokeObjcSelf!(void, "insertTab:", Object)(sender);
+	}
+
+	void insertBacktab (Object sender)
+	{
+		return invokeObjcSelf!(void, "insertBacktab:", Object)(sender);
+	}
+
+	void insertNewline (Object sender)
+	{
+		return invokeObjcSelf!(void, "insertNewline:", Object)(sender);
+	}
+
+	void insertParagraphSeparator (Object sender)
+	{
+		return invokeObjcSelf!(void, "insertParagraphSeparator:", Object)(sender);
+	}
+
+	void insertNewlineIgnoringFieldEditor (Object sender)
+	{
+		return invokeObjcSelf!(void, "insertNewlineIgnoringFieldEditor:", Object)(sender);
+	}
+
+	void insertTabIgnoringFieldEditor (Object sender)
+	{
+		return invokeObjcSelf!(void, "insertTabIgnoringFieldEditor:", Object)(sender);
+	}
+
+	void insertLineBreak (Object sender)
+	{
+		return invokeObjcSelf!(void, "insertLineBreak:", Object)(sender);
+	}
+
+	void insertContainerBreak (Object sender)
+	{
+		return invokeObjcSelf!(void, "insertContainerBreak:", Object)(sender);
+	}
+
+	void changeCaseOfLetter (Object sender)
+	{
+		return invokeObjcSelf!(void, "changeCaseOfLetter:", Object)(sender);
+	}
+
+	void uppercaseWord (Object sender)
+	{
+		return invokeObjcSelf!(void, "uppercaseWord:", Object)(sender);
+	}
+
+	void lowercaseWord (Object sender)
+	{
+		return invokeObjcSelf!(void, "lowercaseWord:", Object)(sender);
+	}
+
+	void capitalizeWord (Object sender)
+	{
+		return invokeObjcSelf!(void, "capitalizeWord:", Object)(sender);
+	}
+
+	void deleteForward (Object sender)
+	{
+		return invokeObjcSelf!(void, "deleteForward:", Object)(sender);
+	}
+
+	void deleteBackward (Object sender)
+	{
+		return invokeObjcSelf!(void, "deleteBackward:", Object)(sender);
+	}
+
+	void deleteBackwardByDecomposingPreviousCharacter (Object sender)
+	{
+		return invokeObjcSelf!(void, "deleteBackwardByDecomposingPreviousCharacter:", Object)(sender);
+	}
+
+	void deleteWordForward (Object sender)
+	{
+		return invokeObjcSelf!(void, "deleteWordForward:", Object)(sender);
+	}
+
+	void deleteWordBackward (Object sender)
+	{
+		return invokeObjcSelf!(void, "deleteWordBackward:", Object)(sender);
+	}
+
+	void deleteToBeginningOfLine (Object sender)
+	{
+		return invokeObjcSelf!(void, "deleteToBeginningOfLine:", Object)(sender);
+	}
+
+	void deleteToEndOfLine (Object sender)
+	{
+		return invokeObjcSelf!(void, "deleteToEndOfLine:", Object)(sender);
+	}
+
+	void deleteToBeginningOfParagraph (Object sender)
+	{
+		return invokeObjcSelf!(void, "deleteToBeginningOfParagraph:", Object)(sender);
+	}
+
+	void deleteToEndOfParagraph (Object sender)
+	{
+		return invokeObjcSelf!(void, "deleteToEndOfParagraph:", Object)(sender);
+	}
+
+	void yank (Object sender)
+	{
+		return invokeObjcSelf!(void, "yank:", Object)(sender);
+	}
+
+	void complete (Object sender)
+	{
+		return invokeObjcSelf!(void, "complete:", Object)(sender);
+	}
+
+	void setMark (Object sender)
+	{
+		return invokeObjcSelf!(void, "setMark:", Object)(sender);
+	}
+
+	void deleteToMark (Object sender)
+	{
+		return invokeObjcSelf!(void, "deleteToMark:", Object)(sender);
+	}
+
+	void selectToMark (Object sender)
+	{
+		return invokeObjcSelf!(void, "selectToMark:", Object)(sender);
+	}
+
+	void swapWithMark (Object sender)
+	{
+		return invokeObjcSelf!(void, "swapWithMark:", Object)(sender);
+	}
+
+	void cancelOperation (Object sender)
+	{
+		return invokeObjcSelf!(void, "cancelOperation:", Object)(sender);
+	}
+}
\ No newline at end of file