Mercurial > projects > dwt-mac
comparison dwt/widgets/Control.d @ 61:c74ba20de292
Fix: The application responds to events now
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Tue, 23 Dec 2008 00:35:24 +0100 |
parents | 62202ce0039f |
children | 63a09873578e |
comparison
equal
deleted
inserted
replaced
60:62202ce0039f | 61:c74ba20de292 |
---|---|
1076 sendKeyEvent (DWT.KeyDown, event); | 1076 sendKeyEvent (DWT.KeyDown, event); |
1077 setInputState (event, nsEvent, DWT.KeyUp); | 1077 setInputState (event, nsEvent, DWT.KeyUp); |
1078 sendKeyEvent (DWT.KeyUp, event); | 1078 sendKeyEvent (DWT.KeyUp, event); |
1079 break; | 1079 break; |
1080 default: | 1080 default: |
1081 assert(false); | |
1082 } | 1081 } |
1083 if (mask !is 0) { | 1082 if (mask !is 0) { |
1084 int type = (mask & modifiers) !is 0 ? DWT.KeyDown : DWT.KeyUp; | 1083 int type = (mask & modifiers) !is 0 ? DWT.KeyDown : DWT.KeyUp; |
1085 Event event = new Event(); | 1084 Event event = new Event(); |
1086 event.keyCode = keyCode; | 1085 event.keyCode = keyCode; |
2443 case DWT.FocusOut: | 2442 case DWT.FocusOut: |
2444 if (shell !is display.getActiveShell ()) { | 2443 if (shell !is display.getActiveShell ()) { |
2445 shell.setActiveControl (null); | 2444 shell.setActiveControl (null); |
2446 } | 2445 } |
2447 break; | 2446 break; |
2447 default: | |
2448 } | 2448 } |
2449 } | 2449 } |
2450 } | 2450 } |
2451 | 2451 |
2452 bool sendMouseEvent (NSEvent nsEvent, int type, bool send) { | 2452 bool sendMouseEvent (NSEvent nsEvent, int type, bool send) { |
2469 case 0: event.button = 1; break; | 2469 case 0: event.button = 1; break; |
2470 case 1: event.button = 3; break; | 2470 case 1: event.button = 3; break; |
2471 case 2: event.button = 2; break; | 2471 case 2: event.button = 2; break; |
2472 case 3: event.button = 4; break; | 2472 case 3: event.button = 4; break; |
2473 case 4: event.button = 5; break; | 2473 case 4: event.button = 5; break; |
2474 default: | |
2474 } | 2475 } |
2475 break; | 2476 break; |
2476 case DWT.MouseWheel: | 2477 case DWT.MouseWheel: |
2477 event.detail = DWT.SCROLL_LINE; | 2478 event.detail = DWT.SCROLL_LINE; |
2478 Carbon.CGFloat delta = nsEvent.deltaY(); | 2479 Carbon.CGFloat delta = nsEvent.deltaY(); |
2479 event.count = delta > 0 ? Math.max (1, cast(int)delta) : Math.min (-1, cast(int)delta); | 2480 event.count = delta > 0 ? Math.max (1, cast(int)delta) : Math.min (-1, cast(int)delta); |
2480 break; | 2481 break; |
2482 default: | |
2481 } | 2483 } |
2482 if (event.button !is 0) event.count = cast(int)/*64*/nsEvent.clickCount(); | 2484 if (event.button !is 0) event.count = cast(int)/*64*/nsEvent.clickCount(); |
2483 NSPoint windowPoint; | 2485 NSPoint windowPoint; |
2484 if (nsEvent is null || nsEvent.type() is OS.NSMouseMoved) { | 2486 if (nsEvent is null || nsEvent.type() is OS.NSMouseMoved) { |
2485 windowPoint = view.window().convertScreenToBase(NSEvent.mouseLocation()); | 2487 windowPoint = view.window().convertScreenToBase(NSEvent.mouseLocation()); |
3436 case DWT.TRAVERSE_ARROW_NEXT: return traverseItem (true); | 3438 case DWT.TRAVERSE_ARROW_NEXT: return traverseItem (true); |
3437 case DWT.TRAVERSE_ARROW_PREVIOUS: return traverseItem (false); | 3439 case DWT.TRAVERSE_ARROW_PREVIOUS: return traverseItem (false); |
3438 case DWT.TRAVERSE_MNEMONIC: return traverseMnemonic (event); | 3440 case DWT.TRAVERSE_MNEMONIC: return traverseMnemonic (event); |
3439 case DWT.TRAVERSE_PAGE_NEXT: return traversePage (true); | 3441 case DWT.TRAVERSE_PAGE_NEXT: return traversePage (true); |
3440 case DWT.TRAVERSE_PAGE_PREVIOUS: return traversePage (false); | 3442 case DWT.TRAVERSE_PAGE_PREVIOUS: return traversePage (false); |
3443 default: | |
3441 } | 3444 } |
3442 return false; | 3445 return false; |
3443 } | 3446 } |
3444 | 3447 |
3445 bool traverseEscape () { | 3448 bool traverseEscape () { |