Mercurial > dwindows
comparison mac/dw.m @ 2466:cfb14192753c
Mac: Fill in the row data in the second data pointer slot instead of leaving
it NULL. Not sure why I didn't do this earlier.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Wed, 14 Apr 2021 22:38:41 +0000 |
parents | 79732eb2deef |
children | fa976a5bc7bd |
comparison
equal
deleted
inserted
replaced
2465:79732eb2deef | 2466:cfb14192753c |
---|---|
700 } | 700 } |
701 /* Container context menu event */ | 701 /* Container context menu event */ |
702 case 10: | 702 case 10: |
703 { | 703 { |
704 int (* API containercontextfunc)(HWND, char *, int, int, void *, void *) = (int (* API)(HWND, char *, int, int, void *, void *))handler->signalfunction; | 704 int (* API containercontextfunc)(HWND, char *, int, int, void *, void *) = (int (* API)(HWND, char *, int, int, void *, void *))handler->signalfunction; |
705 char *text = (char *)event; | 705 char *text = NULL; |
706 void *user = NULL; | 706 void *user = NULL; |
707 LONG x,y; | 707 LONG x,y; |
708 | 708 |
709 /* Fill in both items for the tree */ | 709 /* Fill in both items for the tree */ |
710 if([object isKindOfClass:[NSOutlineView class]]) | 710 if([object isKindOfClass:[NSOutlineView class]]) |
715 NSValue *value = [item objectAtIndex:2]; | 715 NSValue *value = [item objectAtIndex:2]; |
716 if(value && [value isKindOfClass:[NSValue class]]) | 716 if(value && [value isKindOfClass:[NSValue class]]) |
717 { | 717 { |
718 user = [value pointerValue]; | 718 user = [value pointerValue]; |
719 } | 719 } |
720 } | |
721 else | |
722 { | |
723 void **params = (void **)event; | |
724 | |
725 text = params[0]; | |
726 user = params[1]; | |
720 } | 727 } |
721 | 728 |
722 dw_pointer_query_pos(&x, &y); | 729 dw_pointer_query_pos(&x, &y); |
723 | 730 |
724 return containercontextfunc(handler->window, text, (int)x, (int)y, handler->data, user); | 731 return containercontextfunc(handler->window, text, (int)x, (int)y, handler->data, user); |
3042 /* Handler for listbox class */ | 3049 /* Handler for listbox class */ |
3043 _dw_event_handler(self, DW_INT_TO_POINTER((int)[self selectedRow]), 11); | 3050 _dw_event_handler(self, DW_INT_TO_POINTER((int)[self selectedRow]), 11); |
3044 } | 3051 } |
3045 -(NSMenu *)menuForEvent:(NSEvent *)event | 3052 -(NSMenu *)menuForEvent:(NSEvent *)event |
3046 { | 3053 { |
3047 int row; | |
3048 NSPoint where = [self convertPoint:[event locationInWindow] fromView:nil]; | 3054 NSPoint where = [self convertPoint:[event locationInWindow] fromView:nil]; |
3049 row = (int)[self rowAtPoint:where]; | 3055 int row = (int)[self rowAtPoint:where]; |
3050 _dw_event_handler(self, (NSEvent *)[self getRowTitle:row], 10); | 3056 void *params[2]; |
3057 | |
3058 params[0] = [self getRowTitle:row]; | |
3059 params[1] = [self getRowData:row]; | |
3060 | |
3061 _dw_event_handler(self, (NSEvent *)params, 10); | |
3051 return nil; | 3062 return nil; |
3052 } | 3063 } |
3053 -(void)keyDown:(NSEvent *)theEvent | 3064 -(void)keyDown:(NSEvent *)theEvent |
3054 { | 3065 { |
3055 unichar vk = [[theEvent charactersIgnoringModifiers] characterAtIndex:0]; | 3066 unichar vk = [[theEvent charactersIgnoringModifiers] characterAtIndex:0]; |