comparison mac/dw.m @ 803:8555ac1bcbcd

Attempt at implementing column click events. Doesn't seem to work yet but needed to commit before switching to laptop.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Wed, 23 Mar 2011 20:45:34 +0000
parents 676d46b31a11
children 5b4a831af8fa
comparison
equal deleted inserted replaced
802:676d46b31a11 803:8555ac1bcbcd
114 char name[30]; 114 char name[30];
115 115
116 } SignalList; 116 } SignalList;
117 117
118 /* List of signals */ 118 /* List of signals */
119 #define SIGNALMAX 16 119 #define SIGNALMAX 17
120 120
121 SignalList SignalTranslate[SIGNALMAX] = { 121 SignalList SignalTranslate[SIGNALMAX] = {
122 { 1, DW_SIGNAL_CONFIGURE }, 122 { 1, DW_SIGNAL_CONFIGURE },
123 { 2, DW_SIGNAL_KEY_PRESS }, 123 { 2, DW_SIGNAL_KEY_PRESS },
124 { 3, DW_SIGNAL_BUTTON_PRESS }, 124 { 3, DW_SIGNAL_BUTTON_PRESS },
132 { 11, DW_SIGNAL_LIST_SELECT }, 132 { 11, DW_SIGNAL_LIST_SELECT },
133 { 12, DW_SIGNAL_ITEM_SELECT }, 133 { 12, DW_SIGNAL_ITEM_SELECT },
134 { 13, DW_SIGNAL_SET_FOCUS }, 134 { 13, DW_SIGNAL_SET_FOCUS },
135 { 14, DW_SIGNAL_VALUE_CHANGED }, 135 { 14, DW_SIGNAL_VALUE_CHANGED },
136 { 15, DW_SIGNAL_SWITCH_PAGE }, 136 { 15, DW_SIGNAL_SWITCH_PAGE },
137 { 16, DW_SIGNAL_TREE_EXPAND } 137 { 16, DW_SIGNAL_TREE_EXPAND },
138 { 17, DW_SIGNAL_COLUMN_CLICK }
138 }; 139 };
139 140
140 int _event_handler(id object, NSEvent *event, int message) 141 int _event_handler(id object, NSEvent *event, int message)
141 { 142 {
142 SignalHandler *handler = _get_handler(object, message); 143 SignalHandler *handler = _get_handler(object, message);
316 case 16: 317 case 16:
317 { 318 {
318 int (* API treeexpandfunc)(HWND, HTREEITEM, void *) = (int (* API)(HWND, HTREEITEM, void *))handler->signalfunction; 319 int (* API treeexpandfunc)(HWND, HTREEITEM, void *) = (int (* API)(HWND, HTREEITEM, void *))handler->signalfunction;
319 320
320 return treeexpandfunc(handler->window, (HTREEITEM)event, handler->data); 321 return treeexpandfunc(handler->window, (HTREEITEM)event, handler->data);
322 }
323 case 17:
324 {
325 int (*clickcolumnfunc)(HWND, int, void *) = handler->signalfunction;
326 int column_num = (int)event;
327
328 return clickcolumnfunc(handler->window, column_num, handler->data);
321 } 329 }
322 } 330 }
323 } 331 }
324 return -1; 332 return -1;
325 } 333 }
1020 -(int)lastQueryPoint; 1028 -(int)lastQueryPoint;
1021 -(void)setLastQueryPoint:(int)input; 1029 -(void)setLastQueryPoint:(int)input;
1022 -(void)clear; 1030 -(void)clear;
1023 -(void)setup; 1031 -(void)setup;
1024 -(void)doubleClicked:(id)sender; 1032 -(void)doubleClicked:(id)sender;
1033 -(void)tableView:(NSTableView*)tableView mouseDownInHeaderOfTableColumn:(NSTableColumn *)tableColumn;
1025 -(void)selectionChanged:(id)sender; 1034 -(void)selectionChanged:(id)sender;
1026 -(NSMenu *)menuForEvent:(NSEvent *)event; 1035 -(NSMenu *)menuForEvent:(NSEvent *)event;
1027 @end 1036 @end
1028 1037
1029 @implementation DWContainer 1038 @implementation DWContainer
1166 } 1175 }
1167 -(void)doubleClicked:(id)sender 1176 -(void)doubleClicked:(id)sender
1168 { 1177 {
1169 /* Handler for container class */ 1178 /* Handler for container class */
1170 _event_handler(self, (NSEvent *)[self getRowTitle:(int)[self selectedRow]], 9); 1179 _event_handler(self, (NSEvent *)[self getRowTitle:(int)[self selectedRow]], 9);
1180 }
1181 -(void)tableView:(NSTableView*)tableView mouseDownInHeaderOfTableColumn:(NSTableColumn *)tableColumn
1182 {
1183 /* Handler for column click class */
1184 _event_handler(self, (NSEvent *)[tvcols indexOfObject:tableColumn], 17);
1171 } 1185 }
1172 -(void)selectionChanged:(id)sender 1186 -(void)selectionChanged:(id)sender
1173 { 1187 {
1174 /* Handler for container class */ 1188 /* Handler for container class */
1175 _event_handler(self, (NSEvent *)[self getRowTitle:(int)[self selectedRow]], 12); 1189 _event_handler(self, (NSEvent *)[self getRowTitle:(int)[self selectedRow]], 12);