134 lines
5.2 KiB
C
134 lines
5.2 KiB
C
// height.c
|
|
|
|
#include "tsunamip.h"
|
|
|
|
const BYTE rgBHUni[94] =
|
|
{
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0021 !
|
|
BASE_QUOTE | XHEIGHT_PUNC, // 0x0022 "
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0023 #
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0024 $
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0025 %
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0026 &
|
|
BASE_QUOTE | XHEIGHT_PUNC, // 0x0027 '
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0028 (
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0029 )
|
|
BASE_NORMAL | XHEIGHT_HALF, // 0x002A *
|
|
BASE_NORMAL | XHEIGHT_HALF, // 0x002B +
|
|
BASE_NORMAL | XHEIGHT_PUNC, // 0x002C ,
|
|
BASE_DASH | XHEIGHT_DASH, // 0x002D -
|
|
BASE_NORMAL | XHEIGHT_DASH, // 0x002E .
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x002F /
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0030 0
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0031 1
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0032 2
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0033 3
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0034 4
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0035 5
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0036 6
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0037 7
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0038 8
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0039 9
|
|
BASE_NORMAL | XHEIGHT_HALF, // 0x003A :
|
|
BASE_NORMAL | XHEIGHT_HALF, // 0x003B ;
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x003C <
|
|
BASE_DASH | XHEIGHT_HALF, // 0x003D =
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x003E >
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x003F ?
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0040 @
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0041 A
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0042 B
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0043 C
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0044 D
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0045 E
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0046 F
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0047 G
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0048 H
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0049 I
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x004A J
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x004B K
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x004C L
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x004D M
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x004E N
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x004F O
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0050 P
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0051 Q
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0052 R
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0053 S
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0054 T
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0055 U
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0056 V
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0057 W
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0058 X
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0059 Y
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x005A Z
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x005B [
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x005C
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x005D ]
|
|
BASE_QUOTE | XHEIGHT_PUNC, // 0x005E ^
|
|
BASE_NORMAL | XHEIGHT_DASH, // 0x005F _
|
|
BASE_QUOTE | XHEIGHT_PUNC, // 0x0060 `
|
|
BASE_NORMAL | XHEIGHT_HALF, // 0x0061 a
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0062 b
|
|
BASE_NORMAL | XHEIGHT_HALF, // 0x0063 c
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0064 d
|
|
BASE_NORMAL | XHEIGHT_HALF, // 0x0065 e
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0066 f
|
|
BASE_DESCENDER | XHEIGHT_3Q, // 0x0067 g
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0068 h
|
|
BASE_NORMAL | XHEIGHT_3Q, // 0x0069 i
|
|
BASE_DESCENDER | XHEIGHT_3Q, // 0x006A j
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x006B k
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x006C l
|
|
BASE_NORMAL | XHEIGHT_HALF, // 0x006D m
|
|
BASE_NORMAL | XHEIGHT_HALF, // 0x006E n
|
|
BASE_NORMAL | XHEIGHT_HALF, // 0x006F o
|
|
BASE_DESCENDER | XHEIGHT_3Q, // 0x0070 p
|
|
BASE_DESCENDER | XHEIGHT_3Q , // 0x0071 q
|
|
BASE_NORMAL | XHEIGHT_HALF, // 0x0072 r
|
|
BASE_NORMAL | XHEIGHT_HALF, // 0x0073 s
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x0074 t
|
|
BASE_NORMAL | XHEIGHT_HALF, // 0x0075 u
|
|
BASE_NORMAL | XHEIGHT_HALF, // 0x0076 v
|
|
BASE_NORMAL | XHEIGHT_HALF, // 0x0077 w
|
|
BASE_NORMAL | XHEIGHT_HALF, // 0x0078 x
|
|
BASE_DESCENDER | XHEIGHT_3Q, // 0x0079 y
|
|
BASE_NORMAL | XHEIGHT_HALF, // 0x007A z
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x007B {
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x007C |
|
|
BASE_NORMAL | XHEIGHT_FULL, // 0x007D }
|
|
BASE_DASH | XHEIGHT_PUNC // 0x007E ~
|
|
};
|
|
|
|
BYTE PUBLIC TypeFromSYM(SYM sym)
|
|
{
|
|
if ((sym >= 0x21) && (sym <= 0x7E))
|
|
{
|
|
return(rgBHUni[sym - 0x21]);
|
|
}
|
|
|
|
ASSERT(0);
|
|
return(0);
|
|
}
|
|
|
|
VOID PUBLIC GetBoxinfo(BOXINFO * boxinfo, int iBox, LPGUIDE lpguide)
|
|
{
|
|
//
|
|
// The size of the writing area is computed first.
|
|
//
|
|
|
|
if (lpguide->cyBase == 0)
|
|
boxinfo->size = lpguide->cyBox;
|
|
else
|
|
boxinfo->size = lpguide->cyBase;
|
|
|
|
if (lpguide->cyMid == 0)
|
|
boxinfo->xheight = boxinfo->size / 2;
|
|
else
|
|
boxinfo->xheight = lpguide->cyMid;
|
|
|
|
boxinfo->baseline = boxinfo->size + lpguide->yOrigin + (iBox / lpguide->cHorzBox) * lpguide->cyBox;
|
|
|
|
boxinfo->midline = boxinfo->baseline - boxinfo->xheight;
|
|
}
|