diff --git a/ChangeLog b/ChangeLog index 8ff75028b..123e7f39c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2014-12-08 Fred Kiefer + + * Headers/AppKit/NSTableView.h, + * Source/NSTableView.m: + Create working stubs for table view batch insertions/removals of rows + Patch by Marcian Lytwyn . + 2014-12-08 Fred Kiefer * Source/NSParagraphStyle.m (-description): Add method. diff --git a/Headers/AppKit/NSTableView.h b/Headers/AppKit/NSTableView.h index 250c6caac..c3323195e 100644 --- a/Headers/AppKit/NSTableView.h +++ b/Headers/AppKit/NSTableView.h @@ -68,6 +68,18 @@ typedef enum _NSTableViewColumnAutoresizingStyle } NSTableViewColumnAutoresizingStyle; #endif +#if OS_API_VERSION(MAC_OS_X_VERSION_10_7, GS_API_LATEST) +typedef enum _NSTableViewAnimationOptions +{ + NSTableViewAnimationEffectNone = 0x0, + NSTableViewAnimationEffectFade = 0x1, + NSTableViewAnimationEffectGap = 0x2, + NSTableViewAnimationSlideUp = 0x10, + NSTableViewAnimationSlideDown = 0x20, + NSTableViewAnimationSlideLeft = 0x30, + NSTableViewAnimationSlideRight = 0x40, +} NSTableViewAnimationOptions; +#endif @interface NSTableView : NSControl { @@ -148,6 +160,8 @@ typedef enum _NSTableViewColumnAutoresizingStyle NSDragOperation _draggingSourceOperationMaskForLocal; NSDragOperation _draggingSourceOperationMaskForRemote; + + NSInteger _beginEndUpdates; } /* Data Source */ @@ -339,6 +353,19 @@ typedef enum _NSTableViewColumnAutoresizingStyle - (NSArray *) sortDescriptors; #endif +#if OS_API_VERSION(MAC_OS_X_VERSION_10_6, GS_API_LATEST) +- (void) reloadDataForRowIndexes: (NSIndexSet*)rowIndexes columnIndexes: (NSIndexSet*)columnIndexes; +#endif + +#if OS_API_VERSION(MAC_OS_X_VERSION_10_7, GS_API_LATEST) +- (void) beginUpdates; +- (void) endUpdates; +- (NSInteger) columnForView: (NSView*)view; +- (void) insertRowsAtIndexes: (NSIndexSet*)indexes withAnimation: (NSTableViewAnimationOptions)animationOptions; +- (void) removeRowsAtIndexes: (NSIndexSet*)indexes withAnimation: (NSTableViewAnimationOptions)animationOptions; +- (NSInteger) rowForView: (NSView*)view; +#endif + @end /* interface of NSTableView */ @interface NSTableView (GNUPrivate) diff --git a/Source/NSTableView.m b/Source/NSTableView.m index 444f1f153..da4adbc9e 100644 --- a/Source/NSTableView.m +++ b/Source/NSTableView.m @@ -6724,6 +6724,50 @@ For a more detailed explanation, -setSortDescriptors:. */ return NO; } +- (void) reloadDataForRowIndexes: (NSIndexSet*)rowIndexes + columnIndexes: (NSIndexSet*)columnIndexes +{ + [self reloadData]; +} + +- (void) beginUpdates +{ + _beginEndUpdates++; +} + +- (void) endUpdates +{ + if (_beginEndUpdates > 0) + { + if (--_beginEndUpdates == 0) + { + // Process batched inserts/removes.... + // Just reload table for now until we get inserts/removes working... + [self reloadData]; + } + } +} + +- (NSInteger) columnForView: (NSView*)view +{ + return NSNotFound; +} + +- (void) insertRowsAtIndexes: (NSIndexSet*)indexes + withAnimation: (NSTableViewAnimationOptions)animationOptions +{ +} + +- (void) removeRowsAtIndexes: (NSIndexSet*)indexes + withAnimation: (NSTableViewAnimationOptions)animationOptions +{ +} + +- (NSInteger) rowForView: (NSView*)view +{ + return NSNotFound; +} + @end /* implementation of NSTableView */ @implementation NSTableView (SelectionHelper)