226 lines
6.8 KiB
C
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__
|