home *** CD-ROM | disk | FTP | other *** search
/ Prima Shareware 3 / DuCom_Prima-Shareware-3_cd1.bin / PROGRAMO / C / RIFED / DEMO2.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1994-08-27  |  6.8 KB  |  200 lines

  1. // demonstarcni program pro Editor rastrovych fontu,
  2. // Tato varianta predvadi vlozeni dat fontu do Vaseho
  3. // programu. Pracujete s projektem, ve kterem je definicni
  4. // soubor RIFONT.CPP, data Vaseho fontu tj. soubor typu
  5. // xxxxx.CPP z editoru fontu a tento program DEMO2.CPP
  6. // Nastavuje graficky rezim VGA a pracuje s mysi.
  7.  
  8.  
  9. #include "rifont.h"
  10. int character, extended;
  11. char editbufer[32];
  12.  
  13.  
  14. //--------------------------- deklarace demo -------------------------------
  15. // zde prosim uvedte deklarace fontu, ktere budete pouzivat. Tento program
  16. // vyuziva projektu, ve kterem jsou minimalne dva soubory: 1. soubor dat
  17. // fontu, ziskany z editoru fontu volbou uloz zdroj. text. Zde to byl
  18. // soubor demosys.cpp. Nasledujici nazvy "poli" jsou odvozeny od nazvu
  19. // fontu a tvori obsah uvedeneho souboru. 2. tento soubor(demo2.cpp).
  20.  
  21.   extern int demosys_tbf[];
  22.   extern unsigned char demosys_bmp[];
  23.   RIFONT myfont(demosys_tbf, demosys_bmp);
  24.  
  25. /* ------------------------------
  26. uvedene deklarace byly pouzity v DEMO. Pro zjednoduseni jsou vypusteny
  27.   extern int mini_tbf[];
  28.   extern unsigned char mini_bmp[];
  29.   FONT  mini(mini_tbf, mini_bmp);
  30.  
  31.   extern int chicago_tbf[];
  32.   extern unsigned char chicago_bmp[];
  33.   FONT  sys(chicago_tbf, chicago_bmp);
  34.  
  35.   extern int times_tbf[];
  36.   extern unsigned char times_bmp[];
  37.   FONT  timef(times_tbf, times_bmp);
  38.  
  39.   extern int manhat_tbf[];
  40.   extern unsigned char manhat_bmp[];
  41.   FONT  manhat(manhat_tbf, manhat_bmp);
  42. --------------------------------------- */
  43.  
  44.   int y=20; int step=90; int flagedit=0;
  45.   void calender(void);
  46.   void frame(int, int, int, char *);
  47.   void mouse_down(int, int);
  48.  
  49. // Nasledujici texty zavisi na pouzite kodove strance cestiny, upravte prosim
  50. // podle vasi kodove stranky, mela by se shodovat se strankou v editoru fontu.
  51.  
  52.   char text[]={
  53. "JednotlivΘ \"dny\" p°edvedou metody t°φdy FONT.\n\
  54. Tato t°φda je souΦßstφ editoru rastrov²ch font∙\n\
  55. je dodßna ve zdrojovΘm tvaru, vÜechny metody\n\
  56. lze upravovat podle pot°eby.\n\
  57. Dny se \"zapφnajφ\" kliknutφm levΘho tlaΦφtka myÜi\n\
  58. na zßlo₧ku dne.\n\
  59. Demo je dodßno i ve zdrojovΘm tvaru pro ·Φely\n\
  60. studia a pochopenφ praktickΘho u₧itφ t°φdy FONT."};
  61.  
  62.   char PO[]={"Nazdar sv∞te !"};
  63.   char UT[]={"lze zvolit r∙znΘ barvy textu i pozadφ"};
  64.   char ST[]={"plnß verze\nnabφzφ r∙znΘ\nmetody\nzarovnßnφ\ntextu"};
  65.   char CT[]={"Shareware verze neumφ styl kurzφva"};
  66.   char PA[]={"Od°ezßnφ textu na sou°adnici x,\numφ verze RIFED 2.0"};
  67.   char SO[]={"K ·prav∞ proprcionßlnφho textu Vßm m∙₧e\n\
  68. poslou₧it skupina metod pro editaci °ßdku.\n\
  69. K editaci pou₧ijte klßvesnici a myÜ."};
  70.   char SO1[80]={"Editujte prosφm"};
  71.   char NE[]={"Mφsto toolbaru je ukßzka stφnovanΘho textu."};
  72.  
  73. //------------------------------- MAIN -------------------------------------
  74.  
  75. void main(void) {
  76.   int mys_x, mys_y, mys_b;
  77.   GrInit();
  78.   setfillstyle(SOLID_FILL, LIGHTGRAY);
  79.   bar(0,0,639,479);
  80.  
  81.   calender();
  82.   mouse_init();
  83.   myfont.showtext(330, 230, text);
  84.   int mys_bseq=0;
  85.   do {
  86.     do {
  87.       mouse_pos(&mys_x, &mys_y, &mys_b);
  88.       mys_bseq <<= 1; mys_bseq += mys_b; mys_bseq &= 03;
  89.       switch(mys_bseq){
  90.     case 0: break;              // mouse move
  91.     case 1: mouse_down(mys_x, mys_y);break; // left button down
  92.     case 2: break;              // left button up
  93.     case 3: break;              // left button keep
  94.       }
  95.     }  while(kbhit()==0);
  96.     character = getch();extended=0;
  97.     if (character == 0) extended=getch();
  98.     if (flagedit!=-1) flagedit=!myfont.txed_keyb(character, extended);
  99.   } while (extended != 45);
  100.   closegraph();
  101.   return;
  102. }
  103. void mouse_down(int x, int y) {
  104.   myfont.txed_mouse(x, y);
  105.   if((x>20 && x<46) || (x>594 && x<620)) {
  106.     mouse_hide();
  107.     switch((y+90-20)/90+5*(x>320)) {
  108.       case-1: break;
  109.       case 1: y=32;
  110.           setcolor(BLACK);
  111.           outtextxy(60, y, "Nazdar svete!....bezny font 8x8");
  112.           myfont.showtext(60, y+34,
  113.                   "Nazdar sv∞te !\nukßzka mΘho novΘho pφsma");
  114.           break;
  115.       case 2: y=40+1*90;
  116.           myfont.overtext(100,  y, UT);
  117.           myfont.setfontbakgr(LIGHTBLUE); myfont.setfontcolor(YELLOW);
  118.           myfont.overtext(60,  y+=myfont.gethigh(), UT);
  119.           myfont.setfontbakgr(RED); myfont.setfontcolor(WHITE);
  120.           myfont.overtext(100, y+=myfont.gethigh(), UT);
  121.           myfont.setfontbakgr(WHITE); myfont.setfontcolor(BLACK);
  122.           break;
  123.       case 3: y=25+2*90;
  124.           myfont.showtext(60, y, ST);
  125.           //myfont.showtextcenter(185, y, ST);
  126.           //myfont.showtextright(310, y, ST);
  127.           break;
  128.       case 4: y=40+3*90;
  129.           myfont.showtext(60, y, CT);
  130.           //myfont.showtextitalic(60, y+myfont.gethigh(), CT);
  131.           //myfont.setfontcolor(LIGHTGREEN);
  132.           //myfont.showtextitalic(168, y+40, "ITALIC STRRET");
  133.           myfont.setfontcolor(BLACK);
  134.           break;
  135.       case 5: y=32+4*90;
  136.           myfont.setfontcolor(WHITE);
  137.           myfont.showtext(60, y, PA);
  138.           myfont.setfontcolor(BLACK);
  139.           //myfont.showtextcutx(278, y, PA1, 310);
  140.           //myfont.showtextcutx(260, y+=myfont.gethigh(), PA1, 310);
  141.           //myfont.showtextcutx(242, y+=myfont.gethigh(), PA1, 310);
  142.           //myfont.showtextcutx(224, y+=myfont.gethigh(), PA1, 310);
  143.           break;
  144.       case 6: y=20;
  145.           flagedit=1;
  146.           myfont.txed_show(330, y+8, 252, 24, 64, 0, SO1);
  147.           myfont.showtext(330, y+40, SO);
  148.           break;
  149.       case 7: y=20+90;
  150.           myfont.setfontcolor(WHITE);
  151.           myfont.showtext(332, y+42, NE);
  152.           myfont.setfontcolor(BLACK);
  153.           myfont.showtext(330, y+40, NE);
  154.           break;
  155.       case 8: break;
  156.       case 9: break;
  157.       case 10: y=40+4*90;
  158.            myfont.showtext(420, y, "D∞kuji za pozornost,\nnazdar!");
  159.            //myfont.showtextcolor(420, y+40, "⌐ pepa", BLUE);
  160.            delay(1200);
  161.            closegraph();
  162.            exit(0);
  163.     }
  164.     mouse_show();
  165.   }
  166. }
  167. void calender() {
  168.   setcolor(DARKGRAY);
  169.   setlinestyle(3,0,3);
  170.   line (320,y,320, 5*step+y);
  171.   setlinestyle(0,0,0);
  172.   setcolor(BLACK);
  173.   frame (y, 1,       LIGHTBLUE, "PO");
  174.   frame (y,-1,       WHITE,     "SO");
  175.   frame (y+=step, 1, LIGHTCYAN, "┌T");
  176.   frame (y,      -1, LIGHTRED,  "NE");
  177.   frame (y+=step, 1, YELLOW,    "ST");
  178.   frame (y+=step, 1, LIGHTGREEN,"╚T");
  179.   frame (y+=step, 1, BLACK,     "P┴");
  180.   frame (y,      -1, 5,         "E\nN\nD");
  181.   myfont.setfontcolor(BLACK);
  182. }
  183.  
  184. void frame(int ys, int dir, int color, char *text) {
  185.    int p1[14], p2[10];
  186.    p1[0]=p1[10]=p1[12]=p2[2]=p2[4]=320-dir*274;
  187.    p1[2]=p1[8]=320-dir*300; p1[4]=p1[6]=320-dir*304;
  188.    p2[0]=p2[8]=320-dir*10; p2[6]=320-dir*266;
  189.    p1[1]=p1[3]=p1[13]=p2[1]=p2[3]=ys;
  190.    p1[9]=p1[11]=p2[5]=ys+step-5; p1[5]=ys+4; p1[7]=ys+step-9;
  191.    p2[7]=p2[9]=ys+step;
  192.    setfillstyle(SOLID_FILL, color);
  193.    fillpoly(7, p1);
  194.    drawpoly(7, p1);
  195.    drawpoly(5, p2);
  196.    if(color<5) myfont.setfontcolor(WHITE);
  197.    else myfont.setfontcolor(BLACK);
  198.    myfont.showtext(311-dir*(290), ys+15, text);
  199. }
  200.