Getting Started With Microwindows & Nano-X | ||
---|---|---|
Prev | Chapter 3. Working With Fonts |
In this section I present a simple nano-X TrueType font application.
Copy the source shown below into a file named "fonts.c". Compile the application with the following command.
$ gcc fonts.c -I/usr/include/microwin \ > -o fonts -lnano-X |
Example 3-1. fonts.c
#include <stdio.h> #define MWINCLUDECOLORS #include "microwin/nano-X.h" GR_WINDOW_ID wid; GR_GC_ID gc; GR_FONT_ID font_a, font_b, font_c, font_d; void event_handler (GR_EVENT *event); int main (void) { if (GrOpen() < 0) { fprintf (stderr, "GrOpen failed"); exit (1); } gc = GrNewGC(); GrSetGCUseBackground (gc, GR_FALSE); GrSetGCForeground (gc, RED); wid = GrNewWindowEx (GR_WM_PROPS_APPFRAME | GR_WM_PROPS_CAPTION | GR_WM_PROPS_CLOSEBOX, "Font Test Window", GR_ROOT_WINDOW_ID, 50, 50, 200, 130, WHITE); GrSelectEvents (wid, GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_CLOSE_REQ); font_a = GrCreateFont ("arial", 12, NULL); font_b = GrCreateFont ("comic", 16, NULL); font_c = GrCreateFont ("comic", 24, NULL); font_d = GrCreateFont ("arial", 36, NULL); GrMapWindow (wid); GrMainLoop (event_handler); return 0; } void event_handler (GR_EVENT *event) { switch (event->type) { case GR_EVENT_TYPE_EXPOSURE: GrSetGCFont (gc, font_a); GrText (wid, gc, 20, 20, "Arial 12", -1, GR_TFASCII); GrSetGCFont (gc, font_b); GrText (wid, gc, 20, 40, "Comic 16", -1, GR_TFASCII); GrSetGCFont (gc, font_c); GrText (wid, gc, 20, 70, "Comic 24", -1, GR_TFASCII); GrSetGCFont (gc, font_d); GrText (wid, gc, 20, 110, "Arial 36", -1, GR_TFASCII); break; case GR_EVENT_TYPE_CLOSE_REQ: GrClose(); exit (0); } } |
Run the example application with the following command. You will see a window appear as shown below.
$ nano-X& sleep 1; nanowm& sleep 1; ./fonts& |