palm-os-sdk/PalmOne/Incs/common/libraries/pmkeylib/PmKeyLibCommon.h

116 lines
3.6 KiB
C

/*******************************************************************************
* Copyright (c) 2004-2005 palmOne, Inc. or its subsidiaries.
* All rights reserved.
******************************************************************************/
/**
* @defgroup PmKeyLib Key Library
* @brief This library provides support for the key-related functionalities.
*
* Application can use this library to detect the state of particular keys, whether
* they are pressed or released. This library can also be used to enable/disable
* a certain key programmatically, translate keycodes to characters, and also manage
* the different settings of the keypad.
*
* @{
* @}
*/
/**
* @ingroup PmKeyLib
*/
/**
* @file PmKeyLibCommon.h
* @brief Public 68k common header file for system library that exports key-related APIs.
*
* This library is based on key APIs from HsExtensions and was broken apart from
* HsExtensions so the APIs could be ported to other platforms.
*/
#ifndef __PMKEYLIBCOMMON_H__
#define __PMKEYLIBCOMMON_H__
#include <palmOneSystemCommon.h> // for sysMakeLibAPIVersion
/********************************************************************
* Constants and Enums
********************************************************************/
#define kPmKeyLibType sysFileTLibrary /**< standard library type */
#define kPmKeyLibCreator pmFileCKeyLib /**< PmKeyLib creator ID */
#define kPmKeyLibName "PmKeyLib-PmKe" /**< PmKeyLib database name */
#define kPmKeyLibAPIMajorVersion 2 /**< Major version incremented when API
changes */
#define kPmKeyLibAPIMinorVersion 0 /**< Minor version incremented with
each release of library that
doesn't change the API */
#define kPmKeyLibAPIVersion sysMakeLibAPIVersion(kPmKeyLibAPIMajorVersion, kPmKeyLibAPIMinorVersion)
/**
* @name Feature values
*/
/*@{*/
#define kPmKeyLibFtrValAPIVersion 0 /**< Feature value used to get/set
library API version
(kPmKeyLibAPIVersion). Note
that the first release of the
library did not set this feature.
Therefore, if the library does
exist but the feature does not,
you can assume the major version
of the library is 1. Note also
that the feature is not set
until library is loaded so you
must load PmKeyLib before getting
the feature */
/*@}*/
// Add in once we need public attributes
enum PmKeyAttrEnumTag
{
/*
* End of enums in API version 1 (no enums defined in version 1)
*/
pmKeyAttrPagingMode /**< Whether currently pressed key is in page mode */
/*
* End of enums in API version 2
*/
/*
* Attributes greater than 0x9000 are defined for internal use
* in Prv/PmPrvKeyLibCommon.h
*/
};
typedef UInt16 PmKeyAttrEnum;
/********************************************************************
* Traps
********************************************************************/
/**
* @name Function Traps
*/
/*@{*/
#define kPmKeyLibTrapOpen sysLibTrapOpen
#define kPmKeyLibTrapClose sysLibTrapClose
#define kPmKeyLibTrapKeysPressed (sysLibTrapCustom)
#define kPmKeyLibTrapStop (sysLibTrapCustom+1)
#define kPmKeyLibTrapEnableKey (sysLibTrapCustom+2)
#define kPmKeyLibTrapChrCodeToKeyCode (sysLibTrapCustom+3)
#define kPmKeyLibTrapKeyCodeToChrCode (sysLibTrapCustom+4)
#define kPmKeyLibTrapEventIsFromKeyboard (sysLibTrapCustom+5)
#define kPmKeyLibTrapAttrGet (sysLibTrapCustom+6)
#define kPmKeyLibTrapAttrSet (sysLibTrapCustom+7)
/*
* End of traps in API version 1
*/
/*@}*/
#endif // __PMKEYLIBCOMMON_H__