Mercurial > dwindows
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 /* |