http://www.aros.org AROS-Exec AROS-Exec Archives Power2People
kitty mascottop logo menu

keymap

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.

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.

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.

Copyright © 1995-2024, The AROS Development Team. All rights reserved.
Amiga® is a trademark of Amiga Inc. All other trademarks belong to their respective owners.