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

214 lines
6.4 KiB
C

/*******************************************************************
* Pilot Software
*
* Copyright(c) 1994, Palm Computing Inc., All Rights Reserved
*
*-------------------------------------------------------------------
* FileName:
* Graffiti.h
*
* Description:
* Header for the Graffiti interface
*
* History:
* 6/30 RM - Created by Ron Marianetti
*
*******************************************************************/
#ifndef __GRAFFITI_H__
#define __GRAFFITI_H__
#include <Common.h>
#define grfNoShortCut 0xffff // Index which isn't a shortcut
/*------------------------------------------------------------------------------
* Match info structure. Returned by GrfMatch and GrfMatchGlyph
*-----------------------------------------------------------------------------*/
typedef struct {
Byte glyphID; /* glyph ID of this match */
Byte unCertainty; /* unCertainty of this match (0 most certain) */
} GrfMatchType;
#define grfMaxMatches 4
typedef struct {
Word numMatches; /* number of matches returned in this structure */
GrfMatchType match[grfMaxMatches];
} GrfMatchInfoType;
typedef GrfMatchInfoType* GrfMatchInfoPtr;
#define grfNameLength 8 // eight letters possible (don't forget CR)
//#define grfTextLength 56 // Use <SysEvtPrv.h>
//----------------------------------------------------------------------------
// Escape codes preceding special sequences in the dictionary or macros
//----------------------------------------------------------------------------
// In dictionary or macros preceding virtual key event sequences. These are always
// 11 byte sequences that have ASCII encoded values for the ascii code, keyCode,
// and modifiers:
// grfVirtualSequence, ascii, keyCode, modifiers.
// 1 byte 4 bytes 4 bytes 2 byte
#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
// 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 shortcutBinaryDataFlag 0x01
// Determine if a string has a sequence
#define HasVirtualSequence(s) (s[0] == grfVirtualSequence)
#define HasSpecialSequence(s) (s[0] == grfSpecialSequence)
#define HasExpansionSequence(s) (s[0] == grfExpansionSequence)
/*------------------------------------------------------------------------------
* Temp shift states, returned by GrfGetState
*-----------------------------------------------------------------------------*/
#define grfTempShiftPunctuation 1
#define grfTempShiftExtended 2
#define grfTempShiftUpper 3
#define grfTempShiftLower 4
/************************************************************
* 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)
/************************************************************
* Graffiti interface procedures
*************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
//-----------------------------------------------------------------
// High Level Calls
//------------------------------------------------------------------
Err GrfInit (void)
SYS_TRAP(sysTrapGrfInit);
Err GrfFree (void)
SYS_TRAP(sysTrapGrfFree);
Err GrfProcessStroke(PointType* startPtP, PointType* endPtP,
Boolean upShift)
SYS_TRAP(sysTrapGrfProcessStroke);
Err GrfFieldChange(Boolean resetState, UIntPtr characterToDelete)
SYS_TRAP(sysTrapGrfFieldChange);
Err GrfGetState(Boolean* capsLockP, Boolean* numLockP,
WordPtr tempShiftP, Boolean* autoShiftedP)
SYS_TRAP(sysTrapGrfGetState);
Err GrfSetState(Boolean capsLock, Boolean numLock,
Boolean upperShift)
SYS_TRAP(sysTrapGrfSetState);
//-----------------------------------------------------------------
// Mid Level Calls
//------------------------------------------------------------------
Err GrfFlushPoints (void)
SYS_TRAP(sysTrapGrfFlushPoints);
Err GrfAddPoint (PointType* pt)
SYS_TRAP(sysTrapGrfAddPoint);
Err GrfInitState(void)
SYS_TRAP(sysTrapGrfInitState);
Err GrfCleanState(void)
SYS_TRAP(sysTrapGrfCleanState);
Err GrfMatch (WordPtr flagsP, void* dataPtrP, WordPtr dataLenP,
WordPtr uncertainLenP, GrfMatchInfoPtr matchInfoP)
SYS_TRAP(sysTrapGrfMatch);
Err GrfGetMacro(CharPtr nameP, BytePtr macroDataP,
WordPtr dataLenP)
SYS_TRAP(sysTrapGrfGetMacro);
Err GrfGetAndExpandMacro(CharPtr nameP, BytePtr macroDataP,
WordPtr dataLenP)
SYS_TRAP(sysTrapGrfGetAndExpandMacro);
//-----------------------------------------------------------------
// Low Level Calls
//------------------------------------------------------------------
Err GrfFilterPoints (void)
SYS_TRAP(sysTrapGrfFilterPoints);
Err GrfGetNumPoints(WordPtr numPtsP)
SYS_TRAP(sysTrapGrfGetNumPoints);
Err GrfGetPoint(Word index, PointType* pointP)
SYS_TRAP(sysTrapGrfGetPoint);
Err GrfFindBranch(Word flags)
SYS_TRAP(sysTrapGrfFindBranch);
Err GrfMatchGlyph (GrfMatchInfoPtr matchInfoP,
Word maxUnCertainty, Word maxMatches)
SYS_TRAP(sysTrapGrfMatchGlyph);
Err GrfGetGlyphMapping (Word glyphID, WordPtr flagsP,
void* dataPtrP, WordPtr dataLenP, WordPtr uncertainLenP)
SYS_TRAP(sysTrapGrfGetGlyphMapping);
Err GrfGetMacroName(Word index, CharPtr nameP)
SYS_TRAP(sysTrapGrfGetMacroName);
Err GrfDeleteMacro(Word index)
SYS_TRAP(sysTrapGrfDeleteMacro);
Err GrfAddMacro(CharPtr nameP, BytePtr macroDataP,
Word dataLen)
SYS_TRAP(sysTrapGrfAddMacro);
#ifdef __cplusplus
}
#endif
#endif //__SYSEVTMGR_H__