Mercurial > projects > dstep
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); + } +} +