;/* fontreq.c - Execute me to compile me with Lattice 5.10
LC -b1 -cfistq -v -y -j73 fontreq.c
Blink FROM LIB:c.o,fontreq.o TO fontreq LIBRARY LIB:LC.lib,LIB:Amiga.lib
quit
**
** The following example illustrates how to use a font requester.
*/
#include <exec/types.h>
#include <libraries/asl.h>
#include <clib/asl_protos.h>
#include <clib/exec_protos.h>
#include <stdio.h>
#ifdef LATTICE
int CXBRK(void) { return(0); } /* Disable Lattice CTRL/C handling */
void chkabort(void) { return; } /* really */
#endif
UBYTE *vers = "$VER: fontreq 37.0";
struct Library *AslBase = NULL;
/* Our replacement strings for the "mode" cycle gadget. The
** first string is the cycle gadget's label. The other strings
** are the actual strings that will appear on the cycle gadget.
*/
UBYTE *modelist[] =
{
"RKM Modes",
"Mode 0",
"Mode 1",
"Mode 2",
"Mode 3",
"Mode 4",
NULL
};
void main(int argc, char **argv)
{
struct FontRequester *fr;
if (AslBase = OpenLibrary("asl.library", 37L))
{
if (fr = (struct FontRequester *)
AllocAslRequestTags(ASL_FontRequest,
/* tell the requester to use my custom mode names */
ASL_ModeList, modelist,
/* Supply initial values for requester */
ASL_FontName, (ULONG)"topaz.font",
ASL_FontHeight, 11L,
ASL_FontStyles, FSF_BOLD | FSF_ITALIC,
ASL_FrontPen, 0x00L,
ASL_BackPen, 0x01L,
/* Only display font sizes between 8 and 14, inclusive. */
ASL_MinHeight, 8L,
ASL_MaxHeight, 14L,
/* Give all the gadgetry, but only display fixed width fonts */
ASL_FuncFlags, FONF_FRONTCOLOR | FONF_BACKCOLOR |
FONF_DRAWMODE | FONF_STYLES | FONF_FIXEDWIDTH,
TAG_DONE))
{
/* Pop up the requester */
if (AslRequest(fr, NULL))
{
/* The user selected something, report their choice */
printf("%s\n YSize = %d Style = 0x%x Flags = 0x%x\n"
" FPen = 0x%x BPen = 0x%x DrawMode = 0x%x\n",
fr->fo_Attr.ta_Name,
fr->fo_Attr.ta_YSize,
fr->fo_Attr.ta_Style,
fr->fo_Attr.ta_Flags,
fr->fo_FrontPen,
fr->fo_BackPen,
fr->fo_DrawMode);
}
else
/* The user cancelled the requester, or some kind of error
** occurred preventing the requester from opening. */
printf("Request Cancelled\n");
FreeAslRequest(fr);
}
CloseLibrary(AslBase);
}
}
[Back to Amiga Developer Docs]