From: Richard K. <ric...@us...> - 2005-07-19 21:58:47
|
Update of /cvsroot/actionstep/actionstep/src/org/actionstep In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1307 Modified Files: ASFieldEditor.as NSTextField.as NSTextFieldCell.as Log Message: got tab movement working for focus change management Index: NSTextField.as =================================================================== RCS file: /cvsroot/actionstep/actionstep/src/org/actionstep/NSTextField.as,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** NSTextField.as 8 Jul 2005 07:46:46 -0000 1.9 --- NSTextField.as 19 Jul 2005 21:58:38 -0000 1.10 *************** *** 177,180 **** --- 177,181 ---- if (isSelectable() && superview() != null) { if (m_editor == null) { + //ASFieldEditor.resignFirstResponder(); var x = NSTextFieldCell(m_cell).beginEditingWithDelegate(this); m_editor = x; *************** *** 273,276 **** --- 274,283 ---- return true; } + + public function keyDown(event:NSEvent) { + } + + public function keyUp(event:NSEvent) { + } public function textDidEndEditing(notification:NSNotification) { *************** *** 289,292 **** --- 296,312 ---- } break; + case NSTextMovement.NSTabTextMovement: + m_window.selectKeyViewFollowingView(this); + if (m_window.firstResponder() == m_window) { + selectText(this); + } + break; + case NSTextMovement.NSBacktabTextMovement: + TRACE("here"); + m_window.selectKeyViewPrecedingView(this); + if (m_window.firstResponder() == m_window) { + selectText(this); + } + break; case NSTextMovement.NSIllegalTextMovement: break; Index: ASFieldEditor.as =================================================================== RCS file: /cvsroot/actionstep/actionstep/src/org/actionstep/ASFieldEditor.as,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** ASFieldEditor.as 2 Jun 2005 01:15:08 -0000 1.10 --- ASFieldEditor.as 19 Jul 2005 21:58:38 -0000 1.11 *************** *** 80,83 **** --- 80,92 ---- return null; } + + public static function resignFirstResponder() { + var instance = ASFieldEditor.instance(); + if (instance.isEditing()) { + var delegate = instance.delegate(); + instance.notifyEndEditing(NSTextMovement.NSIllegalTextMovement); + delegate.resignFirstResponder(); + } + } public static function endEditing() { *************** *** 106,109 **** --- 115,119 ---- return m_cell; } + public function setDelegate(delegate:Object) { *************** *** 211,214 **** --- 221,230 ---- if (Key.getCode() == Key.ENTER) { notifyEndEditing(NSTextMovement.NSReturnTextMovement); + } else if(Key.getCode() == Key.TAB) { + if (Key.isDown(Key.SHIFT)) { + notifyEndEditing(NSTextMovement.NSBacktabTextMovement); + } else { + notifyEndEditing(NSTextMovement.NSTabTextMovement); + } } } *************** *** 261,264 **** --- 277,281 ---- } Key.addListener(this); + Selection.setFocus(String(m_textField)); notifyBeginEditing(); } Index: NSTextFieldCell.as =================================================================== RCS file: /cvsroot/actionstep/actionstep/src/org/actionstep/NSTextFieldCell.as,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** NSTextFieldCell.as 11 Jul 2005 03:32:53 -0000 1.17 --- NSTextFieldCell.as 19 Jul 2005 21:58:38 -0000 1.18 *************** *** 126,130 **** public function endEditingWithDelegate(delegate:Object):Void { ! ASFieldEditor.endEditing(delegate); } --- 126,130 ---- public function endEditingWithDelegate(delegate:Object):Void { ! ASFieldEditor.endEditing(); } |