home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / FSGFX.ZIP / MYGRAPH.H < prev    next >
C/C++ Source or Header  |  1990-03-07  |  2KB  |  82 lines

  1. /* mygraph.h */
  2.  
  3. #include <os2.h>
  4.  
  5. #define     SCR_XMAX    640
  6. #define        SCR_YMAX    350
  7. #define        FONTH        8    /* font height */
  8. #define        FONTW        8    /* font width */
  9.  
  10. #define g_doscall(x) if(returnvalue = x) { g_rmode(); printf(#x " = %d\n",returnvalue); getch(); exit(returnvalue); }
  11. #define g_mode(x) redrawmode = x;
  12. #define g_save(a,b) memcpy(a,pchscreen,b);
  13. #define g_restore(a,b) memcpy(pchscreen,a,b);
  14. #define g_solid()
  15. #define    OR        0
  16. #define XOR        1
  17. #define AND        2
  18.  
  19. struct point {
  20.         int x;
  21.         int y;
  22.     };
  23.  
  24. struct rect {
  25.         struct point pt1;
  26.         struct point pt2;
  27.     };
  28.  
  29. /* uses rect structure to create a rectangle on screen */
  30. /* by drawing lines */
  31. #define g_rect(s)         g_line(s.pt1.x,s.pt1.y,s.pt1.x,s.pt2.y); \
  32.                 g_line(s.pt2.x,s.pt1.y,s.pt2.x,s.pt2.y); \
  33.                 g_line(s.pt1.x,s.pt1.y,s.pt2.x,s.pt1.y); \
  34.                 g_line(s.pt1.x,s.pt2.y,s.pt2.x,s.pt2.y); 
  35.  
  36. extern struct _VIOPHYSBUF viopbBuf;
  37. extern struct _VIOMODEINFO oldconfig;
  38. extern struct _VIOMODEINFO newconfig;
  39.  
  40. extern unsigned char alphabet[128][8][8];
  41. extern int oldtextx;    /* external variables, local to this module */
  42. extern int oldtexty;
  43.  
  44. extern int g_fselect(char searchpath[],char filename[]);
  45. extern int g_clrscn(void);
  46. extern char *screenbuffer;
  47. extern char *pchscreen;
  48. extern int ptinrect(struct point pt, struct rect r);
  49. extern int redrawmode;
  50. extern int returnvalue;
  51. extern int g_setgph( void );
  52. extern int g_rmode( void );
  53. extern int g_dot(int x, int y);
  54. extern int g_erase(int x, int y);
  55. extern int g_line(int startx, int starty, int endx, int endy);
  56. extern int g_puts(int locx,int locy,char temp[]);
  57. extern int g_gets(int locx,int locy,char temp[]);
  58.  
  59. extern int g_msgbox(int x,int y, int width, int height, char message1[], char message2[]);
  60. extern struct rect g_drwbtn(int x,int y, char message1[], char message2[]);
  61. extern int g_hfader(int x,int y,int fvalue);
  62. extern int g_vfader(int x, int y, int fvalue);
  63.  
  64.  
  65. extern void g_rdrwth(void);
  66. extern void g_rmdth(void);
  67.  
  68.  
  69. #define g_macrodot(x,y) spot = (80 * y) + (x/8);        \
  70.     uchar = 0x80 >> (x % 8 );                \
  71.     if(redrawmode == OR)                    \
  72.         *(pchscreen+spot) = *(pchscreen+spot) | uchar;    \
  73.     else if(redrawmode == XOR)                \
  74.         *(pchscreen+spot) = *(pchscreen+spot) ^ uchar;    \
  75.     else if(redrawmode == AND)                \
  76.         *(pchscreen+spot) = *(pchscreen+spot) & uchar;    
  77.  
  78. #define g_macrodoterase(x,y) spot = (80 * y) + (x/8);        \
  79.     uchar = (0x80 >> (x % 8 )) ^ 0xff;            \
  80.     *(pchscreen+spot) = *(pchscreen+spot) & uchar; 
  81.  
  82.