Sorry I forgot to include the enums. Here they are. I will start working on correcting my errors today.<div><br></div><div>Thanks</div><div><div><br></div><div><div>public enum NSTableViewColumnAutoresizingStyle {</div><div>
<span class="Apple-tab-span" style="white-space:pre">                </span>NSTableViewNoColumnAutoresizing = 0,</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>NSTableViewUniformColumnAutoresizingStyle,</div><div>
<span class="Apple-tab-span" style="white-space:pre">                </span>NSTableViewSequentialColumnAutoresizingStyle,</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>NSTableViewReverseSequentialColumnAutoresizingStyle,</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>NSTableViewLastColumnOnlyAutoresizingStyle,</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>NSTableViewFirstColumnOnlyAutoresizingStyle</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>}</div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>public enum NSTableViewSelectionHighlightStyle {</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>NSTableViewSelectionHighlightStyleNone = -1,</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>NSTableViewSelectionHighlightStyleRegular = 0,</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>NSTableViewSelectionHighlightStyleSourceList = 1,</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>}</div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>public enum NSTableViewDraggingDestinationFeedbackStyle {</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>NSTableViewDraggingDestinationFeedbackStyleNone = -1,</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>NSTableViewDraggingDestinationFeedbackStyleRegular = 0,</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>NSTableViewDraggingDestinationFeedbackStyleSourceList = 1,</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>}</div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>public enum NSTableViewDropOperation {</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>NSTableViewDropOn,</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>NSTableViewDropAbove</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>}</div>
<br><div class="gmail_quote">On Thu, Apr 22, 2010 at 5:43 AM, Miguel de Icaza <span dir="ltr">&lt;<a href="mailto:miguel@novell.com">miguel@novell.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hello James,<br><br><div class="gmail_quote"><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>Here is a build-able copy of the NSTableview with the associated  classes</div>

</div></blockquote><div><br></div></div><div>Some feedback on the file:</div><div class="im"><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>
[BaseType (typeof (NSObject))]</div>
<div><span style="white-space:pre">        </span>interface NSTableColumn {</div>
<div><span style="white-space:pre">                </span>[Export (&quot;initWithIdentifier:&quot;)]</div><div><span style="white-space:pre">                </span>IntPtr InitWithIdentifier (NSObject identifier);</div></div></blockquote><div><br></div>

</div><div>All constructors need to become &quot;IntPtr Constructor&quot;, the name of the constructor is erased, that will become:</div><div><br></div><div>public NSTableColumn (NSObject identifier)</div><div class="im">
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div><span style="white-space:pre">                </span>[Export (&quot;headerCell&quot;)]</div><div><span style="white-space:pre">                </span>NSObject HeaderCell { get; set; }</div></div></blockquote><div><br></div></div><div>This should be an NSCell.</div>
<div class="im">
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>
<div><span style="white-space:pre">                </span>[Export (&quot;dataCell&quot;)]</div><div><span style="white-space:pre">                </span>NSObject DataCell { get; set; }</div></div></blockquote><div><br></div></div><div>So is this.</div>
<div class="im"><div>
<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>//[Export (&quot;sortDescriptorPrototype&quot;)]</div><div>

<span style="white-space:pre">                </span>//NSSortDescriptor SortDescriptorPrototype { get; set; }</div></div></blockquote><div><br></div></div><div>Could you also send your NSSortDescriptor?</div><div class="im"><div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div><span style="white-space:pre">                </span>[Export (&quot;resizingMask&quot;)]</div><div><span style="white-space:pre">                </span>uint ResizingMask { get; set; }</div></div></blockquote><div><br></div></div><div>We tend not to expose uint or ints for masks.   In this case, notice that the docs point to the possible values:</div>

<div><br></div><div><a href="http://developer.apple.com/mac/library/documentation/cocoa/reference/ApplicationKit/Classes/NSTableColumn_Class/Reference/Reference.html#//apple_ref/doc/constant_group/Resizing_Modes" target="_blank">http://developer.apple.com/mac/library/documentation/cocoa/reference/ApplicationKit/Classes/NSTableColumn_Class/Reference/Reference.html#//apple_ref/doc/constant_group/Resizing_Modes</a></div>

<div><br></div><div>You need to edit AppKit/Enums.cs to add the following:</div><div><br></div><div>[Flags]</div><div>public enum NSTableResizingMask {</div><div>   // The actual values.</div><div>}</div><div><br></div><div>

Then replace the int or uint value with this enum.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;tableColumns&quot;)]</div>


<div><span style="white-space:pre">                </span>NSArray TableColumns ();</div></div></blockquote><div><br></div><div>You need to lookup the actual type  of tableColumns in the documentation, and make this strongly typed.  I looked this up and the array contains NSTableColumn elements, so you have to change that to:</div>

<div><br></div><div>NSTableColumn [] TableColumns </div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;numberOfColumns&quot;)]</div>


<div><span style="white-space:pre">                </span>int NumberOfColumns ();</div></div></blockquote><div><br></div><div>Per the framework design guidelines, rename this to  ColumnCount and make it a property:</div><div><br></div>

<div>int ColumnCount { get; }</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;numberOfRows&quot;)]</div>

<div>
<span style="white-space:pre">                </span>int NumberOfRows ();</div></div></blockquote><div><br></div><div>same here:</div><div><br></div><div>    int RowCount { get;  }</div><div class="im"><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div><span style="white-space:pre">                </span>[Export (&quot;addTableColumn:&quot;)]</div><div><span style="white-space:pre">                </span>void AddTableColumn (NSTableColumn tableColumn);</div>
<div><br></div><div><span style="white-space:pre">                </span>[Export (&quot;removeTableColumn:&quot;)]</div><div><span style="white-space:pre">                </span>void RemoveTableColumn (NSTableColumn tableColumn);</div>
<div><br></div><div><span style="white-space:pre">                </span>[Export (&quot;moveColumn:toColumn:&quot;)]</div><div><span style="white-space:pre">                </span>void MoveColumntoColumn (int oldIndex, int newIndex);</div></div></blockquote>

<div><br></div></div><div>The identifier is a bad choice from the FDG perspective, use instead:</div><div><br></div><div>void MoveColumn</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div><span style="white-space:pre">                </span>[Export (&quot;columnWithIdentifier:&quot;)]</div><div><span style="white-space:pre">                </span>int ColumnWithIdentifier (NSObject identifier);</div></div></blockquote><div>
<br>
</div></div><div>Since C# supports method overloads there is no need to distinguish functionality based on the method name, so we need to group this and the next one into the same method, I suggest FindColumn.</div><div class="im">
<div>  </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;tableColumnWithIdentifier:&quot;)]</div><div><span style="white-space:pre">                </span>NSTableColumn TableColumnWithIdentifier (NSObject identifier);</div>

</div></blockquote><div><br></div></div><div>Per above, rename FindColumn.</div><div class="im"><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>
<span style="white-space:pre">                </span>[Export (&quot;reloadDataForRowIndexes:columnIndexes:&quot;)]</div>

<div><span style="white-space:pre">                </span>void ReloadDataForRowIndexescolumnIndexes (NSIndexSet rowIndexes, NSIndexSet columnIndexes );</div></div></blockquote><div><br></div></div><div>Notice that the name generated by the parser here is terrible.   The name contains the second part of the selector, but C# has no need for it.</div>

<div><br></div><div>So this method should be renamed &quot;ReloadData&quot;, it is just an overload that is more specific than the general one.</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div><br></div><div><span style="white-space:pre">                </span>[Export (&quot;editedColumn&quot;)]</div>
<div><span style="white-space:pre">                </span>int EditedColumn ();</div><div><br></div><div><span style="white-space:pre">                </span>[Export (&quot;editedRow&quot;)]</div><div><span style="white-space:pre">                </span>int EditedRow ();</div>


<div><br></div><div><span style="white-space:pre">                </span>[Export (&quot;clickedColumn&quot;)]</div><div><span style="white-space:pre">                </span>int ClickedColumn ();</div></div></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div>
<br></div><div><span style="white-space:pre">                </span>[Export (&quot;clickedRow&quot;)]</div><div><span style="white-space:pre">                </span>int ClickedRow ();</div></div></blockquote><div><br></div></div><div>All those four need to become read-only properties.</div>
<div class="im">
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>
<div><span style="white-space:pre">                </span>[Export (&quot;setIndicatorImage:inTableColumn:&quot;)]</div><div><span style="white-space:pre">                </span>void SetIndicatorImageinTableColumn (NSImage anImage, NSTableColumn tableColumn);</div>

</div></blockquote><div><br></div></div><div>Again: ugly identifier caused by the selector.   It shoudl become:</div><div><br></div><div>SetIndicatorImage (NSImage anImage, NSTableColumn inTableColumn)</div><div class="im">
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div><span style="white-space:pre">                </span>[Export (&quot;indicatorImageInTableColumn:&quot;)]</div><div><span style="white-space:pre">                </span>NSImage IndicatorImageInTableColumn (NSTableColumn tableColumn);</div>
</div>
</blockquote><div><br></div></div><div>This should become GetIndicatorImage (...)</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>
<div><span style="white-space:pre">                </span>[Export (&quot;canDragRowsWithIndexes:atPoint:&quot;)]</div>
<div><span style="white-space:pre">                </span>bool CanDragRowsWithIndexesatPoint (NSIndexSet rowIndexes, PointF mouseDownPoint );</div></div></blockquote><div><br></div></div><div>Same, should become CanDragRows, the indexes: and atPoint: are not relevant to the method name.</div>
<div class="im">
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;setDraggingSourceOperationMask:forLocal:&quot;)]</div>

<div><span style="white-space:pre">                </span>void SetDraggingSourceOperationMaskforLocal (NSDragOperation mask, bool isLocal );</div></div></blockquote><div><br></div></div><div>Same, should become SetDraggingSourceOperationMask</div>
<div class="im">
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;setDropRow:dropOperation:&quot;)]</div><div>

<span style="white-space:pre">                </span>void SetDropRowdropOperation (int row, NSTableViewDropOperation dropOperation);</div></div></blockquote><div><br></div></div><div>Same, should become SetDropRowDropOperation </div><div class="im">
<div><br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;selectAll:&quot;)]</div><div><span style="white-space:pre">                </span>void SelectAll (NSObject sender);</div>


<div><br></div><div><span style="white-space:pre">                </span>[Export (&quot;deselectAll:&quot;)]</div><div><span style="white-space:pre">                </span>void DeselectAll (NSObject sender);</div>
<div><br></div><div><span style="white-space:pre">                </span>[Export (&quot;selectColumnIndexes:byExtendingSelection:&quot;)]</div><div><span style="white-space:pre">                </span>void SelectColumnIndexesbyExtendingSelection (NSIndexSet indexes, bool extend );</div>

</div></blockquote><div><br></div></div><div>Same, should become SelectColumns (NSIndexSet columnIndexes, bool extendSelection)</div><div><br></div><div>Notice that we can make our parameter names more meaningful in the cases where we drop parts of the method name.</div>

<div><br></div><div>C# 4.0 will take allow developers to take advantage of this, like this:</div><div><br></div><div>SelectColumns (columnIndexes = x, extendSelection  = true)</div><div class="im"><div><br></div><div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div><span style="white-space:pre">                </span>[Export (&quot;selectRowIndexes:byExtendingSelection:&quot;)]</div><div><span style="white-space:pre">                </span>void SelectRowIndexesbyExtendingSelection (NSIndexSet indexes, bool extend );</div>

</div></blockquote><div><br></div></div><div>Same, now: SelectRows </div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;selectedColumnIndexes&quot;)]</div>

<div><span style="white-space:pre">                </span>NSIndexSet SelectedColumnIndexes ();</div></div></blockquote><div><br></div><div>Should become a read-only property.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div><span style="white-space:pre">                </span>[Export (&quot;selectedRowIndexes&quot;)]</div><div><span style="white-space:pre">                </span>NSIndexSet SelectedRowIndexes ();</div></div></blockquote><div><br></div><div>Should become a read-only property.</div>
<div class="im">
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;selectedColumn&quot;)]</div><div><span style="white-space:pre">                </span>int SelectedColumn ();</div>

<div>
<br></div><div><span style="white-space:pre">                </span>[Export (&quot;selectedRow&quot;)]</div><div><span style="white-space:pre">                </span>int SelectedRow ();</div></div></blockquote><div><br></div></div><div>Should become read-only properties.</div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;numberOfSelectedColumns&quot;)]</div><div>

<span style="white-space:pre">                </span>int NumberOfSelectedColumns ();</div></div></blockquote><div><br></div><div>-&gt; SelectedColumnCount</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div><span style="white-space:pre">                </span>[Export (&quot;numberOfSelectedRows&quot;)]</div><div><span style="white-space:pre">                </span>int NumberOfSelectedRows ();</div></div></blockquote><div><br></div><div>-&gt; SelectedRowCount</div>
<div class="im">
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;rectOfColumn:&quot;)]</div><div><span style="white-space:pre">                </span>RectangleF RectOfColumn (int column);</div>

</div></blockquote><div><br></div></div><div>-&gt; RectForColumn</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;rectOfRow:&quot;)]</div>

<div><span style="white-space:pre">                </span>RectangleF RectOfRow (int row);</div></div></blockquote><div><br></div></div><div>-&gt; RectOfRow. </div><div class="im"><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div><span style="white-space:pre">                </span>[Export (&quot;columnIndexesInRect:&quot;)]</div><div><span style="white-space:pre">                </span>NSIndexSet ColumnIndexesInRect (RectangleF rect);</div></div></blockquote><div>

<br></div></div><div>-&gt; GetColumnIndexesInRect </div><div class="im"><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;columnAtPoint:&quot;)]</div>

</div></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>int ColumnAtPoint (PointF point);</div></div></blockquote>

<div><br></div></div><div>-&gt; GetColumn (PointF atPoint)</div><div class="im"><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;rowAtPoint:&quot;)]</div>

<div><span style="white-space:pre">                </span>int RowAtPoint (PointF point);</div></div></blockquote><div><br></div></div><div>-&gt; GetRow (PointF atPoint)</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div><span style="white-space:pre">                </span>[Export (&quot;frameOfCellAtColumn:row:&quot;)]</div><div><span style="white-space:pre">                </span>RectangleF FrameOfCellAtColumnrow (int column, int row);</div></div></blockquote>

<div><br></div></div><div>-&gt;GetCellFrame (int column, int row)</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;preparedCellAtColumn:row:&quot;)]</div>

<div><span style="white-space:pre">                </span>NSCell PreparedCellAtColumnrow (int column, int row );</div></div></blockquote><div><br></div></div><div>-&gt;GetCell (int column, int row) </div><div class="im"><div><br></div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div><span style="white-space:pre">                </span>[Export (&quot;shouldFocusCell:atColumn:row:&quot;)]</div><div><span style="white-space:pre">                </span>bool ShouldFocusCellatColumnrow (NSCell cell, int column, int row );</div>

</div></blockquote><div><br></div></div><div>-&gt; ShouldFocusCell </div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;performClickOnCellAtColumn:row:&quot;)]</div>

<div><span style="white-space:pre">                </span>void PerformClickOnCellAtColumnrow (int column, int row );</div></div></blockquote><div><br></div></div><div>-&gt; PerformClick</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div><span style="white-space:pre">                </span>[Export (&quot;editColumn:row:withEvent:select:&quot;)]</div><div><span style="white-space:pre">                </span>void EditColumnrowwithEventselect (int column, int row, NSEvent theEvent, bool select);</div>

</div></blockquote><div><br></div></div><div>-&gt; EditColumn</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;drawRow:clipRect:&quot;)]</div>

<div><span style="white-space:pre">                </span>void DrawRowclipRect (int row, RectangleF clipRect);</div></div></blockquote><div><br></div></div><div>-&gt; DrawRow  </div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div><span style="white-space:pre">                </span>[Export (&quot;highlightSelectionInClipRect:&quot;)]</div><div><span style="white-space:pre">                </span>void HighlightSelectionInClipRect (RectangleF clipRect);</div></div></blockquote>

<div><br></div></div><div>-&gt; HighlightSelection (RectangleF inCliprect)</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>
<span style="white-space:pre">                </span>[Export (&quot;drawGridInClipRect:&quot;)]</div>
<div><span style="white-space:pre">                </span>void DrawGridInClipRect (RectangleF clipRect);</div></div></blockquote><div><br></div></div><div>-&gt; DrawGrid</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div><span style="white-space:pre">                </span>[Export (&quot;drawBackgroundInClipRect:&quot;)]</div><div><span style="white-space:pre">                </span>void DrawBackgroundInClipRect (RectangleF clipRect );</div></div></blockquote>

<div><br></div></div><div>-&gt; DrawBackground</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>//Detected properties</div>

<div><span style="white-space:pre">                </span>[Export (&quot;dataSource&quot;)][NullAllowed]</div>
<div><span style="white-space:pre">                </span>NSTableViewDataSource DataSource { get; set; }</div><div><br></div><div><span style="white-space:pre">                </span>[Export (&quot;delegate&quot;)][NullAllowed]</div>
<div><span style="white-space:pre">                </span>NSTableViewDelegate Delegate { get; set; }</div></div></blockquote><div><br></div></div><div>Apply the standard delegate transformation, make the above weakly typed (replace return value with NSObject) rename it to &quot;WeakDelegate&quot;</div>

<div>and add a new:</div><div><br></div><div>[Wrap (&quot;WeakDelegate&quot;)]</div><div>NSTableViewDelegate Delegate { get; set; }</div><div><br></div><div>This is necessary to allow developers to set delegates in the Objective-C style, when they out out of the strongly typed version that we offer.</div>

<div> </div><div>At this point, you will want to read how to turn the Objective-C delegate into C# events, you will need to decorate the interface with the Events/Delegates property for this.</div><div class="im"><div><br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div><span style="white-space:pre">                </span>[Export (&quot;gridStyleMask&quot;)]</div>
<div><span style="white-space:pre">                </span>uint GridStyleMask { get; set; }</div></div></blockquote><div><br></div></div><div>Needs to become strongly typed, with an enum.</div><div class="im"><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div><span style="white-space:pre">                </span>[Export (&quot;sortDescriptors&quot;)]</div>
<div><span style="white-space:pre">                </span>NSArray SortDescriptors { get; set; }</div></div></blockquote><div><br></div></div><div>The NSArray needs to become strongly typed, what are the elements of this?</div><div><br>
</div>
<div>The NSTableViewDelegate will need plenty of updates by sprinkling the proper EventArgs on each method:</div><div class="im"><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div><span style="white-space:pre">        </span>[BaseType (typeof (NSObject))]</div><div><span style="white-space:pre">        </span>[Model]</div>
<div><span style="white-space:pre">        </span>interface NSTableViewDelegate {</div><div><span style="white-space:pre">                </span>[Export (&quot;tableView:willDispayCell:forTableColumn:row:&quot;)]</div>
<div><span style="white-space:pre">                </span>void TableViewwillDisplayCellforTableColumnrow (NSTableView tableView, NSObject cell, NSTableColumn tableColumn, int</div></div></blockquote><div><br></div></div><div>In delegates, the first parameter is usually the sender, so the first part of the selector name is useless, so we need to extract the actual meaning of this method, which is &quot;WillDisplayCell&quot;</div>

<div><br></div><div>So that needs to become &quot;WillDisplayCell&quot;</div><div> </div><div>The following return values, so in addition to the EventArgs that you need to sprinkle, you need to look in the docs what is the default return value if these methods are not implemented, and then do:</div>

<div><br></div><div>[DefaultValue (...)]</div><div><br></div><div>When no docs are available, we need to make an educated guess:</div><div class="im"><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div><span style="white-space:pre">                </span>[Export (&quot;tableView:shouldEditTableColumn:row:&quot;)]</div>
<div><span style="white-space:pre">                </span>bool TableViewshouldEditTableColumnrow (NSTableView tableView, NSTableColumn tableColumn, int row);</div></div></blockquote><div><br></div></div><div>-&gt; ShouldEditTableColumn</div>

<div><br></div><div>In this case, the docs say nothing about what happens if the user does not implement the method, so we are going to assume that the default should be &quot;no&quot;, so we do: DefaultValoue (false)</div>
<div class="im">
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;selectionShouldChangeInTableView:&quot;)]</div>


<div><span style="white-space:pre">                </span>bool SelectionShouldChangeInTableView (NSTableView tableView);</div></div></blockquote><div><br></div></div><div>-&gt; ShouldSelectionChange </div><div class="im"><div><br></div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div><span style="white-space:pre">                </span>[Export (&quot;tableView:shouldSelectRow:&quot;)]</div>
<div><span style="white-space:pre">                </span>bool TableViewshouldSelectRow (NSTableView tableView, int row);</div></div></blockquote><div><br></div></div><div>-&gt; ShouldSelectRow</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div><span style="white-space:pre">                </span>[Export (&quot;tableView:selectionIndexesForProposedSelection:&quot;)]</div>
<div><span style="white-space:pre">                </span>NSIndexSet TableViewselectionIndexesForProposedSelection (NSTableView tableView, NSIndexSet proposedSelectionIndexes);</div></div></blockquote><div><br></div></div><div>-&gt; GetSelectionIndexes</div>
<div class="im">
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><br></div><div><span style="white-space:pre">                </span>[Export (&quot;tableView:shouldSelectTableColumn:&quot;)]</div>


<div><span style="white-space:pre">                </span>bool TableViewshouldSelectTableColumn (NSTableView tableView, NSTableColumn tableColumn);</div></div></blockquote><div><br></div></div><div>-&gt; ShouldSelectTableColumn</div><div class="im">
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;tableView:mouseDownInHeaderOfTableColumn:&quot;)]</div>


<div><span style="white-space:pre">                </span>void TableViewmouseDownInHeaderOfTableColumn (NSTableView tableView, NSTableColumn tableColumn);</div></div></blockquote><div><br></div></div><div>-&gt; MouseDown </div><div class="im">
<div><br></div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;tableView:didClickTableColumn:&quot;)]</div>
<div><span style="white-space:pre">                </span>void TableViewdidClickTableColumn (NSTableView tableView, NSTableColumn tableColumn);</div></div></blockquote><div><br></div></div><div>-&gt; DidClickTableColumn </div><div class="im">
<div><br></div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;tableView:didDragTableColumn:&quot;)]</div>
<div><span style="white-space:pre">                </span>void TableViewdidDragTableColumn (NSTableView tableView, NSTableColumn tableColumn);</div></div></blockquote><div><br></div></div><div>DidDragTabelColumn</div><div class="im"><div>
 </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div><span style="white-space:pre">                </span>[Export (&quot;tableView:heightOfRow:&quot;)]</div><div><span style="white-space:pre">                </span>float TableViewheightOfRow (NSTableView tableView, int row );</div></div></blockquote>

<div><br></div></div><div>-&gt; GetRowHeight</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;tableView:typeSelectStringForTableColumn:row:&quot;)]</div>

<div><span style="white-space:pre">                </span>string TableViewtypeSelectStringForTableColumnrow (NSTableView tableView, NSTableColumn tableColumn, int row );</div></div></blockquote><div><br></div></div><div>-&gt; GetSelectString</div>
<div class="im">
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;tableView:nextTypeSelectMatchFromRow:toRow:forString:&quot;)]</div>

<div><span style="white-space:pre">                </span>int TableViewnextTypeSelectMatchFromRowtoRowforString (NSTableView tableView, int startRow, int endRow, string </div></div></blockquote><div><br></div></div><div>-&gt; GetNextTypeSelectMatch </div>
<div class="im">
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;tableView:shouldTypeSelectForEvent:withCurrentSearchString:&quot;)]</div>

<div><span style="white-space:pre">                </span>bool TableViewshouldTypeSelectForEventwithCurrentSearchString (NSTableView tableView, NSEvent theEvent, string searchString );</div></div></blockquote><div><br></div></div><div>
-&gt; ShouldTypeSelect</div><div class="im">
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;tableView:shouldShowCellExpansionForTableColumn:row:&quot;)]</div>

<div><span style="white-space:pre">                </span>bool TableViewshouldShowCellExpansionForTableColumnrow (NSTableView tableView, NSTableColumn tableColumn, int row );</div></div></blockquote><div><br></div></div><div>-&gt; ShouldShowCellExpansion</div>
<div class="im">
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;tableView:shouldTrackCell:forTableColumn:row:&quot;)]</div>

<div><span style="white-space:pre">                </span>bool TableViewshouldTrackCellforTableColumnrow (NSTableView tableView, NSCell cell, NSTableColumn tableColumn, int row </div></div></blockquote><div><br></div></div><div>-&gt; ShouldTrackCell</div>
<div class="im">
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;tableView:dataCellForTableColumn:row:&quot;)]</div>

<div><span style="white-space:pre">                </span>NSCell TableViewdataCellForTableColumnrow (NSTableView tableView, NSTableColumn tableColumn, int row );</div></div></blockquote><div><br></div></div><div>-&gt; GetCell</div><div class="im">
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>
<div><br></div><div><span style="white-space:pre">                </span>[Export (&quot;tableView:isGroupRow:&quot;)]</div><div><span style="white-space:pre">                </span>bool TableViewisGroupRow (NSTableView tableView, int row );</div></div>

</blockquote><div><br></div></div><div>-&gt; IsGroupRow</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;tableView:sizeToFitWidthOfColumn:&quot;)]</div>

<div><span style="white-space:pre">                </span>float TableViewsizeToFitWidthOfColumn (NSTableView tableView, int column );</div></div></blockquote><div><br></div></div><div>-&gt; GetSizeToFitColumnWidth</div><div class="im">
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div><span style="white-space:pre">                </span>[Export (&quot;tableView:shouldReorderColumn:toColumn:&quot;)]</div><div><span style="white-space:pre">                </span>bool TableViewshouldReorderColumntoColumn (NSTableView tableView, int columnIndex, int newColumnIndex );</div>

</div></blockquote><div><br></div></div><div>-&gt; ShouldReorder</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;tableViewSelectionDidChange:&quot;)]</div>

<div><span style="white-space:pre">                </span>void TableViewSelectionDidChange (NSNotification notification);</div></div></blockquote><div><br></div></div><div>-&gt; SelectionDidChange</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div><span style="white-space:pre">                </span>[Export (&quot;tableViewColumnDidMove:&quot;)]</div><div><span style="white-space:pre">                </span>void TableViewColumnDidMove (NSNotification notification);</div></div></blockquote>

<div><br></div></div><div>-&gt; ColumnDidMove</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;tableViewColumnDidResize:&quot;)]</div>

<div><span style="white-space:pre">                </span>void TableViewColumnDidResize (NSNotification notification);</div></div></blockquote><div><br></div></div><div>-&gt; ColumnDidResize </div><div class="im"><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div><span style="white-space:pre">                </span>[Export (&quot;tableViewSelectionIsChanging:&quot;)]</div><div><span style="white-space:pre">                </span>void TableViewSelectionIsChanging (NSNotification notification);</div>

</div></blockquote><div><br></div></div><div>-&gt; SelectionIsChanging</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">        </span>[BaseType (typeof (NSObject))]</div>

<div><span style="white-space:pre">        </span>[Model]</div>
<div><span style="white-space:pre">        </span>interface NSTableViewDataSource {</div><div><span style="white-space:pre">                </span>[Export (&quot;numberOfRowsInTableView:&quot;)]</div>
<div><span style="white-space:pre">                </span>int NumberOfRowsInTableView (NSTableView tableView);</div></div></blockquote><div><br></div></div><div>-&gt; GetRowCount</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div><span style="white-space:pre">                </span>[Export (&quot;tableView:objectValueForTableColumn:row:&quot;)]</div>
<div><span style="white-space:pre">                </span>NSObject TableViewobjectValueForTableColumnrow (NSTableView tableView, NSTableColumn tableColumn, int row);</div></div></blockquote><div><br></div></div><div>-&gt; GetObjectValue</div>
<div class="im">
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><br></div><div><span style="white-space:pre">                </span>[Export (&quot;tableView:setObjectValue:forTableColumn:row:&quot;)]</div>


<div><span style="white-space:pre">                </span>void TableViewsetObjectValueforTableColumnrow (NSTableView tableView, NSObject theObject, NSTableColumn tableColumn, </div></div></blockquote><div><br></div></div><div>-&gt; SetObjectValue</div>
<div class="im">
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;tableView:sortDescriptorsDidChange:&quot;)]</div>


<div><span style="white-space:pre">                </span>void TableViewsortDescriptorsDidChange (NSTableView tableView, NSArray oldDescriptors );</div></div></blockquote><div><br></div></div><div>-&gt; SortDescriptorChanged</div><div class="im">
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;tableView:writeRowsWithIndexes:toPasteboard:&quot;)]</div>


<div><span style="white-space:pre">                </span>bool TableViewwriteRowsWithIndexestoPasteboard (NSTableView tableView, NSIndexSet rowIndexes, NSPasteboard pboard );</div></div></blockquote><div><br></div></div><div>-&gt; WriteRows </div>
<div class="im">
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;tableView:validateDrop:proposedRow:proposedDropOperation:&quot;)]</div>


<div><span style="white-space:pre">                </span>NSDragOperation TableViewvalidateDropproposedRowproposedDropOperation (NSTableView tableView, NSDraggingInfo info, int row, NSTableViewDropOperation dropOperation);</div></div>

</blockquote><div><br></div></div><div>-&gt; ValidateDrop</div><div class="im"><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;tableView:acceptDrop:row:dropOperation:&quot;)]</div>

<div><span style="white-space:pre">                </span>bool TableViewacceptDroprowdropOperation (NSTableView tableView, NSDraggingInfo info, int row, NSTableViewDropOperation dropOperation);</div></div></blockquote><div><br></div></div>
<div>
-&gt; AcceptDrop</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;tableView:namesOfPromisedFilesDroppedAtDestination:forDraggedRowsWithIndexes:&quot;)]</div>

<div><span style="white-space:pre">                </span>NSArray TableViewnamesOfPromisedFilesDroppedAtDestinationforDraggedRowsWithIndexes (NSTableView tableView, NSUrl dropDestination, NSIndexSet indexSet );</div></div></blockquote>

<div><br></div></div><div>-&gt; FilesDropped</div><div class="im"><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">        </span>[BaseType (typeof (NSTextFieldCell))]</div>

<div><span style="white-space:pre">        </span>interface NSTableHeaderCell {</div>
<div><span style="white-space:pre">                </span>[Export (&quot;drawSortIndicatorWithFrame:inView:ascending:priority:&quot;)]</div><div><span style="white-space:pre">                </span>void DrawSortIndicatorWithFrameinViewascendingpriority (RectangleF cellFrame, NSView controlView, bool ascending, int priority );</div>

</div></blockquote><div><br></div></div><div>-&gt; DrawSortIndicator</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre">                </span>[Export (&quot;sortIndicatorRectForBounds:&quot;)]</div>

<div><span style="white-space:pre">                </span>RectangleF SortIndicatorRectForBounds (RectangleF theRect );</div></div></blockquote><div><br></div></div><div>GetSortIndicatorRect</div><div class="im"><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div><span style="white-space:pre">        </span>[BaseType (typeof (NSView))]</div><div><span style="white-space:pre">        </span>interface NSTableHeaderView {</div><div><span style="white-space:pre">                </span>[Export (&quot;draggedColumn&quot;)]</div>


<div><span style="white-space:pre">                </span>int DraggedColumn ();</div><div><br></div><div><span style="white-space:pre">                </span>[Export (&quot;draggedDistance&quot;)]</div><div>
<span style="white-space:pre">                </span>float DraggedDistance ();</div><div><br></div><div><span style="white-space:pre">                </span>[Export (&quot;resizedColumn&quot;)]</div><div>
<span style="white-space:pre">                </span>int ResizedColumn ();</div></div></blockquote><div><br></div></div><div>Those three need to become read-only properties</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div><span style="white-space:pre">                </span>[Export (&quot;headerRectOfColumn:&quot;)]</div><div>
<span style="white-space:pre">                </span>RectangleF HeaderRectOfColumn (int column);</div></div></blockquote><div><br></div></div><div>-&gt; GetHeaderRect</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div><br></div><div><span style="white-space:pre">                </span>[Export (&quot;columnAtPoint:&quot;)]</div>
<div><span style="white-space:pre">                </span>int ColumnAtPoint (PointF point);</div></div></blockquote><div><br></div></div><div>-&gt; GetColumn  </div><div><span style="white-space:pre">        </span></div>
<div><br></div><font color="#888888"><div>Miguel.</div></font></div>
</blockquote></div><br></div></div>