home *** CD-ROM | disk | FTP | other *** search
- #define TRUE 1
- #define FALSE 0
- #define Success 0
- #define ESC 0x1b
-
- int sw,sh;
- char *abcs =
- "abcdefghijklmnopqrstuvwxyz"
- "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- "1234567890"
- "!@#$%^&*()_-+={[]}\\|;:'\",<.>/?";
- char ofname[80];
- char odir[80];
-
- see_font(char *name)
- {
- int fh;
- int occolor;
-
- fh = FontHeight()+2;
- occolor = GetColor();
- Clear();
- Box(0,0,4+StringWidth(name),fh);
- SetColor(0);
- Text(2,2,name);
- SetColor(occolor);
- WordWrap(0, fh, sw, sh-fh, abcs);
- }
-
- display_font(char *name)
- {
- if (LoadFont(name) < Success)
- return;
- see_font(name);
- }
-
- do_all_fonts(Boolean step)
- {
- char font_dir[80];
- char font_name[80];
- char **flist;
- int fcount;
- int i;
- int x,y,l,r,k;
-
- GetFontDir(font_dir);
- SetDir(font_dir);
- if ((fcount = DirList(&flist, "*.*", 0)) <= Success)
- return;
- for (i=0; i<fcount; i++)
- {
- display_font(flist[i]);
- if (step)
- {
- WaitClick(&x,&y,&l,&r,&k);
- if (r || (k&0xff) == ESC)
- break;
- }
- }
- FreeDirList(&flist);
- }
-
- char *choices[] =
- {
- "Step through fonts",
- "Run through fonts",
- "See current font",
- "Font Requestor",
- "Exit",
- };
-
- main()
- {
- Screen *oscreen;
- ErrCode err;
-
- GetSize(&sw,&sh);
- if ((err = AllocScreen(&oscreen,sw,sh)) < Success)
- {
- Qerror(err, "Can't save current screen");
- return;
- }
- CopyScreen(GetPicScreen(), oscreen);
- GetFontName(ofname);
- GetDir(odir);
- for (;;)
- {
- switch (Qmenu(choices, 5, "Quick font tester"))
- {
- case 0:
- goto OUT;
- case 1:
- do_all_fonts(TRUE);
- break;
- case 2:
- do_all_fonts(FALSE);
- break;
- case 3:
- see_font(ofname);
- break;
- case 4:
- Qfont();
- break;
- }
- }
- OUT:
- SetDir(odir);
- LoadFont(ofname);
- CopyScreen(oscreen,GetPicScreen());
- FreeScreen(&oscreen);
- }
-