diff dstep/appkit/NSBrowser.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/NSBrowser.d	Sun Jan 03 22:06:11 2010 +0100
@@ -0,0 +1,714 @@
+/**
+ * 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.NSBrowser;
+
+import dstep.appkit.NSCell;
+import dstep.appkit.NSColor;
+import dstep.appkit.NSControl;
+import dstep.appkit.NSDragging;
+import dstep.appkit.NSEvent;
+import dstep.appkit.NSImage;
+import dstep.appkit.NSMatrix;
+import dstep.appkit.NSScroller;
+import dstep.applicationservices.coregraphics.CGBase;
+import dstep.foundation.NSArray;
+import dstep.foundation.NSGeometry;
+import dstep.foundation.NSIndexSet;
+import dstep.foundation.NSObjCRuntime;
+import dstep.foundation.NSString;
+import dstep.objc.bridge.Bridge;
+import dstep.objc.objc;
+
+import bindings = dstep.appkit.NSBrowser_bindings;
+
+alias NSUInteger NSBrowserColumnResizingType;
+alias NSUInteger NSBrowserDropOperation;
+
+private
+{
+	NSString NSBrowserColumnConfigurationDidChangeNotification_;
+}
+
+NSString NSBrowserColumnConfigurationDidChangeNotification ()
+{
+	if (NSBrowserColumnConfigurationDidChangeNotification_)
+		return NSBrowserColumnConfigurationDidChangeNotification_;
+
+	return NSBrowserColumnConfigurationDidChangeNotification_ = new NSString(bindings.NSBrowserColumnConfigurationDidChangeNotification);
+}
+
+enum
+{
+	NSBrowserNoColumnResizing = 0,
+	NSBrowserAutoColumnResizing = 1,
+	NSBrowserUserColumnResizing = 2
+}
+
+enum
+{
+	NSBrowserDropOn,
+	NSBrowserDropAbove
+}
+
+struct _Brflags
+{
+	uint firstVisibleCalculationDisabled;
+	uint prefersAllColumnUserResizing;
+	uint usesSmallScrollers;
+	uint usesSmallSizeTitleFont;
+	uint actionNeedsToBeSent;
+	uint acceptsFirstMouse;
+	uint refusesFirstResponder;
+	uint disableCompositing;
+	uint delegateSelectsCellsByRow;
+	uint allowsIncrementalSearching;
+	uint time;
+	uint hasHorizontalScroller;
+	uint prohibitEmptySel;
+	uint sendActionOnArrowKeys;
+	uint dontDrawTitles;
+	uint acceptArrowKeys;
+	uint delegateValidatesColumns;
+	uint delegateDoesNotCreateRowsInMatrix;
+	uint delegateSelectsCellsByString;
+	uint delegateSetsTitles;
+	uint delegateImplementsWillDisplayCell;
+	uint separateColumns;
+	uint titleFromPrevious;
+	uint isTitled;
+	uint reuseColumns;
+	uint allowsBranchSelection;
+	uint allowsMultipleSelection;
+}
+
+class NSBrowser : NSControl
+{
+	mixin (ObjcWrap);
+
+	static Class cellClass ()
+	{
+		return invokeObjcSelfClass!(Class, "cellClass");
+	}
+
+	void loadColumnZero ()
+	{
+		return invokeObjcSelf!(void, "loadColumnZero");
+	}
+
+	bool isLoaded ()
+	{
+		return invokeObjcSelf!(bool, "isLoaded");
+	}
+
+	void setDoubleAction (SEL aSelector)
+	{
+		return invokeObjcSelf!(void, "setDoubleAction:", SEL)(aSelector);
+	}
+
+	SEL doubleAction ()
+	{
+		return invokeObjcSelf!(SEL, "doubleAction");
+	}
+
+	void setMatrixClass (Class factoryId)
+	{
+		return invokeObjcSelf!(void, "setMatrixClass:", Class)(factoryId);
+	}
+
+	Class matrixClass ()
+	{
+		return invokeObjcSelf!(Class, "matrixClass");
+	}
+
+	void setCellClass (Class factoryId)
+	{
+		return invokeObjcSelf!(void, "setCellClass:", Class)(factoryId);
+	}
+
+	void setCellPrototype (NSCell aCell)
+	{
+		return invokeObjcSelf!(void, "setCellPrototype:", NSCell)(aCell);
+	}
+
+	Object cellPrototype ()
+	{
+		return invokeObjcSelf!(Object, "cellPrototype");
+	}
+
+	void setDelegate (Object anObject)
+	{
+		return invokeObjcSelf!(void, "setDelegate:", Object)(anObject);
+	}
+
+	Object delegate_ ()
+	{
+		return invokeObjcSelf!(Object, "delegate");
+	}
+
+	void setReusesColumns (bool flag)
+	{
+		return invokeObjcSelf!(void, "setReusesColumns:", bool)(flag);
+	}
+
+	bool reusesColumns ()
+	{
+		return invokeObjcSelf!(bool, "reusesColumns");
+	}
+
+	void setHasHorizontalScroller (bool flag)
+	{
+		return invokeObjcSelf!(void, "setHasHorizontalScroller:", bool)(flag);
+	}
+
+	bool hasHorizontalScroller ()
+	{
+		return invokeObjcSelf!(bool, "hasHorizontalScroller");
+	}
+
+	void setSeparatesColumns (bool flag)
+	{
+		return invokeObjcSelf!(void, "setSeparatesColumns:", bool)(flag);
+	}
+
+	bool separatesColumns ()
+	{
+		return invokeObjcSelf!(bool, "separatesColumns");
+	}
+
+	void setTitled (bool flag)
+	{
+		return invokeObjcSelf!(void, "setTitled:", bool)(flag);
+	}
+
+	bool isTitled ()
+	{
+		return invokeObjcSelf!(bool, "isTitled");
+	}
+
+	void setMinColumnWidth (CGFloat columnWidth)
+	{
+		return invokeObjcSelf!(void, "setMinColumnWidth:", CGFloat)(columnWidth);
+	}
+
+	CGFloat minColumnWidth ()
+	{
+		return invokeObjcSelf!(CGFloat, "minColumnWidth");
+	}
+
+	void setMaxVisibleColumns (NSInteger columnCount)
+	{
+		return invokeObjcSelf!(void, "setMaxVisibleColumns:", NSInteger)(columnCount);
+	}
+
+	NSInteger maxVisibleColumns ()
+	{
+		return invokeObjcSelf!(NSInteger, "maxVisibleColumns");
+	}
+
+	void setAllowsMultipleSelection (bool flag)
+	{
+		return invokeObjcSelf!(void, "setAllowsMultipleSelection:", bool)(flag);
+	}
+
+	bool allowsMultipleSelection ()
+	{
+		return invokeObjcSelf!(bool, "allowsMultipleSelection");
+	}
+
+	void setAllowsBranchSelection (bool flag)
+	{
+		return invokeObjcSelf!(void, "setAllowsBranchSelection:", bool)(flag);
+	}
+
+	bool allowsBranchSelection ()
+	{
+		return invokeObjcSelf!(bool, "allowsBranchSelection");
+	}
+
+	void setAllowsEmptySelection (bool flag)
+	{
+		return invokeObjcSelf!(void, "setAllowsEmptySelection:", bool)(flag);
+	}
+
+	bool allowsEmptySelection ()
+	{
+		return invokeObjcSelf!(bool, "allowsEmptySelection");
+	}
+
+	void setTakesTitleFromPreviousColumn (bool flag)
+	{
+		return invokeObjcSelf!(void, "setTakesTitleFromPreviousColumn:", bool)(flag);
+	}
+
+	bool takesTitleFromPreviousColumn ()
+	{
+		return invokeObjcSelf!(bool, "takesTitleFromPreviousColumn");
+	}
+
+	void setAcceptsArrowKeys (bool flag)
+	{
+		return invokeObjcSelf!(void, "setAcceptsArrowKeys:", bool)(flag);
+	}
+
+	bool acceptsArrowKeys ()
+	{
+		return invokeObjcSelf!(bool, "acceptsArrowKeys");
+	}
+
+	void setSendsActionOnArrowKeys (bool flag)
+	{
+		return invokeObjcSelf!(void, "setSendsActionOnArrowKeys:", bool)(flag);
+	}
+
+	bool sendsActionOnArrowKeys ()
+	{
+		return invokeObjcSelf!(bool, "sendsActionOnArrowKeys");
+	}
+
+	void setTitle (NSString aString, NSInteger column)
+	{
+		return invokeObjcSelf!(void, "setTitle:ofColumn:", NSString, NSInteger)(aString, column);
+	}
+
+	NSString titleOfColumn (NSInteger column)
+	{
+		return invokeObjcSelf!(NSString, "titleOfColumn:", NSInteger)(column);
+	}
+
+	void setPathSeparator (NSString newString)
+	{
+		return invokeObjcSelf!(void, "setPathSeparator:", NSString)(newString);
+	}
+
+	NSString pathSeparator ()
+	{
+		return invokeObjcSelf!(NSString, "pathSeparator");
+	}
+
+	bool setPath (NSString path)
+	{
+		return invokeObjcSelf!(bool, "setPath:", NSString)(path);
+	}
+
+	NSString path ()
+	{
+		return invokeObjcSelf!(NSString, "path");
+	}
+
+	NSString pathToColumn (NSInteger column)
+	{
+		return invokeObjcSelf!(NSString, "pathToColumn:", NSInteger)(column);
+	}
+
+	NSInteger selectedColumn ()
+	{
+		return invokeObjcSelf!(NSInteger, "selectedColumn");
+	}
+
+	Object selectedCell ()
+	{
+		return invokeObjcSelf!(Object, "selectedCell");
+	}
+
+	Object selectedCellInColumn (NSInteger column)
+	{
+		return invokeObjcSelf!(Object, "selectedCellInColumn:", NSInteger)(column);
+	}
+
+	NSArray selectedCells ()
+	{
+		return invokeObjcSelf!(NSArray, "selectedCells");
+	}
+
+	void selectRow (NSInteger row, NSInteger column)
+	{
+		return invokeObjcSelf!(void, "selectRow:inColumn:", NSInteger, NSInteger)(row, column);
+	}
+
+	NSInteger selectedRowInColumn (NSInteger column)
+	{
+		return invokeObjcSelf!(NSInteger, "selectedRowInColumn:", NSInteger)(column);
+	}
+
+	void selectRowIndexes (NSIndexSet indexes, NSInteger column)
+	{
+		return invokeObjcSelf!(void, "selectRowIndexes:inColumn:", NSIndexSet, NSInteger)(indexes, column);
+	}
+
+	NSIndexSet selectedRowIndexesInColumn (NSInteger column)
+	{
+		return invokeObjcSelf!(NSIndexSet, "selectedRowIndexesInColumn:", NSInteger)(column);
+	}
+
+	void reloadColumn (NSInteger column)
+	{
+		return invokeObjcSelf!(void, "reloadColumn:", NSInteger)(column);
+	}
+
+	void validateVisibleColumns ()
+	{
+		return invokeObjcSelf!(void, "validateVisibleColumns");
+	}
+
+	void scrollColumnsRightBy (NSInteger shiftAmount)
+	{
+		return invokeObjcSelf!(void, "scrollColumnsRightBy:", NSInteger)(shiftAmount);
+	}
+
+	void scrollColumnsLeftBy (NSInteger shiftAmount)
+	{
+		return invokeObjcSelf!(void, "scrollColumnsLeftBy:", NSInteger)(shiftAmount);
+	}
+
+	void scrollColumnToVisible (NSInteger column)
+	{
+		return invokeObjcSelf!(void, "scrollColumnToVisible:", NSInteger)(column);
+	}
+
+	void setLastColumn (NSInteger column)
+	{
+		return invokeObjcSelf!(void, "setLastColumn:", NSInteger)(column);
+	}
+
+	NSInteger lastColumn ()
+	{
+		return invokeObjcSelf!(NSInteger, "lastColumn");
+	}
+
+	void addColumn ()
+	{
+		return invokeObjcSelf!(void, "addColumn");
+	}
+
+	NSInteger numberOfVisibleColumns ()
+	{
+		return invokeObjcSelf!(NSInteger, "numberOfVisibleColumns");
+	}
+
+	NSInteger firstVisibleColumn ()
+	{
+		return invokeObjcSelf!(NSInteger, "firstVisibleColumn");
+	}
+
+	NSInteger lastVisibleColumn ()
+	{
+		return invokeObjcSelf!(NSInteger, "lastVisibleColumn");
+	}
+
+	NSInteger columnOfMatrix (NSMatrix matrix)
+	{
+		return invokeObjcSelf!(NSInteger, "columnOfMatrix:", NSMatrix)(matrix);
+	}
+
+	NSMatrix matrixInColumn (NSInteger column)
+	{
+		return invokeObjcSelf!(NSMatrix, "matrixInColumn:", NSInteger)(column);
+	}
+
+	Object loadedCellAtRow (NSInteger row, NSInteger col)
+	{
+		return invokeObjcSelf!(Object, "loadedCellAtRow:column:", NSInteger, NSInteger)(row, col);
+	}
+
+	void selectAll (Object sender)
+	{
+		return invokeObjcSelf!(void, "selectAll:", Object)(sender);
+	}
+
+	void tile ()
+	{
+		return invokeObjcSelf!(void, "tile");
+	}
+
+	void doClick (Object sender)
+	{
+		return invokeObjcSelf!(void, "doClick:", Object)(sender);
+	}
+
+	void doDoubleClick (Object sender)
+	{
+		return invokeObjcSelf!(void, "doDoubleClick:", Object)(sender);
+	}
+
+	bool sendAction ()
+	{
+		return invokeObjcSelf!(bool, "sendAction");
+	}
+
+	NSRect titleFrameOfColumn (NSInteger column)
+	{
+		return invokeObjcSelf!(NSRect, "titleFrameOfColumn:", NSInteger)(column);
+	}
+
+	void drawTitleOfColumn (NSInteger column, NSRect aRect)
+	{
+		return invokeObjcSelf!(void, "drawTitleOfColumn:inRect:", NSInteger, NSRect)(column, aRect);
+	}
+
+	CGFloat titleHeight ()
+	{
+		return invokeObjcSelf!(CGFloat, "titleHeight");
+	}
+
+	NSRect frameOfColumn (NSInteger column)
+	{
+		return invokeObjcSelf!(NSRect, "frameOfColumn:", NSInteger)(column);
+	}
+
+	NSRect frameOfInsideOfColumn (NSInteger column)
+	{
+		return invokeObjcSelf!(NSRect, "frameOfInsideOfColumn:", NSInteger)(column);
+	}
+
+	CGFloat columnWidthForColumnContentWidth (CGFloat columnContentWidth)
+	{
+		return invokeObjcSelf!(CGFloat, "columnWidthForColumnContentWidth:", CGFloat)(columnContentWidth);
+	}
+
+	CGFloat columnContentWidthForColumnWidth (CGFloat columnWidth)
+	{
+		return invokeObjcSelf!(CGFloat, "columnContentWidthForColumnWidth:", CGFloat)(columnWidth);
+	}
+
+	void setColumnResizingType (uint columnResizingType)
+	{
+		return invokeObjcSelf!(void, "setColumnResizingType:", uint)(columnResizingType);
+	}
+
+	uint columnResizingType ()
+	{
+		return invokeObjcSelf!(uint, "columnResizingType");
+	}
+
+	void setPrefersAllColumnUserResizing (bool prefersAllColumnResizing)
+	{
+		return invokeObjcSelf!(void, "setPrefersAllColumnUserResizing:", bool)(prefersAllColumnResizing);
+	}
+
+	bool prefersAllColumnUserResizing ()
+	{
+		return invokeObjcSelf!(bool, "prefersAllColumnUserResizing");
+	}
+
+	void setWidth (CGFloat columnWidth, NSInteger columnIndex)
+	{
+		return invokeObjcSelf!(void, "setWidth:ofColumn:", CGFloat, NSInteger)(columnWidth, columnIndex);
+	}
+
+	CGFloat widthOfColumn (NSInteger column)
+	{
+		return invokeObjcSelf!(CGFloat, "widthOfColumn:", NSInteger)(column);
+	}
+
+	void setColumnsAutosaveName (NSString name)
+	{
+		return invokeObjcSelf!(void, "setColumnsAutosaveName:", NSString)(name);
+	}
+
+	NSString columnsAutosaveName ()
+	{
+		return invokeObjcSelf!(NSString, "columnsAutosaveName");
+	}
+
+	static void removeSavedColumnsWithAutosaveName (NSString name)
+	{
+		return invokeObjcSelfClass!(void, "removeSavedColumnsWithAutosaveName:", NSString)(name);
+	}
+
+	bool canDragRowsWithIndexes (NSIndexSet rowIndexes, NSInteger column, NSEvent event)
+	{
+		return invokeObjcSelf!(bool, "canDragRowsWithIndexes:inColumn:withEvent:", NSIndexSet, NSInteger, NSEvent)(rowIndexes, column, event);
+	}
+
+	NSImage draggingImageForRowsWithIndexes (NSIndexSet rowIndexes, NSInteger column, NSEvent event, NSPointPointer dragImageOffset)
+	{
+		return invokeObjcSelf!(NSImage, "draggingImageForRowsWithIndexes:inColumn:withEvent:offset:", NSIndexSet, NSInteger, NSEvent, NSPointPointer)(rowIndexes, column, event, dragImageOffset);
+	}
+
+	void setDraggingSourceOperationMask (uint mask, bool isLocal)
+	{
+		return invokeObjcSelf!(void, "setDraggingSourceOperationMask:forLocal:", uint, bool)(mask, isLocal);
+	}
+
+	bool allowsTypeSelect ()
+	{
+		return invokeObjcSelf!(bool, "allowsTypeSelect");
+	}
+
+	void setAllowsTypeSelect (bool value)
+	{
+		return invokeObjcSelf!(void, "setAllowsTypeSelect:", bool)(value);
+	}
+
+	void setBackgroundColor (NSColor color)
+	{
+		return invokeObjcSelf!(void, "setBackgroundColor:", NSColor)(color);
+	}
+
+	NSColor backgroundColor ()
+	{
+		return invokeObjcSelf!(NSColor, "backgroundColor");
+	}
+
+	void displayColumn (NSInteger column)
+	{
+		return invokeObjcSelf!(void, "displayColumn:", NSInteger)(column);
+	}
+
+	void displayAllColumns ()
+	{
+		return invokeObjcSelf!(void, "displayAllColumns");
+	}
+
+	void scrollViaScroller (NSScroller sender)
+	{
+		return invokeObjcSelf!(void, "scrollViaScroller:", NSScroller)(sender);
+	}
+
+	void updateScroller ()
+	{
+		return invokeObjcSelf!(void, "updateScroller");
+	}
+}
+
+const TNSBrowserDelegate = `
+
+	NSInteger browser (NSBrowser sender, NSInteger column)
+	{
+		return invokeObjcSelf!(NSInteger, "browser:numberOfRowsInColumn:", NSBrowser, NSInteger)(sender, column);
+	}
+
+	void browser (NSBrowser sender, NSInteger column, NSMatrix matrix)
+	{
+		return invokeObjcSelf!(void, "browser:createRowsForColumn:inMatrix:", NSBrowser, NSInteger, NSMatrix)(sender, column, matrix);
+	}
+
+	void browser (NSBrowser sender, Object cell, NSInteger row, NSInteger column)
+	{
+		return invokeObjcSelf!(void, "browser:willDisplayCell:atRow:column:", NSBrowser, Object, NSInteger, NSInteger)(sender, cell, row, column);
+	}
+
+	NSString browser (NSBrowser sender, NSInteger column)
+	{
+		return invokeObjcSelf!(NSString, "browser:titleOfColumn:", NSBrowser, NSInteger)(sender, column);
+	}
+
+	bool browser (NSBrowser sender, NSString title, NSInteger column)
+	{
+		return invokeObjcSelf!(bool, "browser:selectCellWithString:inColumn:", NSBrowser, NSString, NSInteger)(sender, title, column);
+	}
+
+	bool browser (NSBrowser sender, NSInteger row, NSInteger column)
+	{
+		return invokeObjcSelf!(bool, "browser:selectRow:inColumn:", NSBrowser, NSInteger, NSInteger)(sender, row, column);
+	}
+
+	bool browser (NSBrowser sender, NSInteger column)
+	{
+		return invokeObjcSelf!(bool, "browser:isColumnValid:", NSBrowser, NSInteger)(sender, column);
+	}
+
+	void browserWillScroll (NSBrowser sender)
+	{
+		return invokeObjcSelf!(void, "browserWillScroll:", NSBrowser)(sender);
+	}
+
+	void browserDidScroll (NSBrowser sender)
+	{
+		return invokeObjcSelf!(void, "browserDidScroll:", NSBrowser)(sender);
+	}
+
+	CGFloat browser (NSBrowser browser, NSInteger columnIndex, bool forUserResize, CGFloat suggestedWidth)
+	{
+		return invokeObjcSelf!(CGFloat, "browser:shouldSizeColumn:forUserResize:toWidth:", NSBrowser, NSInteger, bool, CGFloat)(browser, columnIndex, forUserResize, suggestedWidth);
+	}
+
+	CGFloat browser (NSBrowser browser, NSInteger columnIndex)
+	{
+		return invokeObjcSelf!(CGFloat, "browser:sizeToFitWidthOfColumn:", NSBrowser, NSInteger)(browser, columnIndex);
+	}
+
+	void browserColumnConfigurationDidChange (NSNotification notification)
+	{
+		return invokeObjcSelf!(void, "browserColumnConfigurationDidChange:", NSNotification)(notification);
+	}
+
+	bool browser (NSBrowser browser, NSInteger row, NSInteger column)
+	{
+		return invokeObjcSelf!(bool, "browser:shouldShowCellExpansionForRow:column:", NSBrowser, NSInteger, NSInteger)(browser, row, column);
+	}
+
+	bool browser (NSBrowser browser, NSIndexSet rowIndexes, NSInteger column, NSPasteboard pasteboard)
+	{
+		return invokeObjcSelf!(bool, "browser:writeRowsWithIndexes:inColumn:toPasteboard:", NSBrowser, NSIndexSet, NSInteger, NSPasteboard)(browser, rowIndexes, column, pasteboard);
+	}
+
+	NSArray browser (NSBrowser browser, NSURL dropDestination, NSIndexSet rowIndexes, NSInteger column)
+	{
+		return invokeObjcSelf!(NSArray, "browser:namesOfPromisedFilesDroppedAtDestination:forDraggedRowsWithIndexes:inColumn:", NSBrowser, NSURL, NSIndexSet, NSInteger)(browser, dropDestination, rowIndexes, column);
+	}
+
+	bool browser (NSBrowser browser, NSIndexSet rowIndexes, NSInteger column, NSEvent event)
+	{
+		return invokeObjcSelf!(bool, "browser:canDragRowsWithIndexes:inColumn:withEvent:", NSBrowser, NSIndexSet, NSInteger, NSEvent)(browser, rowIndexes, column, event);
+	}
+
+	NSImage browser (NSBrowser browser, NSIndexSet rowIndexes, NSInteger column, NSEvent event, NSPointPointer dragImageOffset)
+	{
+		return invokeObjcSelf!(NSImage, "browser:draggingImageForRowsWithIndexes:inColumn:withEvent:offset:", NSBrowser, NSIndexSet, NSInteger, NSEvent, NSPointPointer)(browser, rowIndexes, column, event, dragImageOffset);
+	}
+
+	uint browser (NSBrowser browser, INSDraggingInfo info, NSInteger* row, NSInteger* column, NSBrowserDropOperation* dropOperation)
+	{
+		return invokeObjcSelf!(uint, "browser:validateDrop:proposedRow:column:dropOperation:", NSBrowser, INSDraggingInfo, NSInteger*, NSInteger*, NSBrowserDropOperation*)(browser, info, row, column, dropOperation);
+	}
+
+	bool browser (NSBrowser browser, INSDraggingInfo info, NSInteger row, NSInteger column, uint dropOperation)
+	{
+		return invokeObjcSelf!(bool, "browser:acceptDrop:atRow:column:dropOperation:", NSBrowser, INSDraggingInfo, NSInteger, NSInteger, uint)(browser, info, row, column, dropOperation);
+	}
+
+	NSString browser (NSBrowser browser, NSInteger row, NSInteger column)
+	{
+		return invokeObjcSelf!(NSString, "browser:typeSelectStringForRow:inColumn:", NSBrowser, NSInteger, NSInteger)(browser, row, column);
+	}
+
+	bool browser (NSBrowser browser, NSEvent event, NSString searchString)
+	{
+		return invokeObjcSelf!(bool, "browser:shouldTypeSelectForEvent:withCurrentSearchString:", NSBrowser, NSEvent, NSString)(browser, event, searchString);
+	}
+
+	NSInteger browser (NSBrowser browser, NSInteger startRow, NSInteger endRow, NSInteger column, NSString searchString)
+	{
+		return invokeObjcSelf!(NSInteger, "browser:nextTypeSelectMatchFromRow:toRow:inColumn:forString:", NSBrowser, NSInteger, NSInteger, NSInteger, NSString)(browser, startRow, endRow, column, searchString);
+	}
+
+	//mixin ObjcBindMethod!(browser, "browser:numberOfRowsInColumn:");
+	//mixin ObjcBindMethod!(browser, "browser:createRowsForColumn:inMatrix:");
+	//mixin ObjcBindMethod!(browser, "browser:willDisplayCell:atRow:column:");
+	//mixin ObjcBindMethod!(browser, "browser:titleOfColumn:");
+	//mixin ObjcBindMethod!(browser, "browser:selectCellWithString:inColumn:");
+	//mixin ObjcBindMethod!(browser, "browser:selectRow:inColumn:");
+	//mixin ObjcBindMethod!(browser, "browser:isColumnValid:");
+	//mixin ObjcBindMethod!(browserWillScroll, "browserWillScroll:");
+	//mixin ObjcBindMethod!(browserDidScroll, "browserDidScroll:");
+	//mixin ObjcBindMethod!(browser, "browser:shouldSizeColumn:forUserResize:toWidth:");
+	//mixin ObjcBindMethod!(browser, "browser:sizeToFitWidthOfColumn:");
+	//mixin ObjcBindMethod!(browserColumnConfigurationDidChange, "browserColumnConfigurationDidChange:");
+	//mixin ObjcBindMethod!(browser, "browser:shouldShowCellExpansionForRow:column:");
+	//mixin ObjcBindMethod!(browser, "browser:writeRowsWithIndexes:inColumn:toPasteboard:");
+	//mixin ObjcBindMethod!(browser, "browser:namesOfPromisedFilesDroppedAtDestination:forDraggedRowsWithIndexes:inColumn:");
+	//mixin ObjcBindMethod!(browser, "browser:canDragRowsWithIndexes:inColumn:withEvent:");
+	//mixin ObjcBindMethod!(browser, "browser:draggingImageForRowsWithIndexes:inColumn:withEvent:offset:");
+	//mixin ObjcBindMethod!(browser, "browser:validateDrop:proposedRow:column:dropOperation:");
+	//mixin ObjcBindMethod!(browser, "browser:acceptDrop:atRow:column:dropOperation:");
+	//mixin ObjcBindMethod!(browser, "browser:typeSelectStringForRow:inColumn:");
+	//mixin ObjcBindMethod!(browser, "browser:shouldTypeSelectForEvent:withCurrentSearchString:");
+	//mixin ObjcBindMethod!(browser, "browser:nextTypeSelectMatchFromRow:toRow:inColumn:forString:");
+
+`;
+