palm-os-sdk/sdk-4/include/Core/System/Graffiti.h
2016-08-25 07:53:48 -03:00

226 lines
6.8 KiB
C

/******************************************************************************
*
* Copyright (c) 1994-2000 Palm, Inc. or its subsidiaries.
* All rights reserved.
*
* File: Graffiti.h
*
* Release: Palm OS SDK 4.0 (63220)
*
* Description:
* Header for the Graffiti interface
*
* History:
* 6/30 RM - Created by Ron Marianetti
*
*****************************************************************************/
#ifndef __GRAFFITI_H__
#define __GRAFFITI_H__
#include <PalmTypes.h>
#include <CoreTraps.h>
#include <Rect.h>
/*------------------------------------------------------------------------------
* Match info structure. Returned by GrfMatch and GrfMatchGlyph
*-----------------------------------------------------------------------------*/
typedef struct {
UInt8 glyphID; /* glyph ID of this match */
UInt8 unCertainty; /* unCertainty of this match (0 most certain) */
} GrfMatchType;
#define grfMaxMatches 4
typedef struct {
UInt16 numMatches; /* number of matches returned in this structure */
GrfMatchType match[grfMaxMatches];
} GrfMatchInfoType;
typedef GrfMatchInfoType* GrfMatchInfoPtr;
//----------------------------------------------------------------------------
// Escape codes preceding special sequences in the dictionary or macros
//----------------------------------------------------------------------------
// In dictionary or macros preceding virtual key event sequences. These are always
// 13 byte sequences that have ASCII encoded values for the ascii code, keyCode,
// and modifiers:
// grfVirtualSequence, ascii, keyCode, modifiers.
// 1 byte 4 bytes 4 bytes 4 bytes
#define grfVirtualSequence 0x01
// In dictionary to tell us about temp shift state changes.
#define grfShiftSequence 0x02
// In dictionary/macros to hide special features
#define grfSpecialSequence 0x03
// Determine if a string has a sequence
#define HasVirtualSequence(s) (s[0] == grfVirtualSequence)
#define HasSpecialSequence(s) (s[0] == grfSpecialSequence)
/*------------------------------------------------------------------------------
* Temp shift states, returned by GrfGetState
*-----------------------------------------------------------------------------*/
#define grfTempShiftPunctuation 1
#define grfTempShiftExtended 2
#define grfTempShiftUpper 3
#define grfTempShiftLower 4
/*------------------------------------------------------------------------------
* Macro (aka Shortcut) related constants/macros
* Use the definitions in ShortcutLib.h instead!
*-----------------------------------------------------------------------------*/
// Char indicating a seqeunce of characters to expand.
#define grfExpansionSequence '@'
// Chars indicating what to expand into
#define expandDateChar 'D'
#define expandTimeChar 'T'
#define expandStampChar 'S' // This follows 'D' or 'T' for the sake
// of the mnemonic name.
#define HasExpansionSequence(s) (s[0] == grfExpansionSequence)
// max shortcut name length
#define grfNameLength 8 // eight letters possible (don't forget CR)
// index which is not a shortcut
#define grfNoShortCut 0xffff
/************************************************************
* Graffiti result codes
*************************************************************/
#define grfErrBadParam (grfErrorClass | 1)
#define grfErrPointBufferFull (grfErrorClass | 2)
#define grfErrNoGlyphTable (grfErrorClass | 3)
#define grfErrNoDictionary (grfErrorClass | 4)
#define grfErrNoMapping (grfErrorClass | 5)
#define grfErrMacroNotFound (grfErrorClass | 6)
#define grfErrDepthTooDeep (grfErrorClass | 7)
#define grfErrMacroPtrTooSmall (grfErrorClass | 8)
#define grfErrNoMacros (grfErrorClass | 9)
#define grfErrMacroIncomplete (grfErrorClass | 129) // (grfWarningOffset+1)
#define grfErrBranchNotFound (grfErrorClass | 130) // (grfWarningOffset+2)
#define grfErrGenericHWRErrBase (grfErrorClass | 16)
#define grfErrNoHWRInstalled (grfErrGenericHWRErrBase)
/************************************************************
* Graffiti interface procedures
*************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
#ifdef BUILDING_GRAFFITI_EXT
#define GRF_TRAP(x)
#else
#define GRF_TRAP SYS_TRAP
#endif
//-----------------------------------------------------------------
// High Level Calls
//------------------------------------------------------------------
Err GrfInit (void)
GRF_TRAP(sysTrapGrfInit);
Err GrfFree (void)
GRF_TRAP(sysTrapGrfFree);
Err GrfProcessStroke(PointType *startPtP, PointType *endPtP,
Boolean upShift)
GRF_TRAP(sysTrapGrfProcessStroke);
Err GrfFieldChange(Boolean resetState, UInt16 *characterToDelete)
GRF_TRAP(sysTrapGrfFieldChange);
Err GrfGetState(Boolean *capsLockP, Boolean *numLockP,
UInt16 *tempShiftP, Boolean *autoShiftedP)
GRF_TRAP(sysTrapGrfGetState);
Err GrfSetState(Boolean capsLock, Boolean numLock,
Boolean upperShift)
GRF_TRAP(sysTrapGrfSetState);
//-----------------------------------------------------------------
// Mid Level Calls
//------------------------------------------------------------------
Err GrfFlushPoints (void)
GRF_TRAP(sysTrapGrfFlushPoints);
Err GrfAddPoint (PointType *pt)
GRF_TRAP(sysTrapGrfAddPoint);
Err GrfInitState(void)
GRF_TRAP(sysTrapGrfInitState);
Err GrfCleanState(void)
GRF_TRAP(sysTrapGrfCleanState);
Err GrfMatch (UInt16 *flagsP, void *dataPtrP, UInt16 *dataLenP,
UInt16 *uncertainLenP, GrfMatchInfoPtr matchInfoP)
GRF_TRAP(sysTrapGrfMatch);
Err GrfGetMacro(Char *nameP, UInt8 *macroDataP,
UInt16 *dataLenP)
SYS_TRAP(sysTrapGrfGetMacro);
Err GrfGetAndExpandMacro(Char *nameP, UInt8 *macroDataP,
UInt16 *dataLenP)
SYS_TRAP(sysTrapGrfGetAndExpandMacro);
//-----------------------------------------------------------------
// Low Level Calls
//------------------------------------------------------------------
Err GrfFilterPoints (void)
GRF_TRAP(sysTrapGrfFilterPoints);
Err GrfGetNumPoints(UInt16 *numPtsP)
GRF_TRAP(sysTrapGrfGetNumPoints);
Err GrfGetPoint(UInt16 index, PointType *pointP)
GRF_TRAP(sysTrapGrfGetPoint);
Err GrfFindBranch(UInt16 flags)
GRF_TRAP(sysTrapGrfFindBranch);
Err GrfMatchGlyph (GrfMatchInfoPtr matchInfoP,
Int16 maxUnCertainty, UInt16 maxMatches)
GRF_TRAP(sysTrapGrfMatchGlyph);
Err GrfGetGlyphMapping (UInt16 glyphID, UInt16 *flagsP,
void *dataPtrP, UInt16 *dataLenP, UInt16 *uncertainLenP)
GRF_TRAP(sysTrapGrfGetGlyphMapping);
Err GrfGetMacroName(UInt16 index, Char *nameP)
SYS_TRAP(sysTrapGrfGetMacroName);
Err GrfDeleteMacro(UInt16 index)
SYS_TRAP(sysTrapGrfDeleteMacro);
Err GrfAddMacro(const Char *nameP, UInt8 *macroDataP,
UInt16 dataLen)
SYS_TRAP(sysTrapGrfAddMacro);
#ifdef __cplusplus
}
#endif
#endif //__SYSEVTMGR_H__