home *** CD-ROM | disk | FTP | other *** search
/ Game Hack 1 / GHM01.ZIP / WINDOW.CPP < prev    next >
C/C++ Source or Header  |  1994-11-07  |  2KB  |  84 lines

  1. // Copyright (C) 1994 by Kurt Griffiths.  May only be used for implementation into 
  2. // software. May not be distibuted as a library or related media for commercial
  3. // gain.   
  4.  
  5.  
  6. /*-------------------------------------------------------------------------*/
  7. /*                          Window object                                  */
  8. /*-------------------------------------------------------------------------*/
  9. class window
  10. {
  11.     int minx, maxx, miny, maxy, incolor, ltcolor, dkcolor, bwidth, drawnyet;
  12.     int bcolor, lines;
  13. public:
  14.     window();
  15.     int wn_draw(int x, int xx, int y, int yy);
  16.     int wn_setcolor(int color) { incolor = color; return 1; }
  17.     int wn_setlines(int l) { lines = l; return 1; }
  18.     int wn_setbcolor(int b) { bcolor = b; return 1; }
  19.     int wn_setdcolor(int d) { dkcolor = d; return 1; }
  20.     int wn_setlcolor(int l) { ltcolor = l; return 1; }
  21.     int wn_setoutline(int o) { ltcolor = dkcolor = o; return 1; }
  22.     int wn_setwidth(int w) { bwidth = w; return 1; }
  23.     int wn_settrans(int t) { incolor = -1; return 1; }
  24. };
  25.  
  26. window::window()
  27. {
  28.     lines = 0;
  29.     incolor = 27;
  30.     ltcolor = 29;
  31.     dkcolor = 22;
  32.     bcolor = 25;
  33.     bwidth = 4;
  34. }
  35.  
  36. int window::wn_draw(int x, int xx, int y, int yy)
  37. {
  38.     int middle, inminx, inmaxx, inminy, inmaxy;
  39.     minx = x, maxx = xx, miny = y, maxy = yy;
  40.     inminx = minx + bwidth, inmaxx = maxx - bwidth;
  41.     inminy = miny + bwidth, inmaxy = maxy - bwidth;
  42.     
  43.     if(incolor != -1)
  44.     {
  45.         fg_setcolor(incolor);
  46.         fg_rect(minx, maxx, miny, maxy);
  47.     }
  48.     fg_setcolor(dkcolor);
  49.     fg_box(minx, maxx, miny, maxy);
  50.     fg_box(inminx, inmaxx, inminy, inmaxy);
  51.  
  52.     if(ltcolor != dkcolor)
  53.     {
  54.         fg_setcolor(ltcolor);
  55.         fg_move(minx, maxy);
  56.         fg_draw(minx, miny);
  57.         fg_draw(maxx, miny);
  58.         fg_move(inminx, inmaxy);
  59.         fg_draw(inmaxx, inmaxy);
  60.         fg_draw(inmaxx, inminy);
  61.     }
  62.  
  63.     fg_setcolor(bcolor);
  64.     if(bwidth > 0) fg_paint(minx + 1, miny + 1);
  65.  
  66.     if(lines > 0) // Just something x-tra
  67.     {
  68.         fg_setcolor(dkcolor);
  69.         middle = (minx + maxx) / 2;
  70.         fg_move(middle, miny);
  71.         fg_draw(middle, inminy);
  72.         fg_move(middle, maxy);
  73.         fg_draw(middle, inmaxy);
  74.         middle = (miny + maxy) / 2;
  75.         fg_move(minx, middle);
  76.         fg_draw(inminx, middle);
  77.         fg_move(maxx, middle);
  78.         fg_draw(inmaxx, middle);
  79.     }
  80.  
  81.     drawnyet = 1;
  82.     return 1;
  83. }
  84.