Update of /cvsroot/actionstep/actionstep/src/org/actionstep
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7356
Modified Files:
NSWindow.as NSPanel.as
Log Message:
added behavior to event handling including dispatching key events, correct left button down/up and refactored method to be reused by NSPanel (creating private method __sendEventBecomesKeyOnlyIfNeeded)
Index: NSWindow.as
===================================================================
RCS file: /cvsroot/actionstep/actionstep/src/org/actionstep/NSWindow.as,v
retrieving revision 1.23
retrieving revision 1.24
diff -C2 -d -r1.23 -r1.24
*** NSWindow.as 16 Jul 2005 22:23:41 -0000 1.23
--- NSWindow.as 18 Jul 2005 01:43:43 -0000 1.24
***************
*** 106,109 ****
--- 106,111 ----
private var m_canHide:Boolean
+ private var m_lastEventView:NSView;
+
private var m_level:Number;
***************
*** 446,458 ****
public function sendEvent(event:NSEvent) {
switch(event.type) {
case NSEvent.NSLeftMouseDown:
! if (event.view.acceptsFirstResponder()) {
makeFirstResponder(event.view);
}
! event.view.mouseDown(event);
break;
case NSEvent.NSLeftMouseUp:
! event.view.mouseUp(event);
break;
case NSEvent.NSMouseExited:
--- 448,474 ----
public function sendEvent(event:NSEvent) {
+ __sendEventBecomesKeyOnlyIfNeeded(event, false);
+ }
+
+ private function __sendEventBecomesKeyOnlyIfNeeded(event:NSEvent, becomesKeyOnlyIfNeeded:Boolean) {
+ var wasKey:Boolean = m_isKey;
switch(event.type) {
case NSEvent.NSLeftMouseDown:
! if (!wasKey && m_level != NSDesktopWindowLevel) {
! if (!becomesKeyOnlyIfNeeded || event.view.needsPanelToBecomeKey()) {
! makeKeyAndOrderFront();
! }
! }
! if (m_firstResponder != event.view) {
makeFirstResponder(event.view);
}
! if (wasKey || event.view.acceptsFirstMouse(event)) {
! m_lastEventView = event.view;
! event.view.mouseDown(event);
! }
break;
case NSEvent.NSLeftMouseUp:
! // send mouse up to the view that got mouse down
! m_lastEventView.mouseUp(event);
break;
case NSEvent.NSMouseExited:
***************
*** 462,465 ****
--- 478,487 ----
event.view.mouseEntered(event);
break;
+ case NSEvent.NSKeyDown:
+ m_firstResponder.keyDown(event);
+ break;
+ case NSEvent.NSKeyUp:
+ m_firstResponder.keyUp(event);
+ break;
}
}
Index: NSPanel.as
===================================================================
RCS file: /cvsroot/actionstep/actionstep/src/org/actionstep/NSPanel.as,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** NSPanel.as 15 Jul 2005 12:22:58 -0000 1.3
--- NSPanel.as 18 Jul 2005 01:43:43 -0000 1.4
***************
*** 30,34 ****
import org.actionstep.NSWindow;
! //import org.actionstep.NSEvent;
import org.actionstep.NSRect;
--- 30,34 ----
import org.actionstep.NSWindow;
! import org.actionstep.NSEvent;
import org.actionstep.NSRect;
***************
*** 130,138 ****
m_becomesKeyOnlyIfNeeded = flag;
}
! /*
! public function sendEvent (theEvent:NSEvent):Void {
! _sendEventBecomesKeyOnlyIfNeeded
! (theEvent, _becomesKeyOnlyIfNeeded);
! }*/
public function description():String {
--- 130,137 ----
m_becomesKeyOnlyIfNeeded = flag;
}
!
! public function sendEvent(theEvent:NSEvent):Void {
! __sendEventBecomesKeyOnlyIfNeeded(theEvent, m_becomesKeyOnlyIfNeeded);
! }
public function description():String {
|