From 7553b7f9d4dddc2235c137d41de8ce22547bebe3 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Wed, 1 Jul 2015 17:36:37 +0200 Subject: Initial commit --- osfont.dcl | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 osfont.dcl (limited to 'osfont.dcl') diff --git a/osfont.dcl b/osfont.dcl new file mode 100644 index 0000000..f3d1042 --- /dev/null +++ b/osfont.dcl @@ -0,0 +1,77 @@ +definition module osfont + + +// Clean Object I/O library, version 1.2 + + +from StdOverloaded import class == +from ostoolbox import :: OSToolbox +from ostypes import :: OSPictContext + + +:: Font +:: OSFont + = { osfontname :: !String // Name of the font + , osfontstyles:: !Int // Style variations of the font + , osfontsize :: !Int // Point size of the font + } +:: OSFontDef + :== ( !String // Name of the font + , ![String] // Style variations of the font + , !Int // Point size of the font + ) + +instance == OSFont // Equality on all fields + +// Font constants: +osSerifFontDef :: OSFontDef +osSansSerifFontDef :: OSFontDef +osSmallFontDef :: OSFontDef +osNonProportionalFontDef :: OSFontDef +osSymbolFontDef :: OSFontDef + +/* osSelectfont fontdef + creates a font of the given name, style variations, and size in points. + If successful, the Bool is True, and the Font contains a useful value. + Otherwise, the Bool is False, and the Font is a dummy value. + osDefaultfont + returns the default window text font. + osDialogfont + returns the default dialog text font. + osFontgetdef + returns the requested name, style variations, and size in points of the given font. + osFontgetimp + returns the internal representation of the font. +*/ +osSelectfont :: !OSFontDef !*OSToolbox -> (!Bool,!Font, !*OSToolbox) +osDefaultfont :: !*OSToolbox -> ( !Font, !*OSToolbox) +osDialogfont :: !*OSToolbox -> ( !Font, !*OSToolbox) +osFontgetdef :: !Font -> OSFontDef +osFontgetimp :: !Font -> OSFont + +/* osFontnames + returns the set of names all currently available fonts. + osFontstyles fontname + returns the set of all currently available style variations for the font with the given + fontname. + osFontsizes x y fontname + returns the set of all currently available sizes for the font with the given fontname + that lie between x and y (both inclusive). +*/ +osFontnames :: !*OSToolbox -> (![String], !*OSToolbox) +osFontstyles :: !String !*OSToolbox -> (![String], !*OSToolbox) +osFontsizes :: !Int !Int !String !*OSToolbox -> (![Int], !*OSToolbox) + +/* osGetfontcharwidths hdcPassed maybeHdc chars font + returns the widths of all given chars in the same order of the given font. + osGetfontstringwidth hdcPassed maybeHdc string font + returns the width of the given string of the given font. + osGetfontstringwidths hdcPassed maybeHdc strings font + returns the widths of all given strings in the same order of the given font. + osGetfontmetrics hdcPassed maybeHdc font + returns the (ascent,descent,leading,maxwidth) of the given font in that order. +*/ +osGetfontcharwidths :: !Bool !OSPictContext ![Char] !Font !*OSToolbox -> (![Int], !*OSToolbox) +osGetfontstringwidth :: !Bool !OSPictContext !String !Font !*OSToolbox -> (!Int, !*OSToolbox) +osGetfontstringwidths :: !Bool !OSPictContext ![String] !Font !*OSToolbox -> (![Int], !*OSToolbox) +osGetfontmetrics :: !Bool !OSPictContext !Font !*OSToolbox -> (!(!Int,!Int,!Int,!Int),!*OSToolbox) -- cgit v1.2.3