home *** CD-ROM | disk | FTP | other *** search
- // demonstarcni program pro Editor rastrovych fontu,
- // Tato varianta predvadi vlozeni dat fontu do Vaseho
- // programu. Pracujete s projektem, ve kterem je definicni
- // soubor RIFONT.CPP, data Vaseho fontu tj. soubor typu
- // xxxxx.CPP z editoru fontu a tento program DEMO2.CPP
- // Nastavuje graficky rezim VGA a pracuje s mysi.
-
-
- #include "rifont.h"
- int character, extended;
- char editbufer[32];
-
-
- //--------------------------- deklarace demo -------------------------------
- // zde prosim uvedte deklarace fontu, ktere budete pouzivat. Tento program
- // vyuziva projektu, ve kterem jsou minimalne dva soubory: 1. soubor dat
- // fontu, ziskany z editoru fontu volbou uloz zdroj. text. Zde to byl
- // soubor demosys.cpp. Nasledujici nazvy "poli" jsou odvozeny od nazvu
- // fontu a tvori obsah uvedeneho souboru. 2. tento soubor(demo2.cpp).
-
- extern int demosys_tbf[];
- extern unsigned char demosys_bmp[];
- RIFONT myfont(demosys_tbf, demosys_bmp);
-
- /* ------------------------------
- uvedene deklarace byly pouzity v DEMO. Pro zjednoduseni jsou vypusteny
- extern int mini_tbf[];
- extern unsigned char mini_bmp[];
- FONT mini(mini_tbf, mini_bmp);
-
- extern int chicago_tbf[];
- extern unsigned char chicago_bmp[];
- FONT sys(chicago_tbf, chicago_bmp);
-
- extern int times_tbf[];
- extern unsigned char times_bmp[];
- FONT timef(times_tbf, times_bmp);
-
- extern int manhat_tbf[];
- extern unsigned char manhat_bmp[];
- FONT manhat(manhat_tbf, manhat_bmp);
- --------------------------------------- */
-
- int y=20; int step=90; int flagedit=0;
- void calender(void);
- void frame(int, int, int, char *);
- void mouse_down(int, int);
-
- // Nasledujici texty zavisi na pouzite kodove strance cestiny, upravte prosim
- // podle vasi kodove stranky, mela by se shodovat se strankou v editoru fontu.
-
- char text[]={
- "JednotlivΘ \"dny\" p°edvedou metody t°φdy FONT.\n\
- Tato t°φda je souΦßstφ editoru rastrov²ch font∙\n\
- je dodßna ve zdrojovΘm tvaru, vÜechny metody\n\
- lze upravovat podle pot°eby.\n\
- Dny se \"zapφnajφ\" kliknutφm levΘho tlaΦφtka myÜi\n\
- na zßlo₧ku dne.\n\
- Demo je dodßno i ve zdrojovΘm tvaru pro ·Φely\n\
- studia a pochopenφ praktickΘho u₧itφ t°φdy FONT."};
-
- char PO[]={"Nazdar sv∞te !"};
- char UT[]={"lze zvolit r∙znΘ barvy textu i pozadφ"};
- char ST[]={"plnß verze\nnabφzφ r∙znΘ\nmetody\nzarovnßnφ\ntextu"};
- char CT[]={"Shareware verze neumφ styl kurzφva"};
- char PA[]={"Od°ezßnφ textu na sou°adnici x,\numφ verze RIFED 2.0"};
- char SO[]={"K ·prav∞ proprcionßlnφho textu Vßm m∙₧e\n\
- poslou₧it skupina metod pro editaci °ßdku.\n\
- K editaci pou₧ijte klßvesnici a myÜ."};
- char SO1[80]={"Editujte prosφm"};
- char NE[]={"Mφsto toolbaru je ukßzka stφnovanΘho textu."};
-
- //------------------------------- MAIN -------------------------------------
-
- void main(void) {
- int mys_x, mys_y, mys_b;
- GrInit();
- setfillstyle(SOLID_FILL, LIGHTGRAY);
- bar(0,0,639,479);
-
- calender();
- mouse_init();
- myfont.showtext(330, 230, text);
- int mys_bseq=0;
- do {
- do {
- mouse_pos(&mys_x, &mys_y, &mys_b);
- mys_bseq <<= 1; mys_bseq += mys_b; mys_bseq &= 03;
- switch(mys_bseq){
- case 0: break; // mouse move
- case 1: mouse_down(mys_x, mys_y);break; // left button down
- case 2: break; // left button up
- case 3: break; // left button keep
- }
- } while(kbhit()==0);
- character = getch();extended=0;
- if (character == 0) extended=getch();
- if (flagedit!=-1) flagedit=!myfont.txed_keyb(character, extended);
- } while (extended != 45);
- closegraph();
- return;
- }
- void mouse_down(int x, int y) {
- myfont.txed_mouse(x, y);
- if((x>20 && x<46) || (x>594 && x<620)) {
- mouse_hide();
- switch((y+90-20)/90+5*(x>320)) {
- case-1: break;
- case 1: y=32;
- setcolor(BLACK);
- outtextxy(60, y, "Nazdar svete!....bezny font 8x8");
- myfont.showtext(60, y+34,
- "Nazdar sv∞te !\nukßzka mΘho novΘho pφsma");
- break;
- case 2: y=40+1*90;
- myfont.overtext(100, y, UT);
- myfont.setfontbakgr(LIGHTBLUE); myfont.setfontcolor(YELLOW);
- myfont.overtext(60, y+=myfont.gethigh(), UT);
- myfont.setfontbakgr(RED); myfont.setfontcolor(WHITE);
- myfont.overtext(100, y+=myfont.gethigh(), UT);
- myfont.setfontbakgr(WHITE); myfont.setfontcolor(BLACK);
- break;
- case 3: y=25+2*90;
- myfont.showtext(60, y, ST);
- //myfont.showtextcenter(185, y, ST);
- //myfont.showtextright(310, y, ST);
- break;
- case 4: y=40+3*90;
- myfont.showtext(60, y, CT);
- //myfont.showtextitalic(60, y+myfont.gethigh(), CT);
- //myfont.setfontcolor(LIGHTGREEN);
- //myfont.showtextitalic(168, y+40, "ITALIC STRRET");
- myfont.setfontcolor(BLACK);
- break;
- case 5: y=32+4*90;
- myfont.setfontcolor(WHITE);
- myfont.showtext(60, y, PA);
- myfont.setfontcolor(BLACK);
- //myfont.showtextcutx(278, y, PA1, 310);
- //myfont.showtextcutx(260, y+=myfont.gethigh(), PA1, 310);
- //myfont.showtextcutx(242, y+=myfont.gethigh(), PA1, 310);
- //myfont.showtextcutx(224, y+=myfont.gethigh(), PA1, 310);
- break;
- case 6: y=20;
- flagedit=1;
- myfont.txed_show(330, y+8, 252, 24, 64, 0, SO1);
- myfont.showtext(330, y+40, SO);
- break;
- case 7: y=20+90;
- myfont.setfontcolor(WHITE);
- myfont.showtext(332, y+42, NE);
- myfont.setfontcolor(BLACK);
- myfont.showtext(330, y+40, NE);
- break;
- case 8: break;
- case 9: break;
- case 10: y=40+4*90;
- myfont.showtext(420, y, "D∞kuji za pozornost,\nnazdar!");
- //myfont.showtextcolor(420, y+40, "⌐ pepa", BLUE);
- delay(1200);
- closegraph();
- exit(0);
- }
- mouse_show();
- }
- }
- void calender() {
- setcolor(DARKGRAY);
- setlinestyle(3,0,3);
- line (320,y,320, 5*step+y);
- setlinestyle(0,0,0);
- setcolor(BLACK);
- frame (y, 1, LIGHTBLUE, "PO");
- frame (y,-1, WHITE, "SO");
- frame (y+=step, 1, LIGHTCYAN, "┌T");
- frame (y, -1, LIGHTRED, "NE");
- frame (y+=step, 1, YELLOW, "ST");
- frame (y+=step, 1, LIGHTGREEN,"╚T");
- frame (y+=step, 1, BLACK, "P┴");
- frame (y, -1, 5, "E\nN\nD");
- myfont.setfontcolor(BLACK);
- }
-
- void frame(int ys, int dir, int color, char *text) {
- int p1[14], p2[10];
- p1[0]=p1[10]=p1[12]=p2[2]=p2[4]=320-dir*274;
- p1[2]=p1[8]=320-dir*300; p1[4]=p1[6]=320-dir*304;
- p2[0]=p2[8]=320-dir*10; p2[6]=320-dir*266;
- p1[1]=p1[3]=p1[13]=p2[1]=p2[3]=ys;
- p1[9]=p1[11]=p2[5]=ys+step-5; p1[5]=ys+4; p1[7]=ys+step-9;
- p2[7]=p2[9]=ys+step;
- setfillstyle(SOLID_FILL, color);
- fillpoly(7, p1);
- drawpoly(7, p1);
- drawpoly(5, p2);
- if(color<5) myfont.setfontcolor(WHITE);
- else myfont.setfontcolor(BLACK);
- myfont.showtext(311-dir*(290), ys+15, text);
- }
-