comparison mac/dw.m @ 710:78460ff977c1

Finishing up tree event/signal handlers.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Sat, 12 Mar 2011 06:03:32 +0000
parents 5a268d5f1cfa
children 82250177f814
comparison
equal deleted inserted replaced
709:5a268d5f1cfa 710:78460ff977c1
246 int (* API treeselectfunc)(HWND, HTREEITEM, char *, void *, void *) = (int (* API)(HWND, HTREEITEM, char *, void *, void *))handler->signalfunction; 246 int (* API treeselectfunc)(HWND, HTREEITEM, char *, void *, void *) = (int (* API)(HWND, HTREEITEM, char *, void *, void *))handler->signalfunction;
247 char *text = (char *)event; 247 char *text = (char *)event;
248 void *user = NULL; 248 void *user = NULL;
249 id item = nil; 249 id item = nil;
250 250
251 if([object isMemberOfClass:[NSOutlineView class]]) 251 if([object isKindOfClass:[NSOutlineView class]])
252 { 252 {
253 item = (id)event; 253 item = (id)event;
254 NSString *nstr = [item pointerAtIndex:1]; 254 NSString *nstr = [item pointerAtIndex:1];
255 255
256 user = [item pointerAtIndex:3]; 256 user = [item pointerAtIndex:3];
999 /* Handler for listbox class */ 999 /* Handler for listbox class */
1000 _event_handler(self, (NSEvent *)(int)[self selectedRow], 11); 1000 _event_handler(self, (NSEvent *)(int)[self selectedRow], 11);
1001 } 1001 }
1002 -(NSMenu *)menuForEvent:(NSEvent *)event 1002 -(NSMenu *)menuForEvent:(NSEvent *)event
1003 { 1003 {
1004 int row; 1004 int row;
1005 NSPoint where = [self convertPoint:[event locationInWindow] fromView:nil]; 1005 NSPoint where = [self convertPoint:[event locationInWindow] fromView:nil];
1006 row = (int)[self rowAtPoint:where]; 1006 row = (int)[self rowAtPoint:where];
1007 _event_handler(self, (NSEvent *)[self getRowTitle:row], 10); 1007 _event_handler(self, (NSEvent *)[self getRowTitle:row], 10);
1008 return nil; 1008 return nil;
1009 } 1009 }
1010 -(void)dealloc { UserData *root = userdata; _remove_userdata(&root, NULL, TRUE); [super dealloc]; } 1010 -(void)dealloc { UserData *root = userdata; _remove_userdata(&root, NULL, TRUE); [super dealloc]; }
1011 @end 1011 @end
1012 1012
1013 /* Dive into the tree showing all nodes */ 1013 /* Dive into the tree showing all nodes */
1056 } 1056 }
1057 -(id)outlineView:(NSOutlineView *)outlineView child:(int)index ofItem:(id)item; 1057 -(id)outlineView:(NSOutlineView *)outlineView child:(int)index ofItem:(id)item;
1058 -(BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item; 1058 -(BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item;
1059 -(int)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item; 1059 -(int)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item;
1060 -(id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item; 1060 -(id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item;
1061 -(BOOL)outlineView:(NSOutlineView *)outlineView shouldEditTableColumn:(NSTableColumn *)tableColumn item:(id)item;
1061 -(void)addTree:(NSPointerArray *)item and:(NSPointerArray *)parent; 1062 -(void)addTree:(NSPointerArray *)item and:(NSPointerArray *)parent;
1062 -(void *)userdata; 1063 -(void *)userdata;
1063 -(void)setUserdata:(void *)input; 1064 -(void)setUserdata:(void *)input;
1064 -(void)treeSelectionChanged:(id)sender; 1065 -(void)treeSelectionChanged:(id)sender;
1065 -(NSScrollView *)scrollview; 1066 -(NSScrollView *)scrollview;
1141 return nil; 1142 return nil;
1142 } 1143 }
1143 } 1144 }
1144 return @"List Root"; 1145 return @"List Root";
1145 } 1146 }
1147 -(BOOL)outlineView:(NSOutlineView *)outlineView shouldEditTableColumn:(NSTableColumn *)tableColumn item:(id)item { return NO; }
1146 -(void)addTree:(NSPointerArray *)item and:(NSPointerArray *)parent; 1148 -(void)addTree:(NSPointerArray *)item and:(NSPointerArray *)parent;
1147 { 1149 {
1148 NSMutableArray *children = data; 1150 NSMutableArray *children = data;
1149 if(parent) 1151 if(parent)
1150 { 1152 {
1166 } 1168 }
1167 -(void *)userdata { return userdata; } 1169 -(void *)userdata { return userdata; }
1168 -(void)setUserdata:(void *)input { userdata = input; } 1170 -(void)setUserdata:(void *)input { userdata = input; }
1169 -(void)treeSelectionChanged:(id)sender 1171 -(void)treeSelectionChanged:(id)sender
1170 { 1172 {
1171 /* Handler for container class */ 1173 /* Handler for tree class */
1172 id item = [self itemAtRow:[self selectedRow]]; 1174 id item = [self itemAtRow:[self selectedRow]];
1173 1175
1174 _event_handler(self, (void *)item, 12); 1176 _event_handler(self, (void *)item, 12);
1177 }
1178 -(NSMenu *)menuForEvent:(NSEvent *)event
1179 {
1180 int row;
1181 NSPoint where = [self convertPoint:[event locationInWindow] fromView:nil];
1182 row = (int)[self rowAtPoint:where];
1183 id item = [self itemAtRow:row];
1184 NSString *nstr = [item pointerAtIndex:1];
1185 _event_handler(self, (NSEvent *)[nstr UTF8String], 10);
1186 return nil;
1175 } 1187 }
1176 -(NSScrollView *)scrollview { return scrollview; } 1188 -(NSScrollView *)scrollview { return scrollview; }
1177 -(void)setScrollview:(NSScrollView *)input { scrollview = input; } 1189 -(void)setScrollview:(NSScrollView *)input { scrollview = input; }
1178 -(void)deleteNode:(NSPointerArray *)item { _free_tree_recurse(data, item); } 1190 -(void)deleteNode:(NSPointerArray *)item { _free_tree_recurse(data, item); }
1179 -(void)clear { NSMutableArray *toclear = data; data = nil; _free_tree_recurse(toclear, NULL); [self reloadData]; } 1191 -(void)clear { NSMutableArray *toclear = data; data = nil; _free_tree_recurse(toclear, NULL); [self reloadData]; }