home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_11_04 / 1104021b < prev    next >
Text File  |  1992-12-15  |  2KB  |  117 lines

  1. /*
  2.   listing 2 - menu.h
  3. */
  4.  
  5. /* screen dimensions*/
  6. #define MAX_ROWS 24
  7. #define MAX_COLUMNS 80
  8.  
  9. /* keystroke codes and color */
  10. #ifdef HPUX
  11. #define UP_ARROW     3
  12. #define DOWN_ARROW    2
  13. #define LEFT_ARROW     4
  14. #define RIGHT_ARROW     5
  15. #define RETURN        10
  16. #define ESCAPE        27
  17. #endif
  18. #ifdef SUN
  19. #define UP_ARROW     65
  20. #define DOWN_ARROW    66
  21. #define LEFT_ARROW     68
  22. #define RIGHT_ARROW     67
  23. #define RETURN        10
  24. #define ESCAPE        27
  25. #endif
  26. #ifdef VMS
  27. #define UP_ARROW     274 
  28. #define DOWN_ARROW    275
  29. #define LEFT_ARROW     276
  30. #define RIGHT_ARROW     277
  31. #define RETURN        13
  32. #define ESCAPE        291 /* F11 */
  33. #endif
  34. #ifdef BCC
  35. #define MAINCOLOR     (F_RED | B_BLACK)
  36. #define DIALOGCOLOR    (F_CYAN | B_BLACK)
  37. #define UP_ARROW     56
  38. #define DOWN_ARROW    50
  39. #define LEFT_ARROW     52
  40. #define RIGHT_ARROW     54
  41. #define    RETURN        10
  42. #define ESCAPE        27
  43. #endif
  44.  
  45. /* macros for portability */
  46. #ifndef VMS
  47. #define BEGX _begx
  48. #define BEGY _begy
  49. #define MAXX _maxx
  50. #else
  51. #define BEGX _beg_x
  52. #define BEGY _beg_y
  53. #define MAXX _max_x
  54. #endif
  55.  
  56. /* box characters */
  57.  
  58. #ifdef BCC
  59. #define SINGLE_SIDE   -77 /* single bar */
  60. #define SINGLE_ACROSS -60
  61. #define DOUBLE_SIDE   -70 /* double bar */
  62. #define DOUBLE_ACROSS -51
  63. #else
  64. #define SINGLE_SIDE   '|'
  65. #define SINGLE_ACROSS '-'
  66. #define DOUBLE_SIDE   '"'
  67. #define DOUBLE_ACROSS '='
  68. #endif
  69.  
  70. #define TCHOICES 3
  71.  
  72. /* menubar structure */
  73. typedef struct mbar {
  74.     char string[80];
  75.     char letter;
  76.     int pos;
  77. }MENUBAR;
  78.  
  79. /* pulldown menu choices */
  80. typedef struct choices {
  81.     char string[20];
  82.     char letter;
  83.     int (*funcptr)();
  84. } CHOICES;
  85.  
  86. /* pulldown menu structure */
  87. typedef struct pmenu {
  88.     int num;
  89.     int maxlength;
  90.     CHOICES *ptr;
  91. } PULLDOWN;
  92.  
  93. /* prototypes */
  94. WINDOW *topbar(WINDOW *);
  95. WINDOW *pulldown(int,int,int,int);
  96. WINDOW *popup(int,int,int,int);
  97. void move_window(WINDOW *win,int y, int x);
  98. void print_string(WINDOW *,int, int, char *);
  99. void erase_window(WINDOW *);
  100. void delete_window(WINDOW *);
  101. void refresh_window(WINDOW *);
  102. int to_dialogue(char *);
  103. void clear_dialogue(void);
  104. void touch_window(WINDOW *);
  105. char *strmenu(int, MENUBAR *, int);
  106. char menu_choice(char *);
  107. int clean_up(void);
  108. void repaint(void);
  109. char do_pulldown(int,PULLDOWN *, MENUBAR *);
  110. void set_stdscr(void);
  111. void execute_command(int, int, PULLDOWN *);
  112. char do_menubar(WINDOW *, MENUBAR *);
  113. void strtoupper(char *);
  114. void strtolower(char *);
  115. void set_stdscr(void);
  116. char get_keystroke(void);
  117.