home *** CD-ROM | disk | FTP | other *** search
/ World of Shareware - Software Farm 2 / wosw_2.zip / wosw_2 / CPROG / GUI100.ZIP / GUI.CPP < prev    next >
C/C++ Source or Header  |  1993-10-16  |  11KB  |  530 lines

  1. /*************************************************************************
  2.  *              Graphical User Interface Utility Version 1.00            *
  3.  *************************************************************************
  4.  *                      Programmed by Dan Watling                        *
  5.  *************************************************************************
  6.  * This is my 2nd utility that I have written for Borland C++ that makes *
  7.  * writing programs much easier. All you have to do is just link this    *
  8.  * into your program, by doing the following steps:                      *
  9.  * 1. #include "gui2.h"/<gui2.h> in your program                         *
  10.  * 2. Make a project file.                                               *
  11.  *  a. Select the Project menu                                           *
  12.  *  b. Select Open Project                                               *
  13.  *  c. Type in the name that you want your .EXE file to be               *
  14.  * 3. Press the INSERT key and get this program from where ever you have *
  15.  *    it, and then get your program where ever it may be.                *
  16.  *************************************************************************
  17.  * That's all there is to it! If you would like to have updated versions *
  18.  * of THIS program, please send $15.00 to:                               *
  19.  *      Dan Watling                                                      *
  20.  *      3408 Walkup Road                                                 *
  21.  *      Crystal Lake, Illinois                                           *
  22.  *      60012-1109                                                       *
  23.  *                                                                       *
  24.  * If you do register this program, you will be entitled to ALL future   *
  25.  * versions, like some mouse routines for this program, and a couple of  *
  26.  * other interesting things I plan on adding, and you will get a list of *
  27.  * programmers utilities that I have made along with the registered      *
  28.  * program files. Plus, you will get the source code for Draw.exe!       *
  29.  *************************************************************************
  30.  *                    I hope you enjoy this program!                     *
  31.  * I would also like to hear from you! Please write to me for any        *
  32.  * comments, suggestions, questions, etc.                                *
  33.  *************************************************************************
  34. /                                                                       */
  35.  
  36. #include <conio.h>
  37. #include <graphics.h>
  38. #include <alloc.h>
  39. #include <dos.h>
  40. #include <stdlib.h>
  41. #include <gui.h>
  42.  
  43.  
  44. void cls(int color)
  45. {
  46.  setfillstyle(SOLID_FILL,color);
  47.  bar(0,0,getmaxx(),getmaxy());
  48. }
  49.  
  50. void shadowtext(int x, int y,const char far *text,int color)
  51. {
  52.  setcolor(8);
  53.  outtextxy(x+1,y+1,text);
  54.  
  55.  setcolor(color);
  56.  outtextxy(x,y,text);
  57. }
  58.  
  59. void multispray(int x, int y)
  60.  {
  61.   int pos;
  62.  
  63.   pos = random(22);
  64.  
  65.  int color;
  66.  
  67.  color = random(16);
  68.  
  69.  if (pos == 1)
  70.   {
  71.    putpixel(x-1,y-2,color);
  72.   }
  73.  if (pos == 2)
  74.   {
  75.    putpixel(x,y-2,color);
  76.   }
  77.  if (pos == 3)
  78.   {
  79.    putpixel(x+1,y-2,color);
  80.   }
  81.  if (pos == 4)
  82.   {
  83.    putpixel(x-2,y-1,color);
  84.   }
  85.  if (pos == 5)
  86.   {
  87.    putpixel(x-1,y-1,color);
  88.   }
  89.  if (pos == 6)
  90.   {
  91.    putpixel(x,y-1,color);
  92.   }
  93.  if (pos == 7)
  94.   {
  95.    putpixel(x+1,y-1,color);
  96.   }
  97.  if (pos == 8)
  98.   {
  99.    putpixel(x+2,y-1,color);
  100.   }
  101.  if (pos == 9)
  102.   {
  103.    putpixel(x-2,y,color);
  104.   }
  105.  if (pos == 10)
  106.   {
  107.    putpixel(x-1,y,color);
  108.   }
  109.  if (pos == 11)
  110.   {
  111.    putpixel(x,y,color);
  112.   }
  113.  if (pos == 12)
  114.   {
  115.    putpixel(x+1,y,color);
  116.   }
  117.  if (pos == 13)
  118.   {
  119.    putpixel(x+2,y,color);
  120.   }
  121.  if (pos == 14)
  122.   {
  123.    putpixel(x-2,y+1,color);
  124.   }
  125.  if (pos == 15)
  126.   {
  127.    putpixel(x-1,y+1,color);
  128.   }
  129.  if (pos == 16)
  130.   {
  131.    putpixel(x,y+1,color);
  132.   }
  133.  if (pos == 17)
  134.   {
  135.    putpixel(x+1,y+1,color);
  136.   }
  137.  if (pos == 18)
  138.   {
  139.    putpixel(x+2,y+1,color);
  140.   }
  141.  if (pos == 19)
  142.   {
  143.    putpixel(x-1,y+2,color);
  144.   }
  145.  if (pos == 20)
  146.   {
  147.    putpixel(x,y+2,color);
  148.   }
  149.  if (pos == 21)
  150.   {
  151.    putpixel(x+1,y+2,color);
  152.   }
  153. }
  154.  
  155. void spray(int x, int y,int color)
  156. {
  157.  int pos;
  158.  
  159.  pos = random(22);
  160.  
  161.  if (pos == 1)
  162.   {
  163.    putpixel(x-1,y-2,color);
  164.   }
  165.  if (pos == 2)
  166.   {
  167.    putpixel(x,y-2,color);
  168.   }
  169.  if (pos == 3)
  170.   {
  171.    putpixel(x+1,y-2,color);
  172.   }
  173.  if (pos == 4)
  174.   {
  175.    putpixel(x-2,y-1,color);
  176.   }
  177.  if (pos == 5)
  178.   {
  179.    putpixel(x-1,y-1,color);
  180.   }
  181.  if (pos == 6)
  182.   {
  183.    putpixel(x,y-1,color);
  184.   }
  185.  if (pos == 7)
  186.   {
  187.    putpixel(x+1,y-1,color);
  188.   }
  189.  if (pos == 8)
  190.   {
  191.    putpixel(x+2,y-1,color);
  192.   }
  193.  if (pos == 9)
  194.   {
  195.    putpixel(x-2,y,color);
  196.   }
  197.  if (pos == 10)
  198.   {
  199.    putpixel(x-1,y,color);
  200.   }
  201.  if (pos == 11)
  202.   {
  203.    putpixel(x,y,color);
  204.   }
  205.  if (pos == 12)
  206.   {
  207.    putpixel(x+1,y,color);
  208.   }
  209.  if (pos == 13)
  210.   {
  211.    putpixel(x+2,y,color);
  212.   }
  213.  if (pos == 14)
  214.   {
  215.    putpixel(x-2,y+1,color);
  216.   }
  217.  if (pos == 15)
  218.   {
  219.    putpixel(x-1,y+1,color);
  220.   }
  221.  if (pos == 16)
  222.   {
  223.    putpixel(x,y+1,color);
  224.   }
  225.  if (pos == 17)
  226.   {
  227.    putpixel(x+1,y+1,color);
  228.   }
  229.  if (pos == 18)
  230.   {
  231.    putpixel(x+2,y+1,color);
  232.   }
  233.  if (pos == 19)
  234.   {
  235.    putpixel(x-1,y+2,color);
  236.   }
  237.  if (pos == 20)
  238.   {
  239.    putpixel(x,y+2,color);
  240.   }
  241.  if (pos == 21)
  242.   {
  243.    putpixel(x+1,y+2,color);
  244.   }
  245. }
  246.  
  247. void drawbutton(int x, int y, int mx, int my, int namecolor, const char far *name, int shadowed)
  248. {
  249.  setfillstyle(SOLID_FILL,7);
  250.   bar(x,y,mx,my);
  251.  
  252.  setcolor(15);
  253.   rectangle(x+1,y+1,x+1,my-1);
  254.   rectangle(x+2,y+1,x+2,my-2);
  255.   rectangle(x+1,y+1,mx-1,y+1);
  256.   rectangle(x+1,y+2,mx-2,y+2);
  257.  
  258.  setcolor(8);
  259.   rectangle(x+1,my-1,mx-1,my-1);
  260.   rectangle(x+2,my-2,mx-1,my-2);
  261.   rectangle(mx-2,my-1,mx-1,y+2);
  262.   rectangle(mx-1,my-1,mx-1,y+1);
  263.   setcolor(0);
  264.  
  265.  int bmidx, bmidy;
  266.  
  267. if (shadowed == 1)
  268.  {
  269.  
  270.   bmidx = (mx / 2) + (x / 2) + 1;
  271.   bmidy = (my / 2) + (y / 2) + 1;
  272.  
  273.  settextjustify(CENTER_TEXT,CENTER_TEXT);
  274.  
  275.  setcolor(8);
  276.   outtextxy(bmidx,bmidy,name);
  277.  
  278. }
  279.  
  280.   bmidx = (mx / 2) + (x / 2);
  281.   bmidy = (my / 2) + (y / 2);
  282.  
  283.  settextjustify(CENTER_TEXT,CENTER_TEXT);
  284.  
  285.  setcolor(namecolor);
  286.   outtextxy(bmidx,bmidy,name);
  287.  
  288.  rectangle(x,y,mx,my);
  289. }
  290.  
  291. void drawfilledbutton(int x, int y, int mx, int my, int color, int namecolor, const char far *name, int shadowed)
  292. {
  293.  setfillstyle(SOLID_FILL,color);
  294.   bar(x+2,y+2,mx-2,my-2);
  295.  
  296.  setcolor(15);
  297.   rectangle(x+1,y+1,x+1,my-1);
  298.   rectangle(x+2,y+1,x+2,my-2);
  299.   rectangle(x+1,y+1,mx-1,y+1);
  300.   rectangle(x+1,y+2,mx-2,y+2);
  301.  
  302.  setcolor(8);
  303.   rectangle(x+1,my-1,mx-1,my-1);
  304.   rectangle(x+2,my-2,mx-1,my-2);
  305.   rectangle(mx-2,my-1,mx-1,y+2);
  306.   rectangle(mx-1,my-1,mx-1,y+1);
  307.  
  308.   int bmidx, bmidy;
  309.  
  310. if (shadowed == 1)
  311.  {
  312.  
  313.   bmidx = (mx / 2) + (x / 2) + 1;
  314.   bmidy = (my / 2) + (y / 2) + 1;
  315.  
  316.  settextjustify(CENTER_TEXT,CENTER_TEXT);
  317.  
  318.  setcolor(8);
  319.   outtextxy(bmidx,bmidy,name);
  320.  
  321.  }
  322.  
  323.   bmidx = (mx / 2) + (x / 2);
  324.   bmidy = (my / 2) + (y / 2);
  325.  
  326.  settextjustify(CENTER_TEXT,CENTER_TEXT);
  327.  
  328.  setcolor(namecolor);
  329.   outtextxy(bmidx,bmidy,name);
  330.  
  331.  setcolor(0);
  332.   rectangle(x,y,mx,my);
  333. }
  334.  
  335. void drawclickedbutton(int x, int y, int mx, int my, int namecolor, const char far *name, int shadowed)
  336. {
  337.  setfillstyle(SOLID_FILL,7);
  338.     bar(x,y,mx,my);
  339.  
  340.  setcolor(8);
  341.   rectangle(x+1,y+1,x+1,my-1);
  342.   rectangle(x+2,y+1,x+2,my-2);
  343.   rectangle(x+1,y+1,mx-1,y+1);
  344.   rectangle(x+1,y+2,mx-2,y+2);
  345.  
  346.  
  347.  setcolor(15);
  348.   rectangle(x+1,my-1,mx-1,my-1);
  349.   rectangle(x+2,my-2,mx-1,my-2);
  350.   rectangle(mx-2,my-1,mx-1,y+2);
  351.   rectangle(mx-1,my-1,mx-1,y+1);
  352.  
  353.  
  354.  int bmidx, bmidy;
  355.  
  356. if (shadowed == 1)
  357.  {
  358.  
  359.   bmidx = (mx / 2) + (x / 2) + 3;
  360.   bmidy = (my / 2) + (y / 2) + 3;
  361.  
  362.  settextjustify(CENTER_TEXT,CENTER_TEXT);
  363.  
  364.  setcolor(8);
  365.   outtextxy(bmidx,bmidy,name);
  366.  
  367.  
  368.   bmidx = (mx / 2) + (x / 2);
  369.   bmidy = (my / 2) + (y / 2);
  370.  
  371.  settextjustify(CENTER_TEXT,CENTER_TEXT);
  372.  
  373.  setcolor(namecolor);
  374.   outtextxy(bmidx,bmidy,name);
  375.  }
  376.  
  377. if (shadowed == 0)
  378.  {
  379.   bmidx = (mx / 2) + (x / 2) + 2;
  380.   bmidy = (my / 2) + (y / 2) + 2;
  381.  
  382.   settextjustify(CENTER_TEXT,CENTER_TEXT);
  383.  
  384.   setcolor(namecolor);
  385.    outtextxy(bmidx,bmidy,name);
  386.  }
  387.  
  388.  
  389.  setcolor(0);
  390.   rectangle(x,y,mx,my);
  391. }
  392.  
  393. void drawclickedfilledbutton(int x, int y, int mx, int my, int color, int namecolor, const char far *name, int shadowed)
  394. {
  395.  setfillstyle(SOLID_FILL,color);
  396.   bar(x+2,y+2,mx-2,my-2);
  397.  
  398.  setcolor(8);
  399.   rectangle(x+1,y+1,x+1,my-1);
  400.   rectangle(x+2,y+1,x+2,my-2);
  401.   rectangle(x+1,y+1,mx-1,y+1);
  402.   rectangle(x+1,y+2,mx-2,y+2);
  403.  setcolor(15);
  404.   rectangle(x+1,my-1,mx-1,my-1);
  405.   rectangle(x+2,my-2,mx-1,my-2);
  406.   rectangle(mx-2,my-1,mx-1,y+2);
  407.   rectangle(mx-1,my-1,mx-1,y+1);
  408.  
  409.   int bmidx, bmidy;
  410.  
  411. if (shadowed == 1)
  412.  {
  413.   bmidx = (mx / 2) + (x / 2) + 3;
  414.   bmidy = (my / 2) + (y / 2) + 3;
  415.  
  416.  settextjustify(CENTER_TEXT,CENTER_TEXT);
  417.  
  418.  setcolor(8);
  419.   outtextxy(bmidx,bmidy,name);
  420.  
  421.   bmidx = (mx / 2) + (x / 2);
  422.   bmidy = (my / 2) + (y / 2);
  423.  
  424.  settextjustify(CENTER_TEXT,CENTER_TEXT);
  425.  
  426.  setcolor(namecolor);
  427.   outtextxy(bmidx,bmidy,name);
  428.  
  429.  }
  430.  
  431. if (shadowed == 0)
  432.  {
  433.   bmidx = (mx / 2) + (x / 2) + 1;
  434.   bmidy = (mx / 2) + (x / 2) + 1;
  435.  
  436.  settextjustify(CENTER_TEXT,CENTER_TEXT);
  437.  
  438.  setcolor(namecolor);
  439.   outtextxy(bmidx,bmidy,name);
  440.  }
  441.  
  442. setcolor(0);
  443.   rectangle(x,y,mx,my);
  444. }
  445.  
  446. void drawvertscrollbar(int x, int y, int length)
  447. {
  448.  setfillstyle(SOLID_FILL,7);
  449.   bar(x,y,x+14,length);
  450.  
  451.  setcolor(0);
  452.   rectangle(x,y,x+14,length);
  453.   rectangle(x,y,x+14,y+14);
  454.   rectangle(x,length-14,x+14,length);
  455.  
  456.  drawbutton(x,y,x+14,y+14,0,"",FALSE);
  457.  drawbutton(x,length-14,x+14,length,0,"", FALSE);
  458. }
  459.  
  460. void drawhorzscrollbar(int x, int y, int length)
  461. {
  462.  setfillstyle(SOLID_FILL,7);
  463.   bar(x,y,length,y+14);
  464.  
  465.  setcolor(0);
  466.   rectangle(x,y,length,y+14);
  467.   rectangle(x,y,x+14,y+14);
  468.   rectangle(x,y,length-14,y+14);
  469.  
  470.  drawbutton(x,y,x+14,y+14,0,"",FALSE);
  471.  drawbutton(length-14,y,length,y+14,0,"",FALSE);
  472. }
  473.  
  474. void drawscrollbox(int x, int y)
  475. {
  476.  drawbutton(x,y,x+14,y+14,0,"", FALSE);
  477. }
  478.  
  479. void drawwindow(int x, int y, int mx, int my, const char far *title, int scrollbar)
  480. {
  481.  setfillstyle(SOLID_FILL,15);
  482.   bar(x,y,mx,my);
  483.  
  484.  setfillstyle(SOLID_FILL,1);
  485.   bar(x+16,y,mx,y+16);
  486.  
  487.  int bmaxx, bmaxy;
  488.   bmaxx = (mx / 2) + (x / 2);
  489.   bmaxy = ((y / 2) + 5) + ((y / 2) + 5);
  490.  
  491.  settextjustify(CENTER_TEXT,CENTER_TEXT);
  492.  
  493.  setcolor(15);
  494.   outtextxy(bmaxx,bmaxy,title);
  495.  
  496.  setcolor(0);
  497.   rectangle(x,y,mx,my);
  498.   rectangle(x,y,x+16,y+16);
  499.    rectangle(x+4,y+6,x+12,y+9);
  500.   rectangle(x+16,y,mx,y+16);
  501.  
  502.  setcolor(8);
  503.    line(x+6,y+10,x+13,y+10);
  504.    line(x+13,y+10,x+13,y+7);
  505.  
  506. if (scrollbar == 1)
  507.  {
  508.   drawhorzscrollbar(x,my-14,mx-14);
  509.   drawvertscrollbar(mx-14,y+16,my-14);
  510.  }
  511. }
  512.  
  513. void textfield(x, y, mx, my)
  514. {
  515.  setcolor(0);
  516.  rectangle(x,y,mx,my);
  517. }
  518.  
  519. void drawmenu(void *menuname, int x, int y, int type)
  520. {
  521.  putimage(x,y,menuname,type);
  522. }
  523.  
  524. void getmenu(void *menuname, int x, int y, int mx, int my)
  525. {
  526.  int imsize;
  527.  imsize = imagesize(x, y, mx, my);
  528.  menuname = malloc(imsize);
  529.  getimage(x,y,mx,my,menuname);
  530. }