Mercurial > dwindows
comparison mac/dw.m @ 1748:e4fcd1e81f0d
Added optional utf8 parameter to keypress callback on Mac.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Wed, 13 Jun 2012 19:38:00 +0000 |
parents | 535e8c19a13d |
children | 5ffeea4a2a4b |
comparison
equal
deleted
inserted
replaced
1747:f297d8a63aed | 1748:e4fcd1e81f0d |
---|---|
260 } | 260 } |
261 return 0; | 261 return 0; |
262 } | 262 } |
263 case 2: | 263 case 2: |
264 { | 264 { |
265 int (*keypressfunc)(HWND, char, int, int, void *) = handler->signalfunction; | 265 int (*keypressfunc)(HWND, char, int, int, void *, char *) = handler->signalfunction; |
266 NSString *nchar = [event charactersIgnoringModifiers]; | 266 NSString *nchar = [event charactersIgnoringModifiers]; |
267 int special = (int)[event modifierFlags]; | 267 int special = (int)[event modifierFlags]; |
268 unichar vk = [nchar characterAtIndex:0]; | 268 unichar vk = [nchar characterAtIndex:0]; |
269 char ch = '\0'; | 269 char *utf8 = NULL, ch = '\0'; |
270 | 270 |
271 /* Handle a valid key */ | 271 /* Handle a valid key */ |
272 if([nchar length] == 1) | 272 if([nchar length] == 1) |
273 { | 273 { |
274 const char *tmp = [nchar UTF8String]; | 274 char *tmp = (char *)[nchar UTF8String]; |
275 if(tmp && strlen(tmp) == 1) | 275 if(tmp && strlen(tmp) == 1) |
276 { | 276 { |
277 ch = tmp[0]; | 277 ch = tmp[0]; |
278 } | 278 } |
279 utf8 = tmp; | |
279 } | 280 } |
280 | 281 |
281 return keypressfunc(handler->window, ch, (int)vk, special, handler->data); | 282 return keypressfunc(handler->window, ch, (int)vk, special, handler->data, utf8); |
282 } | 283 } |
283 /* Button press and release event */ | 284 /* Button press and release event */ |
284 case 3: | 285 case 3: |
285 case 4: | 286 case 4: |
286 { | 287 { |