======
keymap
======

.. This document is automatically generated. Don't edit it!

`Index <index>`_

----------

======================================= ======================================= ======================================= ======================================= 
`AskKeyMapDefault()`_                   `MapANSI()`_                            `MapRawKey()`_                          `SetKeyMapDefault()`_                   

======================================= ======================================= ======================================= ======================================= 

-----------

AskKeyMapDefault()
==================

Synopsis
~~~~~~~~
::

 struct KeyMap * AskKeyMapDefault();

Function
~~~~~~~~
::

     Gives you a pointer to the current system default keymap.


Result
~~~~~~
::

     Pointer to the system defaul keymap.



See also
~~~~~~~~

`SetKeyMapDefault()`_ 

----------

MapANSI()
=========

Synopsis
~~~~~~~~
::

 LONG MapANSI(
          STRPTR string,
          LONG count,
          STRPTR buffer,
          LONG length,
          struct KeyMap * keyMap );

Function
~~~~~~~~
::

     Convert an ANSI byte string to rawkey codes
     

Inputs
~~~~~~
::

     string - the ANSI byte string to convert

     count - the number of characters in string

     buffer - a byte buffer which must be large enough
              to hold all anticipated code/qualifier pairs
              which are generated by this function

     length - maximum anticipation, ie. the buffer size in
              WORDs (buffer size in bytes divided by two).
              WORDs, because one code/qualifier pair consists
              of 2 bytes.
     

Result
~~~~~~
::

     actual - the number of code/qualifier pairs this function
              generated in buffer. Or an negative value to indicate
              an error.


----------

MapRawKey()
===========

Synopsis
~~~~~~~~
::

 WORD MapRawKey(
          struct InputEvent * event,
          STRPTR buffer,
          LONG length,
          struct KeyMap     * keyMap );

Function
~~~~~~~~
::

     Converts IECLASS_RAWKEY events to ANSI bytes.
     The event list (event->ie_NextEvent) is not traversed!
     

Inputs
~~~~~~
::

     event - InputEvent that should be converted.
             ie_NextEvent is ignored!
       
     buffer - buffer into which the mapped ANSI bytes will be put.
     
     length - length of buffer.
     
     keymap - keymap to use for mapping. If NULL, then the default
              keymap will be used.
 


Result
~~~~~~
::

     Actual number of chars written to the buffer. A return value of
     -1 means buffer owerflow.



See also
~~~~~~~~

`MapAnsi()`_ 

----------

SetKeyMapDefault()
==================

Synopsis
~~~~~~~~
::

 void SetKeyMapDefault(
          struct KeyMap * keyMap );

Function
~~~~~~~~
::

     Sets the systemwide default keymap.


Inputs
~~~~~~
::

     keyMap - pointer to KeyMap to set as system default.


Notes
~~~~~
::

     - This function should only be used by a keymap preferences editor.
     - Once you have set the keymap, you should NEVER deallocate it, as
       other apps might have got pointers to it via AskKeyMapDefault().
     - You should use the keymap.resource to check if the keymap has allready
       been added. If not, then remember to arbitrate before adding it to
       the keymap.resource list of keymaps.


Bugs
~~~~
::

     When adding the keymap to the keymap.resource one must use
     Forbid()/Permit() to arbitrate. Ideally one should use semaphores,
     but the keymap.resource contains no semaphore for this purpose.



See also
~~~~~~~~

`AskKeyMapDefault()`_ 

