wincurs.h

Go to the documentation of this file.
00001 #ifndef WINCURS_H
00002 #define WINCURS_H
00003 
00004 /* Global declarations for curses interface */
00005 
00006 int term_rows, term_cols; /* size of underlying terminal */
00007 
00008 WINDOW *base_term;    /* underlying terminal window */
00009 
00010 WINDOW *mapwin, *statuswin, *messagewin;    /* Main windows */
00011 
00012 boolean counting;   /* Count window is active */
00013 
00014 
00015 #define TEXTCOLOR   /* Allow color */
00016 #define NHW_END 19
00017 #define OFF 0
00018 #define ON 1
00019 #define NONE -1
00020 #define KEY_ESC 0x1b
00021 #define DIALOG_BORDER_COLOR CLR_MAGENTA
00022 #define SCROLLBAR_COLOR CLR_MAGENTA
00023 #define SCROLLBAR_BACK_COLOR CLR_BLACK
00024 #define HIGHLIGHT_COLOR CLR_WHITE
00025 #define MORECOLOR CLR_ORANGE
00026 #define STAT_UP_COLOR CLR_GREEN
00027 #define STAT_DOWN_COLOR CLR_RED
00028 #define MESSAGE_WIN 1
00029 #define STATUS_WIN  2
00030 #define MAP_WIN     3
00031 #define NHWIN_MAX   4
00032 #define MESG_HISTORY_MAX   200
00033 #if !defined(__APPLE__) || !defined(NCURSES_VERSION)
00034 # define USE_DARKGRAY /* Allow "bright" black; delete if not visible */
00035 #endif  /* !__APPLE__ && !PDCURSES */
00036 #define CURSES_DARK_GRAY    17
00037 #define MAP_SCROLLBARS
00038 #ifdef PDCURSES
00039 # define getmouse nc_getmouse
00040 # ifndef NCURSES_MOUSE_VERSION
00041 #  define NCURSES_MOUSE_VERSION
00042 # endif
00043 #endif
00044 
00045 
00046 typedef enum orient_type
00047 {
00048     CENTER,
00049     UP,
00050     DOWN,
00051     RIGHT,
00052     LEFT,
00053     UNDEFINED
00054 } orient;
00055 
00056 
00057 /* cursmain.c */
00058 
00059 extern struct window_procs curses_procs;
00060 
00061 extern void curses_init_nhwindows(int* argcp, char** argv);
00062 
00063 extern void curses_player_selection(void);
00064 
00065 extern void curses_askname(void);
00066 
00067 extern void curses_get_nh_event(void);
00068 
00069 extern void curses_exit_nhwindows(const char *str);
00070 
00071 extern void curses_suspend_nhwindows(const char *str);
00072 
00073 extern void curses_resume_nhwindows(void);
00074 
00075 extern winid curses_create_nhwindow(int type);
00076 
00077 extern void curses_clear_nhwindow(winid wid);
00078 
00079 extern void curses_display_nhwindow(winid wid, BOOLEAN_P block);
00080 
00081 extern void curses_destroy_nhwindow(winid wid);
00082 
00083 extern void curses_curs(winid wid, int x, int y);
00084 
00085 extern void curses_putstr(winid wid, int attr, const char *text);
00086 
00087 extern void curses_display_file(const char *filename,BOOLEAN_P must_exist);
00088 
00089 extern void curses_start_menu(winid wid);
00090 
00091 extern void curses_add_menu(winid wid, int glyph, const ANY_P * identifier,
00092                 CHAR_P accelerator, CHAR_P group_accel, int attr, 
00093                 const char *str, BOOLEAN_P presel);
00094 
00095 extern void curses_end_menu(winid wid, const char *prompt);
00096 
00097 extern int curses_select_menu(winid wid, int how, MENU_ITEM_P **selected);
00098 
00099 extern void curses_update_inventory(void);
00100 
00101 extern void curses_mark_synch(void);
00102 
00103 extern void curses_wait_synch(void);
00104 
00105 extern void curses_cliparound(int x, int y);
00106 
00107 extern void curses_print_glyph(winid wid,XCHAR_P x,XCHAR_P y,int glyph);
00108 
00109 extern void curses_raw_print(const char *str);
00110 
00111 extern void curses_raw_print_bold(const char *str);
00112 
00113 extern int curses_nhgetch(void);
00114 
00115 extern int curses_nh_poskey(int *x, int *y, int *mod);
00116 
00117 extern void curses_nhbell(void);
00118 
00119 extern int curses_doprev_message(void);
00120 
00121 extern char curses_yn_function(const char *question, const char *choices, CHAR_P def);
00122 
00123 extern void curses_getlin(const char *question, char *input);
00124 
00125 extern int curses_get_ext_cmd(void);
00126 
00127 extern void curses_number_pad(int state);
00128 
00129 extern void curses_delay_output(void);
00130 
00131 extern void curses_start_screen(void);
00132 
00133 extern void curses_end_screen(void);
00134 
00135 extern void curses_outrip(winid wid, int how);
00136 
00137 extern void genl_outrip(winid tmpwin, int how);
00138 
00139 extern void curses_preference_update(const char *pref);
00140 
00141 
00142 /* curswins.c */
00143 
00144 extern WINDOW *curses_create_window(int width, int height, orient orientation);
00145 
00146 extern void curses_destroy_win(WINDOW *win);
00147 
00148 extern WINDOW *curses_get_nhwin(winid wid);
00149 
00150 extern void curses_add_nhwin(winid wid, int height, int width, int y,
00151  int x, orient orientation, boolean border);
00152 
00153 extern void curses_add_wid(winid wid);
00154 
00155 extern void curses_refresh_nhwin(winid wid);
00156 
00157 extern void curses_refresh_nethack_windows(void);
00158 
00159 extern void curses_del_nhwin(winid wid);
00160 
00161 extern void curses_del_wid(winid wid);
00162 
00163 extern void curses_putch(winid wid, int x, int y, int ch, int color, int attrs);
00164 
00165 extern void curses_get_window_size(winid wid, int *height, int *width);
00166 
00167 extern boolean curses_window_has_border(winid wid);
00168 
00169 extern boolean curses_window_exists(winid wid);
00170 
00171 extern int curses_get_window_orientation(winid wid);
00172 
00173 extern void curses_get_window_xy(winid wid, int *x, int *y);
00174 
00175 extern void curses_puts(winid wid, int attr, const char *text);
00176 
00177 extern void curses_clear_nhwin(winid wid);
00178 
00179 extern void curses_draw_map(int sx, int sy, int ex, int ey);
00180 
00181 extern boolean curses_map_borders(int *sx, int *sy, int *ex, int *ey,
00182  int ux, int uy);
00183 
00184 
00185 /* cursmisc.c */
00186 
00187 extern int curses_read_char(void);
00188 
00189 extern void curses_toggle_color_attr(WINDOW *win, int color, int attr, int onoff);
00190 
00191 extern void curses_bail(const char *mesg);
00192 
00193 extern winid curses_get_wid(int type);
00194 
00195 extern char *curses_copy_of(const char *s);
00196 
00197 extern int curses_num_lines(const char *str, int width);
00198 
00199 extern char *curses_break_str(const char *str, int width, int line_num);
00200 
00201 extern char *curses_str_remainder(const char *str, int width, int line_num);
00202 
00203 extern boolean curses_is_menu(winid wid);
00204 
00205 extern boolean curses_is_text(winid wid);
00206 
00207 extern int curses_convert_glyph(int ch, int glyph);
00208 
00209 extern void curses_move_cursor(winid wid, int x, int y);
00210 
00211 extern void curses_prehousekeeping(void);
00212 
00213 extern void curses_posthousekeeping(void);
00214 
00215 extern void curses_view_file(const char *filename, boolean must_exist);
00216 
00217 extern void curses_rtrim(char *str);
00218 
00219 extern int curses_get_count(int first_digit);
00220 
00221 extern int curses_convert_attr(int attr);
00222 
00223 extern int curses_read_attrs(char *attrs);
00224 
00225 extern int curses_convert_keys(int key);
00226 
00227 extern int curses_get_mouse(int *mousex, int *mousey, int *mod);
00228 
00229 /* cursdial.c */
00230 
00231 extern void curses_line_input_dialog(const char *prompt, char *answer, int buffer);
00232 
00233 extern int curses_character_input_dialog(const char *prompt, const char *choices, CHAR_P def);
00234 
00235 extern int curses_ext_cmd(void);
00236 
00237 extern void curses_create_nhmenu(winid wid);
00238 
00239 extern void curses_add_nhmenu_item(winid wid, const ANY_P *identifier,
00240  CHAR_P accelerator, CHAR_P group_accel, int attr, const char *str,
00241  BOOLEAN_P presel);
00242 
00243 extern void curses_finalize_nhmenu(winid wid, const char *prompt);
00244 
00245 extern int curses_display_nhmenu(winid wid, int how, MENU_ITEM_P **_selected);
00246 
00247 extern boolean curses_menu_exists(winid wid);
00248 
00249 extern void curses_del_menu(winid wid);
00250 
00251 
00252 /* cursstat.c */
00253 
00254 extern void curses_update_stats(boolean redraw);
00255 
00256 extern void curses_decrement_highlight(void);
00257 
00258 
00259 /* cursinit.c */
00260 
00261 extern void curses_create_main_windows(void);
00262 
00263 extern void curses_init_nhcolors(void);
00264 
00265 extern void curses_choose_character(void);
00266 
00267 extern int curses_character_dialog(const char** choices, const char *prompt);
00268 
00269 extern void curses_init_options(void);
00270 
00271 extern void curses_display_splash_window(void);
00272 
00273 
00274 /* cursmesg.c */
00275 
00276 extern void curses_message_win_puts(const char *message, boolean recursed);
00277 
00278 extern int curses_more(void);
00279 
00280 extern void curses_clear_unhighlight_message_window(void);
00281 
00282 extern void curses_last_messages(void);
00283 
00284 extern void curses_init_mesg_history(void);
00285 
00286 extern void curses_prev_mesg(void);
00287 
00288 extern void curses_count_window(const char *count_text);
00289 
00290 #endif  /* WINCURS_H */
00291