media @ VU
[] readme course preface I 1 2 II 3 4 III 5 6 7 IV 8 9 10 V 11 12 afterthoughts appendix references examples resources _

talk show tell print

proto-rif-focusrequester.vr

proto-rif-focusrequester.vr (wrl ) [ flux / bitmanagement / cortona / octaga ]


  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');
              }
          "
      }
  }
  


(C) A. Eliëns 21/5/2007

You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.