# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1307814881 0 # Node ID b673b25bbd777cc1abdd9a043d0ff66bed9a9c79 # Parent 2ebaea72ac95281617980a87dd4a8c5889c3c86a Fixed dw_tree_insert_after() so it works on Mac it previously functioned identical to dw_tree_insert(). Also switched to using the parentForItem method instead of saving the parent in the array. diff -r 2ebaea72ac95 -r b673b25bbd77 mac/dw.m --- a/mac/dw.m Thu Jun 09 00:33:19 2011 +0000 +++ b/mac/dw.m Sat Jun 11 17:54:41 2011 +0000 @@ -1662,7 +1662,7 @@ -(id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item; -(void)outlineView:(NSOutlineView *)outlineView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item; -(BOOL)outlineView:(NSOutlineView *)outlineView shouldEditTableColumn:(NSTableColumn *)tableColumn item:(id)item; --(void)addTree:(NSPointerArray *)item and:(NSPointerArray *)parent; +-(void)addTree:(NSPointerArray *)item and:(NSPointerArray *)parent after:(NSPointerArray *)after; -(void *)userdata; -(void)setUserdata:(void *)input; -(void)treeSelectionChanged:(id)sender; @@ -1753,7 +1753,7 @@ } } -(BOOL)outlineView:(NSOutlineView *)outlineView shouldEditTableColumn:(NSTableColumn *)tableColumn item:(id)item { return NO; } --(void)addTree:(NSPointerArray *)item and:(NSPointerArray *)parent; +-(void)addTree:(NSPointerArray *)item and:(NSPointerArray *)parent after:(NSPointerArray *)after { NSMutableArray *children = data; if(parent) @@ -1772,7 +1772,15 @@ children = data = [[[NSMutableArray alloc] init] retain]; } } - [children addObject:item]; + if(after) + { + NSInteger index = [children indexOfObject:after]; + [children insertObject:item atIndex:index]; + } + else + { + [children addObject:item]; + } } -(void *)userdata { return userdata; } -(void)setUserdata:(void *)input { userdata = input; } @@ -5010,8 +5018,7 @@ [treenode addPointer:nstr]; [treenode addPointer:itemdata]; [treenode addPointer:NULL]; - [treenode addPointer:parent]; - [tree addTree:treenode and:parent]; + [tree addTree:treenode and:parent after:item]; if(parent) [tree reloadItem:parent reloadChildren:YES]; else @@ -5060,10 +5067,10 @@ { int _locked_by_me = FALSE; HTREEITEM parent; + DWTree *tree = handle; DW_MUTEX_LOCK; - NSPointerArray *array = (NSPointerArray *)item; - parent = (HTREEITEM)[array pointerAtIndex:4]; + parent = [tree parentForItem:item]; DW_MUTEX_UNLOCK; return parent; }