keymap
Index
struct KeyMap * AskKeyMapDefault();
Gives you a pointer to the current system default keymap.
Pointer to the system defaul keymap.
LONG MapANSI(
STRPTR string,
LONG count,
STRPTR buffer,
LONG length,
struct KeyMap * keyMap );
Convert an ANSI byte string to rawkey codes
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.
actual - the number of code/qualifier pairs this function
generated in buffer. Or an negative value to indicate
an error.
WORD MapRawKey(
struct InputEvent * event,
STRPTR buffer,
LONG length,
struct KeyMap * keyMap );
Converts IECLASS_RAWKEY events to ANSI bytes.
The event list (event->ie_NextEvent) is not traversed!
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.
Actual number of chars written to the buffer. A return value of
-1 means buffer owerflow.
void SetKeyMapDefault(
struct KeyMap * keyMap );
Sets the systemwide default keymap.
keyMap - pointer to KeyMap to set as system default.
- 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.
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.
|
|