comparison src/video/cocoa/SDL_cocoaevents.m @ 1959:25d6537feea4

Implemented Cocoa key event handling.
author Sam Lantinga <slouken@libsdl.org>
date Sun, 30 Jul 2006 05:18:33 +0000
parents 05e88d266921
children c92e5f3e68d9
comparison
equal deleted inserted replaced
1958:5fc6fb0fb605 1959:25d6537feea4
87 [appleMenu addItemWithTitle:title action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""]; 87 [appleMenu addItemWithTitle:title action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""];
88 88
89 [appleMenu addItem:[NSMenuItem separatorItem]]; 89 [appleMenu addItem:[NSMenuItem separatorItem]];
90 90
91 title = [@"Hide " stringByAppendingString:appName]; 91 title = [@"Hide " stringByAppendingString:appName];
92 [appleMenu addItemWithTitle:title action:@selector(hide:) keyEquivalent:@"h"]; 92 [appleMenu addItemWithTitle:title action:@selector(hide:) keyEquivalent:@/*"h"*/""];
93 93
94 menuItem = (NSMenuItem *)[appleMenu addItemWithTitle:@"Hide Others" action:@selector(hideOtherApplications:) keyEquivalent:@"h"]; 94 menuItem = (NSMenuItem *)[appleMenu addItemWithTitle:@"Hide Others" action:@selector(hideOtherApplications:) keyEquivalent:@/*"h"*/""];
95 [menuItem setKeyEquivalentModifierMask:(NSAlternateKeyMask|NSCommandKeyMask)]; 95 [menuItem setKeyEquivalentModifierMask:(NSAlternateKeyMask|NSCommandKeyMask)];
96 96
97 [appleMenu addItemWithTitle:@"Show All" action:@selector(unhideAllApplications:) keyEquivalent:@""]; 97 [appleMenu addItemWithTitle:@"Show All" action:@selector(unhideAllApplications:) keyEquivalent:@""];
98 98
99 [appleMenu addItem:[NSMenuItem separatorItem]]; 99 [appleMenu addItem:[NSMenuItem separatorItem]];
100 100
101 title = [@"Quit " stringByAppendingString:appName]; 101 title = [@"Quit " stringByAppendingString:appName];
102 [appleMenu addItemWithTitle:title action:@selector(terminate:) keyEquivalent:@"q"]; 102 [appleMenu addItemWithTitle:title action:@selector(terminate:) keyEquivalent:@/*"q"*/""];
103 103
104 /* Put menu into the menubar */ 104 /* Put menu into the menubar */
105 menuItem = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""]; 105 menuItem = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""];
106 [menuItem setSubmenu:appleMenu]; 106 [menuItem setSubmenu:appleMenu];
107 [[NSApp mainMenu] addItem:menuItem]; 107 [[NSApp mainMenu] addItem:menuItem];
114 114
115 /* Create the window menu */ 115 /* Create the window menu */
116 windowMenu = [[NSMenu alloc] initWithTitle:@"Window"]; 116 windowMenu = [[NSMenu alloc] initWithTitle:@"Window"];
117 117
118 /* "Minimize" item */ 118 /* "Minimize" item */
119 menuItem = [[NSMenuItem alloc] initWithTitle:@"Minimize" action:@selector(performMiniaturize:) keyEquivalent:@"m"]; 119 menuItem = [[NSMenuItem alloc] initWithTitle:@"Minimize" action:@selector(performMiniaturize:) keyEquivalent:@/*"m"*/""];
120 [windowMenu addItem:menuItem]; 120 [windowMenu addItem:menuItem];
121 [menuItem release]; 121 [menuItem release];
122 122
123 /* Put menu into the menubar */ 123 /* Put menu into the menubar */
124 menuItem = [[NSMenuItem alloc] initWithTitle:@"Window" action:nil keyEquivalent:@""]; 124 menuItem = [[NSMenuItem alloc] initWithTitle:@"Window" action:nil keyEquivalent:@""];
167 while ([NSApp isRunning]) { 167 while ([NSApp isRunning]) {
168 NSEvent *event = [NSApp nextEventMatchingMask:NSAnyEventMask untilDate:[NSDate distantPast] inMode:NSDefaultRunLoopMode dequeue:YES ]; 168 NSEvent *event = [NSApp nextEventMatchingMask:NSAnyEventMask untilDate:[NSDate distantPast] inMode:NSDefaultRunLoopMode dequeue:YES ];
169 if ( event == nil ) { 169 if ( event == nil ) {
170 break; 170 break;
171 } 171 }
172 [NSApp sendEvent:event]; 172 switch ([event type]) {
173 case NSKeyDown:
174 case NSKeyUp:
175 case NSFlagsChanged:
176 Cocoa_HandleKeyEvent(_this, event);
177 /* Fall through to pass event to NSApp */
178 default:
179 [NSApp sendEvent:event];
180 break;
181 }
173 } 182 }
174 [pool release]; 183 [pool release];
175 } 184 }
176 185
177 /* vi: set ts=4 sw=4 expandtab: */ 186 /* vi: set ts=4 sw=4 expandtab: */