comparison mac/dw.m @ 1064:b673b25bbd77

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.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Sat, 11 Jun 2011 17:54:41 +0000
parents 2ebaea72ac95
children 25e0317335fc
comparison
equal deleted inserted replaced
1063:2ebaea72ac95 1064:b673b25bbd77
1660 -(BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item; 1660 -(BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item;
1661 -(int)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item; 1661 -(int)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item;
1662 -(id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item; 1662 -(id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item;
1663 -(void)outlineView:(NSOutlineView *)outlineView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item; 1663 -(void)outlineView:(NSOutlineView *)outlineView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item;
1664 -(BOOL)outlineView:(NSOutlineView *)outlineView shouldEditTableColumn:(NSTableColumn *)tableColumn item:(id)item; 1664 -(BOOL)outlineView:(NSOutlineView *)outlineView shouldEditTableColumn:(NSTableColumn *)tableColumn item:(id)item;
1665 -(void)addTree:(NSPointerArray *)item and:(NSPointerArray *)parent; 1665 -(void)addTree:(NSPointerArray *)item and:(NSPointerArray *)parent after:(NSPointerArray *)after;
1666 -(void *)userdata; 1666 -(void *)userdata;
1667 -(void)setUserdata:(void *)input; 1667 -(void)setUserdata:(void *)input;
1668 -(void)treeSelectionChanged:(id)sender; 1668 -(void)treeSelectionChanged:(id)sender;
1669 -(void)treeItemExpanded:(NSNotification *)notification; 1669 -(void)treeItemExpanded:(NSNotification *)notification;
1670 -(NSScrollView *)scrollview; 1670 -(NSScrollView *)scrollview;
1751 NSImage *img = [this pointerAtIndex:0]; 1751 NSImage *img = [this pointerAtIndex:0];
1752 [(NSBrowserCell*)cell setImage:img]; 1752 [(NSBrowserCell*)cell setImage:img];
1753 } 1753 }
1754 } 1754 }
1755 -(BOOL)outlineView:(NSOutlineView *)outlineView shouldEditTableColumn:(NSTableColumn *)tableColumn item:(id)item { return NO; } 1755 -(BOOL)outlineView:(NSOutlineView *)outlineView shouldEditTableColumn:(NSTableColumn *)tableColumn item:(id)item { return NO; }
1756 -(void)addTree:(NSPointerArray *)item and:(NSPointerArray *)parent; 1756 -(void)addTree:(NSPointerArray *)item and:(NSPointerArray *)parent after:(NSPointerArray *)after
1757 { 1757 {
1758 NSMutableArray *children = data; 1758 NSMutableArray *children = data;
1759 if(parent) 1759 if(parent)
1760 { 1760 {
1761 children = [parent pointerAtIndex:3]; 1761 children = [parent pointerAtIndex:3];
1770 if(!data) 1770 if(!data)
1771 { 1771 {
1772 children = data = [[[NSMutableArray alloc] init] retain]; 1772 children = data = [[[NSMutableArray alloc] init] retain];
1773 } 1773 }
1774 } 1774 }
1775 [children addObject:item]; 1775 if(after)
1776 {
1777 NSInteger index = [children indexOfObject:after];
1778 [children insertObject:item atIndex:index];
1779 }
1780 else
1781 {
1782 [children addObject:item];
1783 }
1776 } 1784 }
1777 -(void *)userdata { return userdata; } 1785 -(void *)userdata { return userdata; }
1778 -(void)setUserdata:(void *)input { userdata = input; } 1786 -(void)setUserdata:(void *)input { userdata = input; }
1779 -(void)treeSelectionChanged:(id)sender 1787 -(void)treeSelectionChanged:(id)sender
1780 { 1788 {
5008 NSPointerArray *treenode = [NSPointerArray pointerArrayWithWeakObjects]; 5016 NSPointerArray *treenode = [NSPointerArray pointerArrayWithWeakObjects];
5009 [treenode addPointer:icon]; 5017 [treenode addPointer:icon];
5010 [treenode addPointer:nstr]; 5018 [treenode addPointer:nstr];
5011 [treenode addPointer:itemdata]; 5019 [treenode addPointer:itemdata];
5012 [treenode addPointer:NULL]; 5020 [treenode addPointer:NULL];
5013 [treenode addPointer:parent]; 5021 [tree addTree:treenode and:parent after:item];
5014 [tree addTree:treenode and:parent];
5015 if(parent) 5022 if(parent)
5016 [tree reloadItem:parent reloadChildren:YES]; 5023 [tree reloadItem:parent reloadChildren:YES];
5017 else 5024 else
5018 [tree reloadData]; 5025 [tree reloadData];
5019 DW_MUTEX_UNLOCK; 5026 DW_MUTEX_UNLOCK;
5058 */ 5065 */
5059 HTREEITEM API dw_tree_get_parent(HWND handle, HTREEITEM item) 5066 HTREEITEM API dw_tree_get_parent(HWND handle, HTREEITEM item)
5060 { 5067 {
5061 int _locked_by_me = FALSE; 5068 int _locked_by_me = FALSE;
5062 HTREEITEM parent; 5069 HTREEITEM parent;
5070 DWTree *tree = handle;
5063 5071
5064 DW_MUTEX_LOCK; 5072 DW_MUTEX_LOCK;
5065 NSPointerArray *array = (NSPointerArray *)item; 5073 parent = [tree parentForItem:item];
5066 parent = (HTREEITEM)[array pointerAtIndex:4];
5067 DW_MUTEX_UNLOCK; 5074 DW_MUTEX_UNLOCK;
5068 return parent; 5075 return parent;
5069 } 5076 }
5070 5077
5071 /* 5078 /*