60 lines
1.4 KiB
C
60 lines
1.4 KiB
C
/*
|
|
File: ligstate.h
|
|
|
|
Contains: This file contains the definitions
|
|
needed to get/set letter image group state.
|
|
|
|
Written by: Mikhail Ovsiannikov
|
|
|
|
Copyright: © 1998 by ParaGraph Int'l, all rights reserved.
|
|
|
|
Change History (most recent first):
|
|
|
|
<1> 3/24/98 mbo New today
|
|
|
|
*/
|
|
|
|
|
|
#ifndef __LISTATE_H
|
|
#define __LISTATE_H
|
|
|
|
enum E_LIG_STATE {
|
|
LIG_STATE_UNDEF = 0,
|
|
LIG_STATE_OFTEN = 1,
|
|
LIG_STATE_RARELY = 2,
|
|
LIG_STATE_NEVER = 3
|
|
};
|
|
|
|
#define LIG_FIRST_LETTER 0x20
|
|
#define LIG_LAST_LETTER 0xFF
|
|
#define LIG_NUM_LETTERS (LIG_LAST_LETTER - LIG_FIRST_LETTER + 1)
|
|
#if LIG_NUM_LETTERS <= 0
|
|
#error
|
|
#endif
|
|
#define LIG_LET_NUM_GROUPS 8
|
|
#define LIG_NUM_BITS_PER_GROUP 2
|
|
#define LIG_NUM_BIT_GROUP_MASK 0x3
|
|
|
|
#define LIG_STATES_SIZE \
|
|
(LIG_NUM_LETTERS * LIG_LET_NUM_GROUPS * LIG_NUM_BITS_PER_GROUP / 8)
|
|
|
|
typedef unsigned char LIGStatesType[LIG_STATES_SIZE];
|
|
|
|
/*
|
|
* Sets state for a given letter and group.
|
|
* Returns 0 if letter and group are in the allowed range, -1 otherwise.
|
|
*/
|
|
int LIGSetGroupState(LIGStatesType *ioGStates,
|
|
int inLetter,
|
|
int inGroup,
|
|
E_LIG_STATE inGroupState);
|
|
|
|
/*
|
|
* Returns state for a given letter and group.
|
|
*/
|
|
E_LIG_STATE LIGGetGroupState(const LIGStatesType *inGStates,
|
|
int inLetter,
|
|
int inGroup);
|
|
|
|
#endif /* __LISTATE_H */
|