Mercurial > dwindows
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]; } |