home *** CD-ROM | disk | FTP | other *** search
- // Demonstracni program pro Editor rastrovych fontu.
- // Toto demo nacita data fontu ze souboru. Je odladeno s prekladacem
- // BORLAND C++ 3.0, nastavuje graficky rezim VGA, pracuje s mysi.
- // Preklada se pod projektem, ve kterem je definicni soubor tridy
- // RIFONT.CPP a tento demonstracni program.
-
- #include "rifont.h"
-
- //pomocne promenne a funkce pro demo program:
-
- // !!! POZOR !!! nasledujici cestu k adresari s fonty, nastavte svou vlastni
- char cesta[]={"g:\\borlandc\\fed_11\\"};
-
- char complcesta[65]; // cesta vc. nazvu souboru
- char names[256]; // pole nazvu souboru
- int tento; // zvoleny soubor ke zobrazeni
- int items, itmax=16; // pocet souboru, max. pocet souboru
- int read_names(void); // precte max. 16 nazvu souboru typu .rif
- void names_show(void); // zobrazi nazvy souboru
- void test_text (void); // zobrazi zkusebni text zvoleneho fontu
- RIFONT myfont; // globalni instance tridy FONT
-
- //------------------------------- MAIN -------------------------------------
-
- void main(void) {
- int mys_x, mys_y, mys_b;
- GrInit();
- // v souboru RIFONT.CPP je uvedena cesta "..\\bgi\\" a muze zpusobit chybu.
- // Pri potizich udejte uplnou cestu k vasemu adresari bgi. // graficky rezim VGA
- setfillstyle(SOLID_FILL, LIGHTGRAY);
- bar(0,0,639,479);
- setcolor(BLACK);
- if(read_names())
- outtextxy(20, 400, "Kliknete mysi na vybrane jmeno fontu");
- outtextxy(20, 420, "Program ukonci stisk nektere klavesy");
- mouse_init(); // inicializace mysi
- mouse_show();
-
- do {
- mouse_pos(&mys_x, &mys_y, &mys_b);
- if (mys_b) { // zjenoduseny test kiknuti mysi
- if(mys_x>10 && mys_x<120 && mys_y>50 && mys_y<(50+20*items)) {
- tento=(mys_y-50)/20; // vypocet vybrane polozky (jmena fontu)
- sprintf(complcesta, "%s%s", cesta, &names[14*tento]);
- // vytvoreni cesty s nazvem souboru
- myfont.load(complcesta); // nacteni dat fontu
- test_text(); // zkusebni vypis
- }
- }
- } while(kbhit()==0); // cekaci smycka na stisk klavesy
- getch();
- closegraph();
- return;
- }
-
- //---------------------- pomocne funkce -----------------------------------
-
- int read_names(void) { // cteni dostupnych souboru s fontovymi daty
- struct ffblk ffblk;
- int done;
- items=0;
- sprintf(complcesta, "%s%s", cesta, "*.rif"); //
- done=findfirst(complcesta, &ffblk, 0);
- if(done!=0) {
- outtextxy(10, 15, "nenalezen adresar s fonty");
- return 0;
- }
- while( !done && items<itmax) { //
- strcpy(&names[14*items], ffblk.ff_name); //
- items++;
- done=findnext(&ffblk);
- }
- names_show();
- return 1;
- }
- void names_show(void) {
- mouse_hide();
- setfillstyle(SOLID_FILL, WHITE);
- for(int i=0; i<items; i++) {
- setcolor(WHITE); // simulovany obrazek tlacitka
- line(10, 50+20*i, 120, 50+20*i);
- line(10, 50+20*i, 10, 68+20*i);
- setcolor(DARKGRAY);
- line(10, 68+20*i, 120, 68+20*i);
- line(120,50+20*i, 120, 68+20*i);
- setcolor(BLACK);
- outtextxy(20, 20*i+56, &names[14*i]); // nazev souboru
- }
- mouse_show();
- }
- void test_text(void) {
- mouse_hide();
- setfillstyle(SOLID_FILL, WHITE); // nehlida preteceni textu z ramecku
- bar3d(150, 50, 500, 220, 0, 0); // libovolne testovaci texty:
- myfont.showtext(160, 60, "Ukßzkov² text zvolenΘho fontu :");
- myfont.showtext(160, 100, "ABCDEFGHIJKLMNOPQRSTUVWXYZ");
- myfont.showtext(160, 124,"abcdefghijklmnopqrstuvwxyz");
- myfont.showtext(160, 148,"0123456789+-*/@#$%^&()[]{}");
- myfont.showtext(160, 172,"JeÜt∞ troÜiΦku ╚eÜtiny");
- mouse_show();
- }