home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / snip9707.zip / VIDMGR.H < prev    next >
C/C++ Source or Header  |  1997-07-05  |  6KB  |  171 lines

  1. /* +++Date last modified: 05-Jul-1997 */
  2.  
  3. /*
  4.  *  VIDMGR.H; Screen drawing, cursor and keyboard routines for text mode
  5.  *            16-bit and 32-bit MS-DOS, 16-bit and 32-bit OS/2, and 32-bit
  6.  *            Windows 95/NT applications.  Release 1.2.
  7.  *
  8.  *  This module written in March 1996 by Andrew Clarke and released to the
  9.  *  public domain.  Last modified in June 1996.
  10.  *
  11.  *  VidMgr has been compiled and tested with the following C compilers:
  12.  *
  13.  *    - Borland C++ (16-bit) for DOS 3.1
  14.  *    - Borland C++ (16-bit) for DOS 4.5
  15.  *    - Borland C++ (32-bit) for OS/2 1.0
  16.  *    - Cygnus GNU C (32-bit) for Windows 95/NT b14.0
  17.  *    - DJGPP GNU C (32-bit) for DOS 2.0
  18.  *    - EMX GNU C (32-bit) for OS/2 & DOS 0.9b
  19.  *    - IBM VisualAge C/C++ 3.0 (32-bit) for OS/2
  20.  *    - Microsoft C/C++ (16-bit) for OS/2 6.00a
  21.  *    - Microsoft C/C++ (16-bit) for DOS 8.00c
  22.  *    - Microsoft Quick C (16-bit) for DOS 2.50
  23.  *    - Microsoft Visual C/C++ (16-bit) for DOS 1.52
  24.  *    - WATCOM C/C++ (16-bit & 32-bit) for DOS 9.5
  25.  *    - WATCOM C/C++ (16-bit & 32-bit) for DOS 10.0
  26.  *    - WATCOM C/C++ (32-bit) for OS/2 10.0
  27.  *    - WATCOM C/C++ (32-bit) for Windows 95/NT 10.0
  28.  *    - HI-TECH Pacific C (16-bit) for DOS 7.51
  29.  *    - Symantec C/C++ (16-bit) for DOS 7.0
  30.  *    - Zortech C/C++ (16-bit) for DOS 3.0r4
  31.  */
  32.  
  33. #ifndef __VIDMGR_H__
  34. #define __VIDMGR_H__
  35.  
  36. #ifndef DOS
  37. #if defined(_QC) || defined(__DOS__) || defined(MSDOS) || defined(__MSDOS__)
  38. #define DOS
  39. #endif
  40. #endif
  41.  
  42. #ifndef OS2
  43. #if defined(__OS2__) || defined(OS_2)
  44. #define OS2
  45. #endif
  46. #endif
  47.  
  48. #ifndef EMX
  49. #if defined(__EMX__)
  50. #define EMX
  51. #endif
  52. #endif
  53.  
  54. #ifndef WINNT
  55. #if defined(__NT__)
  56. #define WINNT
  57. #endif
  58. #endif
  59.  
  60. #define BLACK         0x00
  61. #define BLUE          0x01
  62. #define GREEN         0x02
  63. #define CYAN          0x03
  64. #define RED           0x04
  65. #define MAGENTA       0x05
  66. #define PURPLE        MAGENTA
  67. #define BROWN         0x06
  68. #define LIGHTGRAY     0x07
  69. #define LIGHTGREY     LIGHTGRAY
  70. #define DARKGRAY      0x08
  71. #define DARKGREY      DARKGRAY
  72. #define LIGHTBLUE     0x09
  73. #define LIGHTGREEN    0x0a
  74. #define LIGHTCYAN     0x0b
  75. #define LIGHTRED      0x0c
  76. #define LIGHTMAGENTA  0x0d
  77. #define LIGHTPURPLE   LIGHTMAGENTA
  78. #define YELLOW        0x0e
  79. #define WHITE         0x0f
  80. #define BLINK         0x80
  81.  
  82. #define CURSORHIDE    0
  83. #define CURSORNORM    1
  84. #define CURSORHALF    2
  85. #define CURSORFULL    3
  86.  
  87. #define vm_mkcolor(fore, back)  ((fore) | (back << 4))
  88. #define vm_fore(attr)           (attr % 16)
  89. #define vm_back(attr)           (attr / 16)
  90. #define vm_mkcolour             vm_mkcolor
  91. #define vm_attrib               vm_paintbox
  92.  
  93. struct vm_info
  94. {
  95.     char attr;                  /* text attribute */
  96. #if defined(DOS)
  97.     char mode;                  /* video mode */
  98. #endif
  99.     char height;                /* screen height */
  100.     char width;                 /* screen width */
  101.     char ypos;                  /* y-coordinate */
  102.     char xpos;                  /* x-coordinate */
  103. #if defined(WINNT)
  104.     unsigned short dwSize;      /* 0=minimal; 49=half; 99=full */
  105.     int bVisible;               /* 0=cursor invisible */
  106. #else
  107.     char cur_start;             /* cursor start line */
  108.     char cur_end;               /* cursor end line */
  109. #endif
  110. };
  111.  
  112. extern struct vm_info vm_startup;
  113. extern char vm_curattr;
  114.  
  115. extern char vm_frame_blank[];
  116. extern char vm_frame_single[];
  117. extern char vm_frame_double[];
  118.  
  119. void vm_init(void);
  120. void vm_done(void);
  121. char vm_getscreenwidth(void);
  122. char vm_getscreenheight(void);
  123. short vm_getscreensize(void);
  124. void vm_gotoxy(char x, char y);
  125. char vm_wherex(void);
  126. char vm_wherey(void);
  127. int vm_kbhit(void);
  128. int vm_getch(void);
  129. void vm_paintclearbox(char x1, char y1, char x2, char y2, char attr);
  130. void vm_paintclearscreen(char attr);
  131. void vm_paintclearline(char row, char attr);
  132. void vm_paintcleareol(char row, char attr);
  133. void vm_paintbox(char x1, char y1, char x2, char y2, char attr);
  134. void vm_paintscreen(char attr);
  135. void vm_paintline(char row, char attr);
  136. void vm_painteol(char row, char attr);
  137. void vm_clearbox(char x1, char y1, char x2, char y2);
  138. void vm_clearscreen(void);
  139. void vm_clearline(char row);
  140. void vm_cleareol(char row);
  141. void vm_fillbox(char x1, char y1, char x2, char y2, char ch);
  142. void vm_fillscreen(char ch);
  143. void vm_fillline(char row, char ch);
  144. void vm_filleol(char row, char ch);
  145. void vm_clrscr(void);
  146. void vm_clreol(void);
  147. char vm_getchxy(char x, char y);
  148. char vm_getattrxy(char x, char y);
  149. void vm_xgetchxy(char x, char y, char *attr, char *ch);
  150. void vm_setattr(char attr);
  151. void vm_putattr(char x, char y, char attr);
  152. void vm_setcursorstyle(int style);
  153. void vm_putch(char x, char y, char ch);
  154. void vm_puts(char x, char y, char *str);
  155. void vm_printf(char x, char y, const char *format,...);
  156. void vm_printfcenter(char row, const char *format,...);
  157. void vm_printfbetween(char x1, char x2, char row, const char *format,...);
  158. void vm_xputch(char x, char y, char attr, char ch);
  159. void vm_xputs(char x, char y, char attr, char *str);
  160. void vm_xprintf(char x, char y, char attr, const char *format,...);
  161. void vm_xprintfcenter(char row, char attr, const char *format,...);
  162. void vm_xprintfbetween(char x1, char x2, char row, char attr, const char *format,...);
  163. void vm_horizline(char x1, char x2, char row, char attr, char ch);
  164. void vm_vertline(char y1, char y2, char col, char attr, char ch);
  165. void vm_frame(char x1, char y1, char x2, char y2, char attr, char *frame);
  166. void vm_gettext(char x1, char y1, char x2, char y2, char *dest);
  167. void vm_puttext(char x1, char y1, char x2, char y2, char *srce);
  168. void vm_getinfo(struct vm_info *v);
  169.  
  170. #endif  /* __VIDMGR_H__ */
  171.