m_curses.h
上传用户:jmzj888
上传日期:2007-01-02
资源大小:220k
文件大小:8k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB
  2.    This file is public domain and comes with NO WARRANTY of any kind */
  3. /* Include right curses to be used */
  4. /* Set up ATTR_? to rutins to be used, independent of curses */
  5. #define _m_curses_h /* Signal global about curses */
  6. #ifdef P_CURSES
  7. #include "pcurses.h" /* ncurses includes global.h */
  8. #define HAS_CURSES_ADDMEM /* waddmem function exists */
  9. /*
  10.  Attribute is as following:
  11.    0 = Normal
  12.    1 = Bold (Or incresed intensity)
  13.    2 = Underline
  14.    3 = Flash
  15.    4 = Revers
  16.    5 = Bold+flash
  17. Colors is as following:
  18.    0 = Normal (White)
  19.    1 = Red
  20.    2 = Green
  21.    3 = Yellow
  22.    4 = Blue
  23.    5 = Magentha
  24.    6 = Cyan
  25.    7 = White on blue: Used as input-field
  26.    8 = Red   on Yellow: Fatal error
  27. */
  28. #define ATTR_CUR_ON() curson()
  29. #define ATTR_CUR_OFF() cursoff()
  30. #define FIX_CURSOR_POS() fix_cursor_position()
  31. #define ATTR_ALL_OFF(W) { wattribute(W,0); wcolor(W,0); }
  32. #define ATTR_REV(W) wattribute(W,4)
  33. #define ATTR_REV_OFF(W) wattribute(W,0)
  34. #define ATTR_UL(W) wattribute(W,2)
  35. #define ATTR_UL_OFF(W) wattribute(W,0)
  36. #define ATTR_BOLD(W) wattribute(W,1)
  37. #define ATTR_BOLD_OFF(W) wattribute(W,0)
  38. #define ATTR_INPUT(W) wcolor(W,7)
  39. #define ATTR_INPUT_OFF(W) wcolor(W,0)
  40. #define ATTR_INFO(W) wcolor(W,4)
  41. #define ATTR_INFO_OFF(W) wcolor(W,0)
  42. #define ATTR_WORKING(W) wattribute(W,5)
  43. #define ATTR_WORKING_OFF(W) wattribute(W,0)
  44. #define ATTR_ERROR(W) wcolor(W,1)
  45. #define ATTR_ERROR_OFF(W) wcolor(W,0)
  46. #define ATTR_FATAL_ERROR(W) wcolor(W,8)
  47. #define ATTR_FATAL_ERROR_OFF(W) wcolor(W,0)
  48. #define ATTR_HELP_BOX(W) wcolor(W,0) /* 6 */
  49. #define ATTR_KEY_BOX(W) wcolor(W,0) /* 3 */
  50. #define ATTR_VALUES_BOX(W) wcolor(W,0) /* 2 */
  51. #define ATTR_BOX(W) wbox(W,0,0,(int)W->_maxy,(int)W->_maxx,OVERLAY)
  52. #define ATTR_EXTEND_BOX(W,A,B,C,D,E) wbox(W,A,B,C,D,E)
  53. #define WINDOW_BEGY(W) (W)->_begy
  54. #define WNOUTREFRESH(W) wnoutrefresh(W)
  55. #else
  56. #ifdef M_TERMCAP
  57. #include <curses.h>
  58. #include "global.h"
  59. #define ATTR_CUR_ON() {}
  60. #define ATTR_CUR_OFF() {}
  61. #define FIX_CURSOR_POS()
  62. #define ATTR_ALL_OFF(W) wstandend(W)
  63. #define ATTR_REV(W) wstandout(W)
  64. #define ATTR_REV_OFF(W) wstandend(W)
  65. #define ATTR_UL(W) wstandout(W)
  66. #define ATTR_UL_OFF(W) wstandend(W)
  67. #define ATTR_BOLD(W) wstandout(W)
  68. #define ATTR_BOLD_OFF(W) wstandend(W)
  69. #define ATTR_INPUT(W) wstandout(W)
  70. #define ATTR_INPUT_OFF(W) wstandend(W)
  71. #define ATTR_INFO(W) {}
  72. #define ATTR_INFO_OFF(W) {}
  73. #define ATTR_WORKING(W) {}
  74. #define ATTR_WORKING_OFF(W) {}
  75. #define ATTR_ERROR(W) wstandout(W)
  76. #define ATTR_ERROR_OFF(W) wstandend(W)
  77. #define ATTR_FATAL_ERROR(W) wstandout(W)
  78. #define ATTR_FATAL_ERROR_OFF(W) wstandend(W)
  79. #define ATTR_HELP_BOX(W) {}
  80. #define ATTR_KEY_BOX(W) {}
  81. #define ATTR_VALUES_BOX(W) {}
  82. #define ATTR_BOX(W) box(W,'*','*')
  83. #define ATTR_EXTEND_BOX(W,A,B,C,D,E) ATTR_BOX(W)
  84. #define WINDOW_BEGY(W) (W)->_begy
  85. #define WNOUTREFRESH(W) wrefresh(W)
  86. #define endwin_free_only() {}
  87. #ifndef __linux__
  88. void beep _A((void)); /* Declared in my_mess.c */
  89. #endif
  90. #else
  91. #if defined(TERMINFO) || defined(SYS5_TERMINFO) /* TERMINFO */
  92. #include <curses.h>
  93. #include "global.h"
  94. #define ATTR_CUR_ON()
  95. #define ATTR_CUR_OFF()
  96. #define FIX_CURSOR_POS()
  97. #define ATTR_ALL_OFF(W) wattroff(W,A_REVERSE+A_BOLD+A_UNDERLINE+
  98.  A_STANDOUT+A_DIM)
  99. #define ATTR_REV(W) wattron(W,A_REVERSE)
  100. #define ATTR_REV_OFF(W) wattroff(W,A_REVERSE)
  101. #define ATTR_UL(W) wattron(W,A_UNDERLINE)
  102. #define ATTR_UL_OFF(W) wattroff(W,A_UNDERLINE)
  103. #define ATTR_BOLD(W) wattron(W,A_BOLD)
  104. #define ATTR_BOLD_OFF(W) wattroff(W,A_BOLD)
  105. #define ATTR_INPUT(W) wattron(W,A_REVERSE)
  106. #define ATTR_INPUT_OFF(W) wattroff(W,A_REVERSE)
  107. #define ATTR_INFO(W) wattron(W,A_UNDERLINE)
  108. #define ATTR_INFO_OFF(W) wattroff(W,A_UNDERLINE)
  109. #define ATTR_WORKING(W) wattron(W,A_BOLD+A_STANDOUT)
  110. #define ATTR_WORKING_OFF(W) wattroff(W,A_BOLD+A_STANDOUT)
  111. #define ATTR_ERROR(W) wattron(W,A_DIM)
  112. #define ATTR_ERROR_OFF(W) wattroff(W,A_DIM)
  113. #define ATTR_FATAL_ERROR(W) wattron(W,A_STANDOUT)
  114. #define ATTR_FATAL_ERROR_OFF(W) wattroff(W,A_STANDOUT)
  115. #define ATTR_HELP_BOX(W) wattron(W,A_BOLD)
  116. #define ATTR_KEY_BOX(W) wattron(W,A_BOLD)
  117. #define ATTR_VALUES_BOX(W) wattron(W,A_BOLD)
  118. #define ATTR_BOX(W) box(W,'*','*')
  119. #define ATTR_EXTEND_BOX(W,A,B,C,D,E) ATTR_BOX(W)
  120. #define WINDOW_BEGY(W) (W)->_begy
  121. #define WNOUTREFRESH(W) wrefresh(W)
  122. #define endwin_free_only() {}
  123. #else
  124. #ifdef VAXCURSES
  125. #include <curses.h>
  126. #include "global.h"
  127. #define ATTR_CUR_ON()
  128. #define ATTR_CUR_OFF()
  129. #define FIX_CURSOR_POS()
  130. #define ATTR_ALL_OFF(W) wclrattr(W,_BLINK|_BOLD|_REVERSE|_UNDERLINE)
  131. #define ATTR_REV(W) wsetattr(W,_REVERSE)
  132. #define ATTR_REV_OFF(W) wclrattr(W,_REVERSE)
  133. #define ATTR_UL(W) wsetattr(W,_UNDERLINE)
  134. #define ATTR_UL_OFF(W) wclrattr(W,_UNDERLINE)
  135. #define ATTR_BOLD(W) wsetattr(W,_BOLD)
  136. #define ATTR_BOLD_OFF(W) wclrattr(W,_BOLD)
  137. #define ATTR_INPUT(W) ATTR_REV(W)
  138. #define ATTR_INPUT_OFF(W) ATTR_REV_OFF(W)
  139. #define ATTR_INFO(W) ATTR_UL(W)
  140. #define ATTR_INFO_OFF(W) ATTR_UL_OFF(W)
  141. #define ATTR_WORKING(W) wsetattr(W,_BOLD|_BLINK)
  142. #define ATTR_WORKING_OFF(W) wclrattr(W,_BOLD|_BLINK)
  143. #define ATTR_ERROR(W) ATTR_BOLD(W)
  144. #define ATTR_ERROR_OFF(W) ATTR_BOLD_OFF(W)
  145. #define ATTR_FATAL_ERROR(W) ATTR_REV(W)
  146. #define ATTR_FATAL_ERROR_OFF(W) ATTR_REV_OFF(W)
  147. #define ATTR_HELP_BOX(W) wsetattr(W,_BOLD)
  148. #define ATTR_KEY_BOX(W) wsetattr(W,_BOLD)
  149. #define ATTR_VALUES_BOX(W) wsetattr(W,_BOLD)
  150. #define ATTR_BOX(W) box(W,'*','*')
  151. #define ATTR_EXTEND_BOX(W,A,B,C,D,E) ATTR_BOX(W)
  152. #define WNOUTREFRESH(W) wrefresh(W)
  153. #define WINDOW_BEGY(W) (W)->_beg_y
  154. #define cbreak() /* cbreak not neaded */
  155. #define winsertln(w) my_winsertln(w) /* winsertln() doesn't work */
  156. #define endwin_free_only() {}
  157. #define COLS (curscr->_max_x)
  158. #define LINES (curscr->_max_y)
  159. #else /* PC_CURSES */
  160. #include <global.h>
  161. #include <curses.h>
  162. #define HAS_CURSES_ADDMEM /* waddmem function exists */
  163. /*
  164.  Attribute is as following:
  165.    7   = Normal (This should always be on, except for underline)
  166.    8   = Bold
  167.    1   = Underline (Must be reset to normal)
  168.    128 = Flash
  169. Colors is as following:
  170.    0 = Black
  171.    1 = Blue
  172.    2 = Green
  173.    3 = Cyan
  174.    4 = Red
  175.    5 = Magentha
  176.    6 = Yellow
  177.    7 = White (Normal)
  178. */
  179. #define ATTR_CUR_ON() curson()
  180. #define ATTR_CUR_OFF() cursoff()
  181. #define FIX_CURSOR_POS()
  182. #define ATTR_ALL_OFF(W) wapplic_color(W,0)
  183. #define ATTR_REV(W) wfbreverse(W)
  184. #define ATTR_REV_OFF(W) wfbreverse(W)
  185. #define ATTR_UL(W) wapplic_color(W,9)
  186. #define ATTR_UL_OFF(W) ATTR_ALL_OFF(W)
  187. #define ATTR_BOLD(W) wapplic_color(W,10)
  188. #define ATTR_BOLD_OFF(W) ATTR_ALL_OFF(W)
  189. #define ATTR_INPUT(W) wapplic_color(W,1)
  190. #define ATTR_INPUT_OFF(W) ATTR_ALL_OFF(W)
  191. #define ATTR_INFO(W) wapplic_color(W,2)
  192. #define ATTR_INFO_OFF(W) ATTR_ALL_OFF(W)
  193. #define ATTR_WORKING(W) wapplic_color(W,3)
  194. #define ATTR_WORKING_OFF(W) ATTR_ALL_OFF(W)
  195. #define ATTR_ERROR(W) wapplic_color(W,4)
  196. #define ATTR_ERROR_OFF(W) ATTR_ALL_OFF(W)
  197. #define ATTR_FATAL_ERROR(W) wapplic_color(W,5)
  198. #define ATTR_FATAL_ERROR_OFF(W) ATTR_ALL_OFF(W)
  199. #define ATTR_HELP_BOX(W) wapplic_color(W,6)
  200. #define ATTR_KEY_BOX(W) wapplic_color(W,7)
  201. #define ATTR_VALUES_BOX(W) wapplic_color(W,8)
  202. #define ATTR_BOX(W) box(W);
  203. #define ATTR_EXTEND_BOX(W,A,B,C,D,E) wbox(W,A,B,C,D,(E | DOUBLE_HEIGHT))
  204. #define WINDOW_BEGY(W) (W)->_begy
  205. #define WNOUTREFRESH(W) wnoutrefresh(W)
  206. #define endwin_free_only() {}
  207. #endif /* PC_CURSES */
  208. #endif /* VAXCURSES */
  209. #endif /* TERMINFO */
  210. #endif /* P_CURSES */
  211. #ifndef HAS_CURSES_ADDMEM
  212. #define waddmem(W,S,L) {  string macro_pos,macro_endpos;
  213.  for (macro_pos=(S), macro_endpos=macro_pos+(L);
  214.       macro_pos < macro_endpos ;
  215.       macro_pos++)
  216.    waddch(W,*macro_pos); }
  217. #endif
  218. /* Some standar curses-functions that we use */
  219. extern WINDOW *my_newwin _A((int num_lines,int num_columns,int begy,int begx));
  220. extern void my_delwin _A((WINDOW *win));
  221. extern void my_touchwindows _A((void));
  222. extern void my_refresh _A((void));