diff dstep/appkit/NSMatrix.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/NSMatrix.d	Sun Jan 03 22:06:11 2010 +0100
@@ -0,0 +1,549 @@
+/**
+ * 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.NSMatrix;
+
+import dstep.appkit.NSCell;
+import dstep.appkit.NSColor;
+import dstep.appkit.NSControl;
+import dstep.appkit.NSEvent;
+import dstep.appkit.NSText;
+import dstep.appkit.NSUserInterfaceValidation;
+import dstep.foundation.NSArray;
+import dstep.foundation.NSGeometry;
+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;
+
+alias NSUInteger NSMatrixMode;
+
+private alias extern (C) NSInteger function (id, id, void *) Comperator; 
+
+enum
+{
+	NSRadioModeMatrix = 0,
+	NSHighlightModeMatrix = 1,
+	NSListModeMatrix = 2,
+	NSTrackModeMatrix = 3
+}
+
+struct _MFlags
+{
+	uint reservedMatrix;
+	uint browserOptimizationsEnabled;
+	uint needsRedrawBeforeFirstLiveResizeCache;
+	uint tmpAllowNonVisibleCellsToBecomeFirstResponder;
+	uint subclassIsSafeForLiveResize;
+	uint hasCachedSubclassIsSafeForLiveResize;
+	uint liveResizeImageCacheingEnabled;
+	uint checkForSimpleTrackingMode;
+	uint useSimpleTrackingMode;
+	uint refusesFirstResponder;
+	uint dontScroll;
+	uint changingSelectionWithKeyboard;
+	uint onlySetKeyCell;
+	uint currentlySelectingCell;
+	uint allowsIncrementalSearching;
+	uint tabKeyTraversesCellsExplicitlySet;
+	uint tabKeyTraversesCells;
+	uint drawingAncestor;
+	uint autosizeCells;
+	uint drawsBackground;
+	uint drawsCellBackground;
+	uint selectionByRect;
+	uint autoscroll;
+	uint allowEmptySel;
+	uint listMode;
+	uint radioMode;
+	uint highlightMode;
+}
+
+class NSMatrix : NSControl, INSUserInterfaceValidations
+{
+	mixin (ObjcWrap);
+
+	NSMatrix initWithFrame (NSRect frameRect)
+	{
+		id result = invokeObjcSelf!(id, "initWithFrame:", NSRect)(frameRect);
+		return result is this.objcObject ? this : (result !is null ? new NSMatrix(result) : null);
+	}
+
+	this (NSRect frameRect)
+	{
+		super(NSMatrix.alloc.initWithFrame(frameRect).objcObject);
+	}
+
+	NSMatrix initWithFrame (NSRect frameRect, uint aMode, NSCell aCell, NSInteger rowsHigh, NSInteger colsWide)
+	{
+		id result = invokeObjcSelf!(id, "initWithFrame:mode:prototype:numberOfRows:numberOfColumns:", NSRect, uint, NSCell, NSInteger, NSInteger)(frameRect, aMode, aCell, rowsHigh, colsWide);
+		return result is this.objcObject ? this : (result !is null ? new NSMatrix(result) : null);
+	}
+
+	this (NSRect frameRect, uint aMode, NSCell aCell, NSInteger rowsHigh, NSInteger colsWide)
+	{
+		super(NSMatrix.alloc.initWithFrame(frameRect, aMode, aCell, rowsHigh, colsWide).objcObject);
+	}
+
+	NSMatrix initWithFrame (NSRect frameRect, uint aMode, Class factoryId, NSInteger rowsHigh, NSInteger colsWide)
+	{
+		id result = invokeObjcSelf!(id, "initWithFrame:mode:cellClass:numberOfRows:numberOfColumns:", NSRect, uint, Class, NSInteger, NSInteger)(frameRect, aMode, factoryId, rowsHigh, colsWide);
+		return result is this.objcObject ? this : (result !is null ? new NSMatrix(result) : null);
+	}
+
+	this (NSRect frameRect, uint aMode, Class factoryId, NSInteger rowsHigh, NSInteger colsWide)
+	{
+		super(NSMatrix.alloc.initWithFrame(frameRect, aMode, factoryId, rowsHigh, colsWide).objcObject);
+	}
+
+	void setCellClass (Class factoryId)
+	{
+		return invokeObjcSelf!(void, "setCellClass:", Class)(factoryId);
+	}
+
+	Class cellClass ()
+	{
+		return invokeObjcSelf!(Class, "cellClass");
+	}
+
+	Object prototype ()
+	{
+		return invokeObjcSelf!(Object, "prototype");
+	}
+
+	void setPrototype (NSCell aCell)
+	{
+		return invokeObjcSelf!(void, "setPrototype:", NSCell)(aCell);
+	}
+
+	NSCell makeCellAtRow (NSInteger row, NSInteger col)
+	{
+		return invokeObjcSelf!(NSCell, "makeCellAtRow:column:", NSInteger, NSInteger)(row, col);
+	}
+
+	uint mode ()
+	{
+		return invokeObjcSelf!(uint, "mode");
+	}
+
+	void setMode (uint aMode)
+	{
+		return invokeObjcSelf!(void, "setMode:", uint)(aMode);
+	}
+
+	void setAllowsEmptySelection (bool flag)
+	{
+		return invokeObjcSelf!(void, "setAllowsEmptySelection:", bool)(flag);
+	}
+
+	bool allowsEmptySelection ()
+	{
+		return invokeObjcSelf!(bool, "allowsEmptySelection");
+	}
+
+	void sendAction (SEL aSelector, Object anObject, bool flag)
+	{
+		return invokeObjcSelf!(void, "sendAction:to:forAllCells:", SEL, Object, bool)(aSelector, anObject, flag);
+	}
+
+	NSArray cells ()
+	{
+		return invokeObjcSelf!(NSArray, "cells");
+	}
+
+	void sortUsingSelector (SEL comparator)
+	{
+		return invokeObjcSelf!(void, "sortUsingSelector:", SEL)(comparator);
+	}
+
+	void sortUsingFunction (Comperator compare, void* context)
+	{
+		return invokeObjcSelf!(void, "sortUsingFunction:context:", Comperator, void*)(compare, context);
+	}
+
+	Object selectedCell ()
+	{
+		return invokeObjcSelf!(Object, "selectedCell");
+	}
+
+	NSArray selectedCells ()
+	{
+		return invokeObjcSelf!(NSArray, "selectedCells");
+	}
+
+	NSInteger selectedRow ()
+	{
+		return invokeObjcSelf!(NSInteger, "selectedRow");
+	}
+
+	NSInteger selectedColumn ()
+	{
+		return invokeObjcSelf!(NSInteger, "selectedColumn");
+	}
+
+	void setSelectionByRect (bool flag)
+	{
+		return invokeObjcSelf!(void, "setSelectionByRect:", bool)(flag);
+	}
+
+	bool isSelectionByRect ()
+	{
+		return invokeObjcSelf!(bool, "isSelectionByRect");
+	}
+
+	void setSelectionFrom (NSInteger startPos, NSInteger endPos, NSInteger anchorPos, bool lit)
+	{
+		return invokeObjcSelf!(void, "setSelectionFrom:to:anchor:highlight:", NSInteger, NSInteger, NSInteger, bool)(startPos, endPos, anchorPos, lit);
+	}
+
+	void deselectSelectedCell ()
+	{
+		return invokeObjcSelf!(void, "deselectSelectedCell");
+	}
+
+	void deselectAllCells ()
+	{
+		return invokeObjcSelf!(void, "deselectAllCells");
+	}
+
+	void selectCellAtRow (NSInteger row, NSInteger col)
+	{
+		return invokeObjcSelf!(void, "selectCellAtRow:column:", NSInteger, NSInteger)(row, col);
+	}
+
+	void selectAll (Object sender)
+	{
+		return invokeObjcSelf!(void, "selectAll:", Object)(sender);
+	}
+
+	bool selectCellWithTag (NSInteger anInt)
+	{
+		return invokeObjcSelf!(bool, "selectCellWithTag:", NSInteger)(anInt);
+	}
+
+	NSSize cellSize ()
+	{
+		return invokeObjcSelf!(NSSize, "cellSize");
+	}
+
+	void setCellSize (NSSize aSize)
+	{
+		return invokeObjcSelf!(void, "setCellSize:", NSSize)(aSize);
+	}
+
+	NSSize intercellSpacing ()
+	{
+		return invokeObjcSelf!(NSSize, "intercellSpacing");
+	}
+
+	void setIntercellSpacing (NSSize aSize)
+	{
+		return invokeObjcSelf!(void, "setIntercellSpacing:", NSSize)(aSize);
+	}
+
+	void setScrollable (bool flag)
+	{
+		return invokeObjcSelf!(void, "setScrollable:", bool)(flag);
+	}
+
+	void setBackgroundColor (NSColor color)
+	{
+		return invokeObjcSelf!(void, "setBackgroundColor:", NSColor)(color);
+	}
+
+	NSColor backgroundColor ()
+	{
+		return invokeObjcSelf!(NSColor, "backgroundColor");
+	}
+
+	void setCellBackgroundColor (NSColor color)
+	{
+		return invokeObjcSelf!(void, "setCellBackgroundColor:", NSColor)(color);
+	}
+
+	NSColor cellBackgroundColor ()
+	{
+		return invokeObjcSelf!(NSColor, "cellBackgroundColor");
+	}
+
+	void setDrawsCellBackground (bool flag)
+	{
+		return invokeObjcSelf!(void, "setDrawsCellBackground:", bool)(flag);
+	}
+
+	bool drawsCellBackground ()
+	{
+		return invokeObjcSelf!(bool, "drawsCellBackground");
+	}
+
+	void setDrawsBackground (bool flag)
+	{
+		return invokeObjcSelf!(void, "setDrawsBackground:", bool)(flag);
+	}
+
+	bool drawsBackground ()
+	{
+		return invokeObjcSelf!(bool, "drawsBackground");
+	}
+
+	void setState (NSInteger value, NSInteger row, NSInteger col)
+	{
+		return invokeObjcSelf!(void, "setState:atRow:column:", NSInteger, NSInteger, NSInteger)(value, row, col);
+	}
+
+	void getNumberOfRows (NSInteger* rowCount, NSInteger* colCount)
+	{
+		return invokeObjcSelf!(void, "getNumberOfRows:columns:", NSInteger*, NSInteger*)(rowCount, colCount);
+	}
+
+	NSInteger numberOfRows ()
+	{
+		return invokeObjcSelf!(NSInteger, "numberOfRows");
+	}
+
+	NSInteger numberOfColumns ()
+	{
+		return invokeObjcSelf!(NSInteger, "numberOfColumns");
+	}
+
+	Object cellAtRow (NSInteger row, NSInteger col)
+	{
+		return invokeObjcSelf!(Object, "cellAtRow:column:", NSInteger, NSInteger)(row, col);
+	}
+
+	NSRect cellFrameAtRow (NSInteger row, NSInteger col)
+	{
+		return invokeObjcSelf!(NSRect, "cellFrameAtRow:column:", NSInteger, NSInteger)(row, col);
+	}
+
+	bool getRow (NSInteger* row, NSInteger* col, NSCell aCell)
+	{
+		return invokeObjcSelf!(bool, "getRow:column:ofCell:", NSInteger*, NSInteger*, NSCell)(row, col, aCell);
+	}
+
+	bool getRow (NSInteger* row, NSInteger* col, NSPoint aPoint)
+	{
+		return invokeObjcSelf!(bool, "getRow:column:forPoint:", NSInteger*, NSInteger*, NSPoint)(row, col, aPoint);
+	}
+
+	void renewRows (NSInteger newRows, NSInteger newCols)
+	{
+		return invokeObjcSelf!(void, "renewRows:columns:", NSInteger, NSInteger)(newRows, newCols);
+	}
+
+	void putCell (NSCell newCell, NSInteger row, NSInteger col)
+	{
+		return invokeObjcSelf!(void, "putCell:atRow:column:", NSCell, NSInteger, NSInteger)(newCell, row, col);
+	}
+
+	void addRow ()
+	{
+		return invokeObjcSelf!(void, "addRow");
+	}
+
+	void addRowWithCells (NSArray newCells)
+	{
+		return invokeObjcSelf!(void, "addRowWithCells:", NSArray)(newCells);
+	}
+
+	void insertRow (NSInteger row)
+	{
+		return invokeObjcSelf!(void, "insertRow:", NSInteger)(row);
+	}
+
+	void insertRow (NSInteger row, NSArray newCells)
+	{
+		return invokeObjcSelf!(void, "insertRow:withCells:", NSInteger, NSArray)(row, newCells);
+	}
+
+	void removeRow (NSInteger row)
+	{
+		return invokeObjcSelf!(void, "removeRow:", NSInteger)(row);
+	}
+
+	void addColumn ()
+	{
+		return invokeObjcSelf!(void, "addColumn");
+	}
+
+	void addColumnWithCells (NSArray newCells)
+	{
+		return invokeObjcSelf!(void, "addColumnWithCells:", NSArray)(newCells);
+	}
+
+	void insertColumn (NSInteger column)
+	{
+		return invokeObjcSelf!(void, "insertColumn:", NSInteger)(column);
+	}
+
+	void insertColumn (NSInteger column, NSArray newCells)
+	{
+		return invokeObjcSelf!(void, "insertColumn:withCells:", NSInteger, NSArray)(column, newCells);
+	}
+
+	void removeColumn (NSInteger col)
+	{
+		return invokeObjcSelf!(void, "removeColumn:", NSInteger)(col);
+	}
+
+	Object cellWithTag (NSInteger anInt)
+	{
+		return invokeObjcSelf!(Object, "cellWithTag:", NSInteger)(anInt);
+	}
+
+	SEL doubleAction ()
+	{
+		return invokeObjcSelf!(SEL, "doubleAction");
+	}
+
+	void setDoubleAction (SEL aSelector)
+	{
+		return invokeObjcSelf!(void, "setDoubleAction:", SEL)(aSelector);
+	}
+
+	void setAutosizesCells (bool flag)
+	{
+		return invokeObjcSelf!(void, "setAutosizesCells:", bool)(flag);
+	}
+
+	bool autosizesCells ()
+	{
+		return invokeObjcSelf!(bool, "autosizesCells");
+	}
+
+	void sizeToCells ()
+	{
+		return invokeObjcSelf!(void, "sizeToCells");
+	}
+
+	void setValidateSize (bool flag)
+	{
+		return invokeObjcSelf!(void, "setValidateSize:", bool)(flag);
+	}
+
+	void drawCellAtRow (NSInteger row, NSInteger col)
+	{
+		return invokeObjcSelf!(void, "drawCellAtRow:column:", NSInteger, NSInteger)(row, col);
+	}
+
+	void highlightCell (bool flag, NSInteger row, NSInteger col)
+	{
+		return invokeObjcSelf!(void, "highlightCell:atRow:column:", bool, NSInteger, NSInteger)(flag, row, col);
+	}
+
+	void setAutoscroll (bool flag)
+	{
+		return invokeObjcSelf!(void, "setAutoscroll:", bool)(flag);
+	}
+
+	bool isAutoscroll ()
+	{
+		return invokeObjcSelf!(bool, "isAutoscroll");
+	}
+
+	void scrollCellToVisibleAtRow (NSInteger row, NSInteger col)
+	{
+		return invokeObjcSelf!(void, "scrollCellToVisibleAtRow:column:", NSInteger, NSInteger)(row, col);
+	}
+
+	NSInteger mouseDownFlags ()
+	{
+		return invokeObjcSelf!(NSInteger, "mouseDownFlags");
+	}
+
+	void mouseDown (NSEvent theEvent)
+	{
+		return invokeObjcSelf!(void, "mouseDown:", NSEvent)(theEvent);
+	}
+
+	bool performKeyEquivalent (NSEvent theEvent)
+	{
+		return invokeObjcSelf!(bool, "performKeyEquivalent:", NSEvent)(theEvent);
+	}
+
+	bool sendAction ()
+	{
+		return invokeObjcSelf!(bool, "sendAction");
+	}
+
+	void sendDoubleAction ()
+	{
+		return invokeObjcSelf!(void, "sendDoubleAction");
+	}
+
+	Object delegate_ ()
+	{
+		return invokeObjcSelf!(Object, "delegate");
+	}
+
+	void setDelegate (Object anObject)
+	{
+		return invokeObjcSelf!(void, "setDelegate:", Object)(anObject);
+	}
+
+	bool textShouldBeginEditing (NSText textObject)
+	{
+		return invokeObjcSelf!(bool, "textShouldBeginEditing:", NSText)(textObject);
+	}
+
+	bool textShouldEndEditing (NSText textObject)
+	{
+		return invokeObjcSelf!(bool, "textShouldEndEditing:", NSText)(textObject);
+	}
+
+	void textDidBeginEditing (NSNotification notification)
+	{
+		return invokeObjcSelf!(void, "textDidBeginEditing:", NSNotification)(notification);
+	}
+
+	void textDidEndEditing (NSNotification notification)
+	{
+		return invokeObjcSelf!(void, "textDidEndEditing:", NSNotification)(notification);
+	}
+
+	void textDidChange (NSNotification notification)
+	{
+		return invokeObjcSelf!(void, "textDidChange:", NSNotification)(notification);
+	}
+
+	void selectText (Object sender)
+	{
+		return invokeObjcSelf!(void, "selectText:", Object)(sender);
+	}
+
+	Object selectTextAtRow (NSInteger row, NSInteger col)
+	{
+		return invokeObjcSelf!(Object, "selectTextAtRow:column:", NSInteger, NSInteger)(row, col);
+	}
+
+	bool acceptsFirstMouse (NSEvent theEvent)
+	{
+		return invokeObjcSelf!(bool, "acceptsFirstMouse:", NSEvent)(theEvent);
+	}
+
+	void resetCursorRects ()
+	{
+		return invokeObjcSelf!(void, "resetCursorRects");
+	}
+
+	void setToolTip (NSString toolTipString, NSCell cell)
+	{
+		return invokeObjcSelf!(void, "setToolTip:forCell:", NSString, NSCell)(toolTipString, cell);
+	}
+
+	NSString toolTipForCell (NSCell cell)
+	{
+		return invokeObjcSelf!(NSString, "toolTipForCell:", NSCell)(cell);
+	}
+
+	bool validateUserInterfaceItem (INSValidatedUserInterfaceItem anItem)
+	{
+		return invokeObjcSelf!(bool, "validateUserInterfaceItem:", INSValidatedUserInterfaceItem)(anItem);
+	}
+}
+