Alien-GvaScript

 view release on metacpan or  search on metacpan

doc/html/KeyMap.html  view on Meta::CPAN

</div>
<div class="TN_leaf">
  <a class="TN_label" href="#DESCRIPTION">DESCRIPTION</a>
  <div class="TN_content"></div>
</div>
<div class="TN_leaf">
  <a class="TN_label" href="#WRITING_HANDLERS">WRITING HANDLERS</a>
  <div class="TN_content"></div>
</div>
<div class="TN_leaf">
  <a class="TN_label" href="#ATTACHING_TO_HTML_ELEMENTS">ATTACHING TO HTML ELEMENTS</a>
  <div class="TN_content"></div>
</div>
<div class="TN_node">
  <a class="TN_label" href="#METHODS">METHODS</a>
  <div class="TN_content"><div class="TN_node">
  <a class="TN_label" href="#KeyMap"><code>KeyMap</code></a>
  <div class="TN_content"><div class="TN_leaf">
  <a class="TN_label" href="#Single_key_rules">Single-key rules</a>
  <div class="TN_content"></div>
</div>
<div class="TN_leaf">
  <a class="TN_label" href="#Regex_rules">Regex rules</a>
  <div class="TN_content"></div>
</div>
<div class="TN_leaf">
  <a class="TN_label" href="#Antiregex_rules">Antiregex rules</a>
  <div class="TN_content"></div>
</div>
</div>
</div>
<div class="TN_leaf">
  <a class="TN_label" href="#eventHandler"><code>eventHandler</code></a>
  <div class="TN_content"></div>
</div>
<div class="TN_leaf">
  <a class="TN_label" href="#observe"><code>observe</code></a>
  <div class="TN_content"></div>
</div>
<div class="TN_leaf">
  <a class="TN_label" href="#rules"><code>rules</code></a>
  <div class="TN_content"></div>
</div>
<div class="TN_leaf">
  <a class="TN_label" href="#MapAllKeys"><code>MapAllKeys</code></a>
  <div class="TN_content"></div>
</div>
<div class="TN_leaf">
  <a class="TN_label" href="#Prefix"><code>Prefix</code></a>
  <div class="TN_content"></div>
</div>
<div class="TN_leaf">
  <a class="TN_label" href="#destroy"><code>destroy</code></a>
  <div class="TN_content"></div>
</div>
</div>
</div>

       </div>
     </div>
     <hr/>
   </div>
  </div>
  <div class="TN_node" id="NAME">
    <h2 class="TN_label">NAME</h2>
    <div class="TN_content">
      <p>Alien::GvaScript::KeyMap - Manage maps of handlers for key events</p>

    </div>
  </div>
  <div class="TN_node" id="SYNOPSIS">
    <h2 class="TN_label">SYNOPSIS</h2>
    <div class="TN_content">
      <pre>  var rules = {
  
    // attach handlers to specific keys
    RETURN: function(event){doSomethingWith(event)},  
    C_DOWN: ctrlArrowDownHandler,       
    C_S_F7: ctrlShiftF7Handler,
  
    // special rules using regular expressions
    REGEX: [ ["",   /^[0-9]$/,      digitHandler  ],
             ["C_", /^[aeiou]$/i, ctrlVowelHandler] ], 
  
    // use Ctrl-X as a prefix for another set of rules
    C_X: KeyMap.Prefix({R: ctrlX_R_handler,
                        4: ctrlX_4_handler})
  };
  
  // create a keymap object
  var aKeyMap = new KeyMap(rules);

  // attach the corresponding handler to the keydown event (on document)
  aKeyMap.observe("keydown");
  
  // other way to attach : manually insert handler
  document.onkeydown = aKeyMap.eventHandler({preventDefault: true,
                                             ignoreShift   : true});

  // dynamically change the map
  aKeyMap.rules.push(new_rules);
  
  // idem, temporarily ignore all keys
  aKeyMap.rules.push(KeyMap.MapAllKeys(function(){}));
  
  // back to previous handling state
  aKeyMap.rules.pop();</pre>


    </div>
  </div>
  <div class="TN_node" id="DESCRIPTION">
    <h2 class="TN_label">DESCRIPTION</h2>
    <div class="TN_content">
      <p>Provides an abstraction layer for associating handlers
with HTML key events, in a browser-independent way.</p>
<p>A <i>keymap</i> is a stack of collections of rules. Each rule has a 
<i>key specification</i>
or a <i>regexp specification</i>, and a <i>handler</i> to be called whenever the
specification is met. The keymap object as a whole can then be
registered as a usual HTML event handler associated to some DOM



( run in 0.728 second using v1.01-cache-2.11-cpan-df04353d9ac )