PROTO FocusRequester [ exposedField SFNode inputHandler NULL exposedField SFNode window NULL exposedField SFNode focusHandler NULL ] { DEF SCRIPT Script { eventIn SFNode set_window IS window field SFNode window IS window eventOut SFNode window_changed IS window eventIn SFNode set_inputHandler IS inputHandler field SFNode inputHandler IS inputHandler eventOut SFNode inputHandler_changed IS inputHandler eventIn SFNode set_focusHandler IS focusHandler field SFNode focusHandler IS focusHandler eventOut SFNode focusHandler_changed IS focusHandler field SFNode script USE SCRIPT eventIn SFTime touchTime eventIn SFFloat setTransparency eventIn SFString characterInput url "vrmlscript: function set_window(value,time) { Browser.deleteRoute(window,'touchTime',script,'touchTime'); window = value; window_changed = window; Browser.addRoute(window,'touchTime',script,'touchTime'); } function set_inputHandler(value,time) { inputHandler = value; inputHandler_changed = inputHandler; } function set_focusHandler(value,time) { focusHandler = value; focusHandler_changed = focusHandler; } function touchTime(value,time) { focusHandler.requestFocus = script; } function setTransparency(value,time) { window.transparency = value; } function characterInput(value,time) { inputHandler.characterInput = value; } function initialize() { Browser.addRoute(window,'touchTime',script,'touchTime'); } function shutdown() { Browser.deleteRoute(window,'touchTime',script,'touchTime'); } " } }