home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Developer CD v1.2
/
amidev_cd_12.iso
/
reference
/
amiga_mail_vol2
/
xi-25
/
appkeymap.doc
< prev
next >
Wrap
Text File
|
1996-01-30
|
5KB
|
152 lines
AppKeyMap.o/AlterAppKeyMap AppKeyMap.o/AlterAppKeyMap
NAME
AlterAppKeyMap -- Changes keyboard mappings for a keymap
SYNOPSIS
AlterAppKeyMap(mykeymap, keyarray, arrayentries);
void AlterAppKeyMap(struct KeyMap *,
struct MyKey *,
UWORD);
FUNCTION
Using an array of MyKey structures (which describe a series of
rawkeys), this function changes the rawkey's corresponding
mapping values in mykeymap. Only call this function on
a private copy of a KeyMap (including its data).
INPUTS
mykeymap = pointer to a KeyMap structure. AlterAppKeyMap() will
make changes to this KeyMap's data, so this KeyMap should
be a private copy of a KeyMap (including the data the KeyMap
points to).
keyarray = pointer to an array of struct MyKey (from
appkeymap.h):
struct MyKey
{
UBYTE RawCode; /* RawCode of character to change */
/* in the KeyMap. Correponds to the */
/* Lo/HiKeyMap structures from the */
/* KeyMap structure. */
UBYTE MapType; /* The Lo/HiKeyMapTypes field. */
UBYTE Capsable; /* This TRUE/FALSE state of this bit */
/* gets translated to the correspond- */
/* bit in KeyMap.Lo/HiCapsable. */
UBYTE Repeatable; /* This TRUE/FALSE state of this bit */
/* gets translated to the correspond- */
/* bit in KeyMap.Lo/HiRepeatable. */
ULONG Map; /* Map data for key. This points to */
/* data for the rawkey. Its format */
/* depends on the key type. This field */
/* correponds to KeyMap.Lo/HiKeyMap. */
};
arrayentries = The number of MyKey entries in keyarray.
RESULT
For each MyKey entry in keyarray, AlterKeyMap() finds the correpsonding
raw key entry in mykeymap and changes the data to match the entry
in keyarray. AlterKeyMap() makes changes directly to the KeyMap's
data, so don't call this function on a system copy of a keymap, make
a copy of it.
Note that the console.device's CD_ASKKEYMAP only copies a KeyMap
structure, which is only a set of pointers. If you want to customize
a copy of a keymap, you also have to duplicate the data that
the KeyMap references. If you do not duplicate the keymap data when
customizing a keymap, you'll write over data that many keymaps are
currently using.
This function assumes that the keymap passed to it was duplicated
using the CreateAppKeyMap() function. CreateAppKeyMap() puts
the keymap tables in a specific order and AlterAppKeyMap()
expects to find the tables in that order. Only call AlterAppKeyMap()
on keymaps duplicated with CreateAppKeyMap().
BUGS
SEE ALSO
console.device/CD_ASKKEYMAP console.device/CD_SETKEYMAP "appkeymap.h"
AppKeyMap.o/CreateAppKeyMap() AppKeyMap.o/DeleteAppKeyMap()
AppKeyMap.o/CreateAppKeyMap AppKeyMap.o/CreateAppKeyMap
NAME
CreateAppKeyMap -- Create a new KeyMap by duplicating an existing one.
SYNOPSIS
newkeymap = CreateAppKeyMap(origkeymap);
struct KeyMap *CreateAppKeyMap(struct KeyMap *);
FUNCTION
This function accepts a pointer to a KeyMap structure and duplicates it.
CreateAppKeyMap() allocates the memory for a KeyMap structure and all
the tables associated with that keymap.
INPUTS
origkeymap = points to a KeyMap to duplicate.
RESULT
If successful, this function returns a pointer to a duplicate of
origkeymap. CreateAppKeyMap() duplicates all of the tables that
origkeymap references, so an application can make changes to the
duplicate. If CreateAppKeyMap() fails, it returns NULL. The
DeleteAppKeyMap() function deallocates the resources allocated
by CreateAppKeyMap().
CreateAppKeyMap() places the duplicate tables in an order so
that a "Lo" table (for example, KeyMap.km_LoKeyMap) is immediately
followed by the corresponding "Hi" table (KeyMap.km_HiKeyMap).
This allows application to reference the two tables as one using
the raw key value as an index.
BUGS
SEE ALSO
console.device/CD_ASKKEYMAP console.device/CD_SETKEYMAP "appkeymap.h"
AppKeyMap.o/AlterAppKeyMap() AppKeyMap.o/DeleteAppKeyMap()
AppKeyMap.o/DeleteAppKeyMap AppKeyMap.o/DeleteAppKeyMap
NAME
DeleteAppKeyMap -- Relinquish the resources allocated by
CreateAppKeyMap.
SYNOPSIS
DeleteAppKeyMap(mykeymap);
void DeleteAppKeyMap(struct KeyMap *);
FUNCTION
This function accepts a pointer to a keymap allocated by
CreateAppKeyMap() and deallocates the resources allocated
by that function.
INPUTS
mykeymap = points to a KeyMap to deallocate.
RESULT
Frees memory previously used by mykeymap and its associated tables.
BUGS
SEE ALSO
console.device/CD_ASKKEYMAP console.device/CD_SETKEYMAP "appkeymap.h"
AppKeyMap.o/AlterAppKeyMap() AppKeyMap.o/CreateAppKeyMap()