comparison mac/dw.m @ 1809:5efaea897310

Fixed back tab handling for certain controls on Mac. Also switched to using native keycode identifiers instead of DW ones.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Mon, 08 Oct 2012 19:32:45 +0000
parents f3458cd6277c
children d784b85b632e
comparison
equal deleted inserted replaced
1808:f3458cd6277c 1809:5efaea897310
1321 } 1321 }
1322 -(void)keyDown:(NSEvent *)theEvent 1322 -(void)keyDown:(NSEvent *)theEvent
1323 { 1323 {
1324 unichar vk = [[theEvent charactersIgnoringModifiers] characterAtIndex:0]; 1324 unichar vk = [[theEvent charactersIgnoringModifiers] characterAtIndex:0];
1325 1325
1326 if(vk == VK_TAB) 1326 if(vk == NSTabCharacter || vk == NSBackTabCharacter)
1327 [self interpretKeyEvents:[NSArray arrayWithObject:theEvent]]; 1327 [self interpretKeyEvents:[NSArray arrayWithObject:theEvent]];
1328 else if(vk == VK_LEFT) 1328 else if(vk == NSLeftArrowFunctionKey)
1329 { 1329 {
1330 NSArray *pages = [self tabViewItems]; 1330 NSArray *pages = [self tabViewItems];
1331 DWNotebookPage *page = (DWNotebookPage *)[self selectedTabViewItem]; 1331 DWNotebookPage *page = (DWNotebookPage *)[self selectedTabViewItem];
1332 NSUInteger index = [pages indexOfObject:page]; 1332 NSUInteger index = [pages indexOfObject:page];
1333 1333
1338 else 1338 else
1339 [self selectTabViewItem:[pages objectAtIndex:0]]; 1339 [self selectTabViewItem:[pages objectAtIndex:0]];
1340 1340
1341 } 1341 }
1342 } 1342 }
1343 else if(vk == VK_RIGHT) 1343 else if(vk == NSRightArrowFunctionKey)
1344 { 1344 {
1345 NSArray *pages = [self tabViewItems]; 1345 NSArray *pages = [self tabViewItems];
1346 DWNotebookPage *page = (DWNotebookPage *)[self selectedTabViewItem]; 1346 DWNotebookPage *page = (DWNotebookPage *)[self selectedTabViewItem];
1347 NSUInteger index = [pages indexOfObject:page]; 1347 NSUInteger index = [pages indexOfObject:page];
1348 NSUInteger count = [pages count]; 1348 NSUInteger count = [pages count];
2139 _event_handler(self, (NSEvent *)[self getRowTitle:row], 10); 2139 _event_handler(self, (NSEvent *)[self getRowTitle:row], 10);
2140 return nil; 2140 return nil;
2141 } 2141 }
2142 -(void)keyDown:(NSEvent *)theEvent 2142 -(void)keyDown:(NSEvent *)theEvent
2143 { 2143 {
2144 if([[theEvent charactersIgnoringModifiers] characterAtIndex:0] == VK_TAB) 2144 unichar vk = [[theEvent charactersIgnoringModifiers] characterAtIndex:0];
2145
2146 if(vk == NSTabCharacter || vk == NSBackTabCharacter)
2145 [self interpretKeyEvents:[NSArray arrayWithObject:theEvent]]; 2147 [self interpretKeyEvents:[NSArray arrayWithObject:theEvent]];
2146 [super keyDown:theEvent]; 2148 [super keyDown:theEvent];
2147 } 2149 }
2148 -(void)insertTab:(id)sender { if([[self window] firstResponder] == self) [[self window] selectNextKeyView:self]; } 2150 -(void)insertTab:(id)sender { if([[self window] firstResponder] == self) [[self window] selectNextKeyView:self]; }
2149 -(void)insertBacktab:(id)sender { if([[self window] firstResponder] == self) [[self window] selectPreviousKeyView:self]; } 2151 -(void)insertBacktab:(id)sender { if([[self window] firstResponder] == self) [[self window] selectPreviousKeyView:self]; }
2382 [cell setTextColor:fgcolor]; 2384 [cell setTextColor:fgcolor];
2383 } 2385 }
2384 -(void)clear { NSMutableArray *toclear = data; data = nil; _free_tree_recurse(toclear, NULL); [self reloadData]; } 2386 -(void)clear { NSMutableArray *toclear = data; data = nil; _free_tree_recurse(toclear, NULL); [self reloadData]; }
2385 -(void)keyDown:(NSEvent *)theEvent 2387 -(void)keyDown:(NSEvent *)theEvent
2386 { 2388 {
2387 if([[theEvent charactersIgnoringModifiers] characterAtIndex:0] == VK_TAB) 2389 unichar vk = [[theEvent charactersIgnoringModifiers] characterAtIndex:0];
2390
2391 if(vk == NSTabCharacter || vk == NSBackTabCharacter)
2388 [self interpretKeyEvents:[NSArray arrayWithObject:theEvent]]; 2392 [self interpretKeyEvents:[NSArray arrayWithObject:theEvent]];
2389 [super keyDown:theEvent]; 2393 [super keyDown:theEvent];
2390 } 2394 }
2391 -(void)insertTab:(id)sender { if([[self window] firstResponder] == self) [[self window] selectNextKeyView:self]; } 2395 -(void)insertTab:(id)sender { if([[self window] firstResponder] == self) [[self window] selectNextKeyView:self]; }
2392 -(void)insertBacktab:(id)sender { if([[self window] firstResponder] == self) [[self window] selectPreviousKeyView:self]; } 2396 -(void)insertBacktab:(id)sender { if([[self window] firstResponder] == self) [[self window] selectPreviousKeyView:self]; }