home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c221 / 1.ddi / INC / GRAPH.H < prev    next >
Encoding:
C/C++ Source or Header  |  1993-01-19  |  8.6 KB  |  249 lines

  1. /*  graph.h   -- extra-ANSI
  2.  *  Graphics utility  functions for Microsoft  compatibility.
  3.  *  Copyright   (c) 1990,1991 MetaWare Incorporated
  4.  */
  5. #ifndef _GRAPH_H
  6. #define _GRAPH_H
  7. #pragma push_align_members(64);
  8.  
  9. #ifdef __CPLUSPLUS__
  10. extern "C" {
  11. #endif
  12.  
  13. #ifndef _GRAPH_T_DEFINED
  14. /* structures used in the library */
  15.  
  16. /* The structures xycoord, rccoord, and videoconfig have been changed to
  17.    _xycoord, _rccoord, and _videoconfig for ANSI conformance.  If you are
  18.    compiling in ANSI mode you will not be able to use the Microsoft names
  19.    which do not include a prepended _. When compiling in Non-ANSI mode the
  20.    defines above will allow for complete Microsoft name compatiblity. */
  21.  
  22. struct _xycoord {
  23.     short xcoord; /* x coordinate */
  24.     short ycoord; /* y coordinate */
  25.     } ;
  26. struct _wxycoord {
  27.     double wx; /* x coordinate */
  28.     double wy; /* y coordinate */
  29.     } ;
  30. struct _rccoord {
  31.     short row;  /* x coordinate */
  32.     short col;  /* y coordinate */
  33.     } ;
  34.  
  35. struct _videoconfig {
  36.     short numxpixels;     /* pixels in the x direction */
  37.     short numypixels;     /* pixels in the y direction */
  38.     short numtextcols;    /* text columns available */
  39.     short numtextrows;    /* text rows available */
  40.     short numcolors;      /* actual colors available */
  41.     short bitsperpixel;   /* bits per pixel */
  42.     short numvideopages;  /* available video pages */
  43.     short mode;           /* videomode */ 
  44.     short adapter;
  45.     short monitor;
  46.     short memory;         /* graphic board memory */
  47.     } ;
  48.  
  49. /* Define Non-ANSI structure names if no compiling in ANSI mode */
  50. #if __HIGHC__
  51. #define xycoord _xycoord
  52. #define wxycoord _wxycoord
  53. #define rccoord _rccoord
  54. #define videoconfig _videoconfig
  55. #endif
  56.  
  57. #define _GRAPH_T_DEFINED
  58. #endif
  59.  
  60. /* function prototypes    */
  61. extern short _arc(short, short, short,   short, short, short, short, short);
  62. extern short _arc_w(double, double, double, double,
  63.               double, double, double, double);
  64. extern short _arc_wxy(struct _wxycoord *, struct _wxycoord *,
  65.             struct _wxycoord *, struct _wxycoord *);
  66. extern void  _clearscreen(short);
  67. extern short _ellipse(short, short, short, short, short);
  68. extern short _ellipse_w(short, double, double, double, double);
  69. extern short _ellipse_wxy(short, struct _wxycoord *, struct _wxycoord *);
  70. extern short _displaycursor(short toggle);
  71. extern short _floodfill(short x, short   y, short boundary);
  72. extern short _getbkcolor(void);
  73. extern short _getcolor(void);
  74. extern struct _xycoord    _getcurrentposition(void);
  75. extern char  *_getfillmask(char *);
  76. extern void  _getimage(short, short, short, short, char *);
  77. extern void  _getimage_w(double, double, double, double, char *);
  78. extern void  _getimage_wxy(struct _wxycoord *, struct _wxycoord *, char *);
  79. extern unsigned short _getlinestyle(void);
  80. extern struct _xycoord _getlogcoord(short, short);
  81. extern struct _xycoord _getphyscoord(short, short);
  82. extern short _getpixel(short, short);
  83. extern short _getpixel_w(double, double);
  84. extern short _gettextcolor(void);
  85. extern short _gettextcursor(void);
  86. extern short _getvisualpage(void);
  87. extern short _getwritemode(void);
  88. extern struct _rccoord _gettextposition(void);
  89. extern struct _videoconfig *_getvideoconfig(struct _videoconfig *buffer);
  90. extern struct _xycoord _getviewcoord(short,short);
  91. extern struct _wxycoord _getwindowcoord(short,short);
  92. extern long  _imagesize(short, short, short, short);
  93. extern long  _imagesize_w(double, double, double, double);
  94. extern short _lineto(short, short);
  95. extern short _lineto_w(double, double);
  96. extern struct _xycoord _moveto(short, short);
  97. extern struct _wxycoord _moveto_w(double, double);
  98. extern void  _outtext(char *text);
  99. extern short _pie(short,short,short,short, short, short, short, short, short);
  100. extern short _pie_w(short, double, double, double, double,
  101.               double, double, double, double);
  102. extern short _pie_wxy(short, struct _wxycoord *, struct _wxycoord *,
  103.             struct _wxycoord *, struct _wxycoord *);
  104. extern short _polygon(short, struct xycoord[], short);
  105. extern short _polygon_w(short, double[] , short);
  106. extern void  _putimage(short, short, char *, short);
  107. extern void  _putimage_w(double, double, char *, short);
  108. extern void  _putimage_wxy(struct _wxycoord *, char *, short);
  109. extern short _rectangle(short, short, short, short, short);
  110. extern short _rectangle_w(short, double, double, double, double);
  111. extern short _rectangle_wxy(short, struct _wxycoord *, struct _wxycoord *);
  112. extern short _setactivepage(short);
  113. extern short _setbkcolor(short);
  114. extern short _setcolor(short);
  115. extern void  _setcliprgn(short, short, short, short);
  116. extern void  _setfillmask(char  *);
  117. extern void  _setlinestyle(unsigned   short linestyle);
  118. extern short _settextcursor(short);
  119. extern struct _xycoord _setlogorg(short, short);
  120. extern short _setpixel(short x, short y);
  121. extern short _setpixel_w(double x, double y);
  122. extern short _settextcolor(short color);
  123. extern short _settextcursor(short attr);
  124. extern short _setvideomoderows(short, short);
  125. extern struct _rccoord _settextposition(short, short);
  126. extern void  _settextwindow(short xt, short yt, short xb, short yb);
  127. extern short _setvideomode(short);
  128. extern struct _xycoord _setvieworg(short, short);
  129. extern void  _setviewport(short, short, short, short);
  130. extern short _setvisualpage(short);
  131. extern short _setwindow(short,double,double,double,double);
  132. extern short _setwritemode(short);
  133. extern short _wrapon(short wrap);
  134. extern short _selectpalette(short  number);
  135. extern short _remapallpalette(long *color);
  136. extern long _remappalette(short pixel, long color);
  137. extern short _settextrows(short rows);
  138.  
  139. /* font function prototypes */
  140. extern void  _outgtext( const unsigned char * );
  141. extern short _registerfonts( const char *);
  142. extern void  _unregisterfonts( void );
  143.  
  144. /* Borland functions */
  145. extern void _line(int, int, int, int);  
  146.  
  147. /*arguments to  _clearscreen() */
  148. #define _GCLEARSCREEN 0
  149. #define _GVIEWPORT    1
  150. #define _GWINDOW      2
  151.  
  152. /* arguments for _displaycursor() */
  153. #define _GCURSOROFF   0
  154. #define _GCURSORON    1
  155.  
  156. /* arguments to _ellipse, _pie(), and _rectangle() */
  157. #define _GBORDER      2
  158. #define _GFILLINTERIOR    3
  159.  
  160. /* videoconfig  adapter   constants */
  161. #define _MDPA   0x0001    /* Monochrome  Display Adapter (MDPA) */
  162. #define _CGA    0x0002    /* Color Graphics Adapter    (CGA) */
  163. #define _EGA    0x0004    /* Enhanced Graphics Adapter (EGA) */
  164. #define _VGA    0x0008    /* Video Graphics Array      (VGA) */
  165. #define _MCGA   0x0010    /* MultiColor  Graphics Array (MCGA) */
  166. #define _HGC    0x0020    /* Hercules Graphics Card    (HGC) */
  167.  
  168. #define _MONO     0x0001  /* Monochrome */
  169. #define _COLOR    0x0002  /* Color */
  170. #define _ENHCOLOR 0x0004  /* Enhanced Color */
  171. #define _ANALOG   0x0018  /* Analog */
  172.  
  173. /* mode argument to _setvideomode() */
  174. #define _DEFAULTMODE  -1
  175. #define _TEXTBW40  0
  176. #define _TEXTC40   1
  177. #define _TEXTBW80  2
  178. #define _TEXTC80   3
  179. #define _MRES4COLOR   4
  180. #define _MRESNOCOLOR  5
  181. #define _HRESBW    6
  182. #define _TEXTMONO  7
  183. #define _HERCMONO  8
  184. #define _MRES16COLOR  13
  185. #define _HRES16COLOR  14
  186. #define _ERESNOCOLOR  15
  187. #define _ERESCOLOR    16
  188. #define _VRES2COLOR   17
  189. #define _VRES16COLOR  18
  190. #define _MRES256COLOR 19
  191.  
  192. /* argument for _putimage(), _setwritemode and _getwritemode */
  193. #define _GOR       0
  194. #define _GAND      1
  195. #define _GPRESET   2
  196. #define _GPSET     3
  197. #define _GXOR        4
  198. /* Extra functionality for _writemode */
  199.    /* Note: These are not true logical NAND and NORS, but the complement of */
  200.    /*   the color ANDed or ORed */
  201. #define _GNOR        8
  202. #define _GNAND     9
  203. #define _GNXOR       12
  204.  
  205. /* arguments for _wrapon() */
  206. #define _GWRAPOFF  0
  207. #define _GWRAPON   1
  208.  
  209. /* color constants setcolor, setbkcolor */
  210. #define _BLACK     0
  211. #define _BLUE      1
  212. #define _GREEN     2
  213. #define _CYAN      3
  214. #define _RED       4
  215. #define _MAGENTA   5
  216. #define _BROWN     6
  217. #define _WHITE     7
  218. #define _GRAY      8
  219. #define _LIGHTBLUE 9
  220. #define _LIGHTGREEN   10
  221. #define _LIGHTCYAN    11
  222. #define _LIGHTRED     12
  223. #define _LIGHTMAGENTA 13
  224. #define _LIGHTYELLOW  14
  225. #define _BRIGHTWHITE  15
  226.  
  227. #define _MODEFOFF     0L
  228. #define _MODEFOFFTOON 1L
  229. #define _MODEFOFFTOHI 2L
  230. #define _MODEFONTOOFF 3L
  231. #define _MODEFON      4L
  232. #define _MODEFONTOHI  5L
  233. #define _MODEFHITOOFF 6L
  234. #define _MODEFHITOON  7L
  235. #define _MODEFHI      8L
  236.  
  237. /* mono mode 7  (_TEXTMONO) color values: */
  238. #define _MODE7OFF  0L
  239. #define _MODE7ON   1L
  240. #define _MODE7HI   2L
  241.  
  242. /* _settextrows row default value */
  243. #define _MAXTEXTROWS -1
  244. #ifdef __CPLUSPLUS__
  245. }
  246. #endif
  247. #pragma pop_align_members();
  248. #endif /* _GRAPH_H */
  249.