protected void CommandEntered(JSONNode args) { if (!ActiveBrowser) { return; } string command = args[0]; bool shiftPressed = args[1]; if (shiftPressed) { ActiveBrowser.PressKey(KeyCode.LeftShift, KeyAction.Press); } #if ZF_OSX const KeyCode wordShifter = KeyCode.LeftAlt; #else const KeyCode wordShifter = KeyCode.LeftControl; #endif switch (command) { case "backspace": ActiveBrowser.PressKey(KeyCode.Backspace); break; case "copy": ActiveBrowser.SendFrameCommand(BrowserNative.FrameCommand.Copy); break; case "cut": ActiveBrowser.SendFrameCommand(BrowserNative.FrameCommand.Cut); break; case "delete": ActiveBrowser.PressKey(KeyCode.Delete); break; case "down": ActiveBrowser.PressKey(KeyCode.DownArrow); break; case "end": ActiveBrowser.PressKey(KeyCode.End); break; case "home": ActiveBrowser.PressKey(KeyCode.Home); break; case "insert": ActiveBrowser.PressKey(KeyCode.Insert); break; case "left": ActiveBrowser.PressKey(KeyCode.LeftArrow); break; case "pageDown": ActiveBrowser.PressKey(KeyCode.PageDown); break; case "pageUp": ActiveBrowser.PressKey(KeyCode.PageUp); break; case "paste": ActiveBrowser.SendFrameCommand(BrowserNative.FrameCommand.Paste); break; case "redo": ActiveBrowser.SendFrameCommand(BrowserNative.FrameCommand.Redo); break; case "right": ActiveBrowser.PressKey(KeyCode.RightArrow); break; case "selectAll": ActiveBrowser.SendFrameCommand(BrowserNative.FrameCommand.SelectAll); break; case "undo": ActiveBrowser.SendFrameCommand(BrowserNative.FrameCommand.Undo); break; case "up": ActiveBrowser.PressKey(KeyCode.UpArrow); break; case "wordLeft": ActiveBrowser.PressKey(wordShifter, KeyAction.Press); ActiveBrowser.PressKey(KeyCode.LeftArrow); ActiveBrowser.PressKey(wordShifter, KeyAction.Release); break; case "wordRight": ActiveBrowser.PressKey(wordShifter, KeyAction.Press); ActiveBrowser.PressKey(KeyCode.RightArrow); ActiveBrowser.PressKey(wordShifter, KeyAction.Release); break; } if (shiftPressed) { ActiveBrowser.PressKey(KeyCode.LeftShift, KeyAction.Release); } }