// In drag and drop, used to specify a dropOperation. For example, given a table with N rows (numbered with row 0 at the top visually), a row of N-1 and operation of NSTableViewDropOn would specify a drop on the last row. To specify a drop below the last row, one would use a row of N and NSTableViewDropAbove for the operation.
staticint_moveRow=-1;
-(BOOL)tableView:(NSTableView*)tv
writeRows:(NSArray*)rows
toPasteboard:(NSPasteboard*)pboard
// This method is called after it has been determined that a drag should begin, but before the drag has been started. To refuse the drag, return NO. To start a drag, return YES and place the drag data onto the pasteboard (data, owner, etc...). The drag image and other drag related information will be set up and provided by the table view once this call returns with YES. The rows array is the list of row numbers that will be participating in the drag.
-(BOOL)tableView:(NSTableView*)o_tv
writeRows:(NSArray*)o_rows
toPasteboard:(NSPasteboard*)o_pasteboard
{
introwCount=[rowscount];
inti_rows=[o_rowscount];
NSArray*o_filenames=[NSArrayarray];
// we should allow group selection and copy between windows: PENDING
// This method is used by NSTableView to determine a valid drop target. Based on the mouse position, the table view will suggest a proposed drop location. This method must return a value that indicates which dragging operation the data source will perform. The data source may "re-target" a drop if desired by calling setDropRow:dropOperation: and returning something other than NSDragOperationNone. One may choose to re-target for various reasons (eg. for better visual feedback when inserting into a sorted position).
// This method is called when the mouse is released over an outline view that previously decided to allow a drop via the validateDrop method. The data source should incorporate the data from the dragging pasteboard at this time.