The Font structure contains functions and structures to manipulate fonts and draw text.
structure Font :
sig
type HDC and HFONT
type COLORREF = Color.COLORREF
type POINT = {x: int, y: int}
and SIZE = {cx: int, cy: int }
and RECT = { top: int, left: int, bottom: int, right: int }
datatype FontFamily =
FF_DECORATIVE
| FF_DONTCARE
| FF_MODERN
| FF_ROMAN
| FF_SCRIPT
| FF_SWISS
and FontPitch = DEFAULT_PITCH | FIXED_PITCH | VARIABLE_PITCH
and OutputPrecision =
OUT_CHARACTER_PRECIS
| OUT_DEFAULT_PRECIS
| OUT_DEVICE_PRECIS
| OUT_OUTLINE_PRECIS
| OUT_RASTER_PRECIS
| OUT_SCREEN_OUTLINE_PRECIS
| OUT_STRING_PRECIS
| OUT_STROKE_PRECIS
| OUT_TT_ONLY_PRECIS
| OUT_TT_PRECIS
and OutputQuality =
DEFAULT_QUALITY
| DRAFT_QUALITY
| OTHER_QUALITY of int
| PROOF_QUALITY
and CharacterSet =
ANSI_CHARSET
| CHINESEBIG5_CHARSET
| DEFAULT_CHARSET
| HANGEUL_CHARSET
| OEM_CHARSET
| OTHER_CHARSET of int
| SHIFTJIS_CHARSET
| SYMBOL_CHARSET
type FontWeight = int
val FW_BLACK : FontWeight
val FW_BOLD : FontWeight
val FW_DEMIBOLD : FontWeight
val FW_DONTCARE : FontWeight
val FW_EXTRABOLD : FontWeight
val FW_EXTRALIGHT : FontWeight
val FW_HEAVY : FontWeight
val FW_LIGHT : FontWeight
val FW_MEDIUM : FontWeight
val FW_NORMAL : FontWeight
val FW_REGULAR : FontWeight
val FW_SEMIBOLD : FontWeight
val FW_THIN : FontWeight
val FW_ULTRABOLD : FontWeight
val FW_ULTRALIGHT : FontWeight
type ClippingPrecision
val CLIP_CHARACTER_PRECIS : ClippingPrecision
val CLIP_DEFAULT_PRECIS : ClippingPrecision
val CLIP_EMBEDDED : ClippingPrecision
val CLIP_LH_ANGLES : ClippingPrecision
val CLIP_MASK : ClippingPrecision
val CLIP_STROKE_PRECIS : ClippingPrecision
val CLIP_TT_ALWAYS : ClippingPrecision
type LOGFONT =
{
height : int,
width : int,
escapement : int,
orientation : int,
weight : FontWeight,
italic : bool,
underline : bool,
strikeOut : bool,
charSet : CharacterSet,
outputPrecision: OutputPrecision,
clipPrecision : ClippingPrecision,
quality : OutputQuality,
pitch: FontPitch,
family: FontFamily,
faceName : string
}
datatype DrawTextMode =
DT_BOTTOM
| DT_CALCRECT
| DT_CENTER
| DT_EXPANDTABS
| DT_EXTERNALLEADING
| DT_INTERNAL
| DT_LEFT
| DT_NOCLIP
| DT_NOPREFIX
| DT_RIGHT
| DT_SINGLELINE
| DT_TABSTOP of int
| DT_TOP
| DT_VCENTER
| DT_WORDBREAK
and TextAlign =
TA_BASELINE
| TA_BOTTOM
| TA_CENTER
| TA_LEFT
| TA_NOUPDATECP
| TA_RIGHT
| TA_TOP
| TA_UPDATECP
and TextMetricPitch =
TMPF_DEVICE
| TMPF_FIXED_PITCH
| TMPF_TRUETYPE
| TMPF_VECTOR
and ExtendedTextMode =
ETO_CLIPPED
| ETO_GLYPH_INDEX
| ETO_IGNORELANGUAGE
| ETO_OPAQUE
| ETO_RTLREADING
type TEXTMETRIC =
{ height: int, ascent: int, descent: int, internalLeading: int, externalLeading: int,
aveCharWidth: int, maxCharWidth: int, weight: int, overhang: int,
digitizedAspectX: int, digitizedAspectY: int, firstChar: char, lastChar: char,
defaultChar: char, breakChar: char, italic: bool, underlined: bool, struckOut: bool,
pitch: TextMetricPitch list, family: FontFamily, charSet : CharacterSet }
val AddFontResource : string -> int
val CreateFont : LOGFONT -> HFONT
val CreateFontIndirect : LOGFONT -> HFONT
val CreateScalableFontResource : int * string * string * string -> unit
val DrawText : HDC * string * RECT * DrawTextMode list -> int
val ExtTextOut : HDC * POINT * ExtendedTextMode list *
RECT option * string * int list -> unit
val GetAspectRatioFilterEx : HDC -> SIZE
val GetCharABCWidths : HDC * char * char -> (int * int * int) list
val GetCharABCWidthsFloat : HDC * char * char -> (real * real * real) list
val GetCharWidth32 : HDC * char * char -> int list
val GetTabbedTextExtent : HDC * string * int list -> SIZE
val GetCharWidthFloat : HDC * int * int -> real list
val GetTextAlign : HDC -> TextAlign list
val GetTextCharacterExtra : HDC -> int
val GetTextColor : HDC -> COLORREF
val GetTextExtentExPoint : HDC * string * int option ->
{fit: int option, size: SIZE, extents: int list}
val GetTextExtentPoint32 : HDC * string -> SIZE
val GetTextFace : HDC -> string
val GetTextMetrics : HDC -> TEXTMETRIC
val RemoveFontResource : string -> unit
val SetMapperFlags : HDC * bool -> bool
val SetTextAlign : HDC * TextAlign list -> TextAlign list
val SetTextCharacterExtra : HDC * int -> int
val SetTextColor : HDC * COLORREF -> COLORREF
val SetTextJustification : HDC * int * int -> unit
val TabbedTextOut: HDC * POINT * string * int list * int -> SIZE
val TextOut : HDC * POINT * String.string -> unit
end