sp_funcs(3NCURSES) | sp_funcs(3NCURSES) |
curs_sp_funcs - curses screen-pointer extension
#include <curses.h>
int alloc_pair_sp(SCREEN* sp, int fg, int bg);
int assume_default_colors_sp(SCREEN* sp, int fg, int bg);
int baudrate_sp(SCREEN* sp);
int beep_sp(SCREEN* sp);
bool can_change_color_sp(SCREEN* sp);
int cbreak_sp(SCREEN* sp);
int color_content_sp(SCREEN* sp, short color, short* r, short* g, short* b);
int curs_set_sp(SCREEN* sp, int visibility);
int def_prog_mode_sp(SCREEN* sp);
int def_shell_mode_sp(SCREEN* sp); int define_key_sp(SCREEN* sp, const char * definition, int keycode);
int delay_output_sp(SCREEN* sp, int ms);
int doupdate_sp(SCREEN* sp);
int echo_sp(SCREEN* sp);
int endwin_sp(SCREEN* sp);
char erasechar_sp(SCREEN* sp);
int erasewchar_sp(SCREEN* sp, wchar_t *ch);
int extended_color_content_sp(SCREEN * sp, int color, int * r, int * g, int * b);
int extended_pair_content_sp(SCREEN* sp, int pair, int * fg, int * bg);
int extended_slk_color_sp(SCREEN* sp, int pair); void filter_sp(SCREEN* sp);
int find_pair_sp(SCREEN* sp, int fg, int bg);
int flash_sp(SCREEN* sp);
int flushinp_sp(SCREEN* sp);
int free_pair_sp(SCREEN* sp, int pair);
int get_escdelay_sp(SCREEN* sp);
int getmouse_sp(SCREEN* sp, MEVENT* event);
WINDOW* getwin_sp(SCREEN* sp, FILE* filep);
int halfdelay_sp(SCREEN* sp, int tenths);
bool has_colors_sp(SCREEN* sp); bool has_ic_sp(SCREEN* sp);
bool has_il_sp(SCREEN* sp);
int has_key_sp(SCREEN* sp, int ch);
bool has_mouse_sp(SCREEN* sp);
int init_color_sp(SCREEN* sp, short color, short r, short g, short b);
int init_extended_color_sp(SCREEN* sp, int color, int r, int g, int b);
int init_extended_pair_sp(SCREEN* sp, int pair, int fg, int bg);
int init_pair_sp(SCREEN* sp, short pair, short fg, short bg);
int intrflush_sp(SCREEN* sp, WINDOW* win, bool bf);
bool is_term_resized_sp(SCREEN* sp, int lines, int columns); bool isendwin_sp(SCREEN* sp);
int key_defined_sp(SCREEN* sp, const char *definition);
char* keybound_sp(SCREEN* sp, int keycode, int count);
NCURSES_CONST char * keyname_sp(SCREEN* sp, int c);
int keyok_sp(SCREEN* sp, int keycode, bool enable);
char killchar_sp(SCREEN* sp);
int killwchar_sp(SCREEN* sp, wchar_t *ch);
char* longname_sp(SCREEN* sp);
int mcprint_sp(SCREEN* sp, char *data, int len);
int mouseinterval_sp(SCREEN* sp, int erval); mmask_t mousemask_sp(SCREEN* sp, mmask_t newmask, mmask_t *oldmask);
int mvcur_sp(SCREEN* sp, int oldrow, int oldcol, int newrow, int newcol);
int napms_sp(SCREEN* sp, int ms);
WINDOW* newpad_sp(SCREEN* sp, int nrows, int ncols);
SCREEN* new_prescr(void);
SCREEN* newterm_sp(SCREEN* sp, const char *type, FILE *outfd, FILE *infd);
WINDOW* newwin_sp(SCREEN* sp, int nlines, int ncols, int begin_y, int begin_x);
int nl_sp(SCREEN* sp);
int nocbreak_sp(SCREEN* sp);
int noecho_sp(SCREEN* sp); void nofilter_sp(SCREEN* sp);
int nonl_sp(SCREEN* sp);
void noqiflush_sp(SCREEN* sp);
int noraw_sp(SCREEN* sp);
int pair_content_sp(SCREEN* sp, short pair, short* fg, short* bg);
void qiflush_sp(SCREEN* sp);
int raw_sp(SCREEN* sp);
int reset_prog_mode_sp(SCREEN* sp);
void reset_color_pairs_sp(SCREEN* sp);
int reset_shell_mode_sp(SCREEN* sp); int resetty_sp(SCREEN* sp);
int resize_term_sp(SCREEN* sp, int lines, int columns);
int resizeterm_sp(SCREEN* sp, int lines, int columns);
int ripoffline_sp(SCREEN* sp, int line, int (*init)(WINDOW* win, int fmt));
int savetty_sp(SCREEN* sp);
int scr_init_sp(SCREEN* sp, const char *filename);
int scr_restore_sp(SCREEN* sp, const char *filename);
int scr_set_sp(SCREEN* sp, const char *filename);
int set_escdelay_sp(SCREEN* sp, int ms);
int set_tabsize_sp(SCREEN* sp, int cols); int slk_attr_set_sp(SCREEN* sp, const attr_t attrs, short pair, void*opts);
int slk_attrset_sp(SCREEN* sp, const chtype a);
int slk_attroff_sp(SCREEN* sp, const chtype a);
int slk_attron_sp(SCREEN* sp, const chtype a);
attr_t slk_attr_sp(SCREEN* sp);
int slk_clear_sp(SCREEN* sp);
int slk_color_sp(SCREEN* sp, short pair);
int slk_init_sp(SCREEN* sp, int fmt);
char* slk_label_sp(SCREEN* sp, int labnum);
int slk_noutrefresh_sp(SCREEN* sp); int slk_refresh_sp(SCREEN* sp);
int slk_restore_sp(SCREEN* sp);
int slk_set_sp(SCREEN* sp, int labnum, const char * label, int fmt);
int slk_touch_sp(SCREEN* sp);
int start_color_sp(SCREEN* sp);
attr_t term_attrs_sp(SCREEN* sp);
chtype termattrs_sp(SCREEN* sp);
char* termname_sp(SCREEN* sp);
int typeahead_sp(SCREEN* sp, int fd);
int unget_wch_sp(SCREEN* sp, const wchar_t wch); int ungetch_sp(SCREEN* sp, int ch);
int ungetmouse_sp(SCREEN* sp,MEVENT * event);
int use_default_colors_sp(SCREEN* sp);
void use_env_sp(SCREEN* sp, bool bf);
int use_legacy_coding_sp(SCREEN* sp, int level);
void use_tioctl_sp(SCREEN *sp, bool bf);
int vid_attr_sp(SCREEN* sp, attr_t attrs, short pair, void * opts);
int vid_puts_sp(SCREEN* sp, attr_t attrs, short pair, void * opts, NCURSES_SP_OUTC putc);
int vidattr_sp(SCREEN* sp, chtype attrs);
int vidputs_sp(SCREEN* sp, chtype attrs, NCURSES_SP_OUTC putc);
wchar_t* wunctrl_sp(SCREEN* sp, cchar_t *ch); #include <form.h> FORM* new_form_sp(SCREEN* sp, FIELD **fields); #include <menu.h> MENU* new_menu_sp(SCREEN* sp, ITEM **items); #include <panel.h> PANEL* ceiling_panel(SCREEN* sp);
PANEL* ground_panel(SCREEN* sp);
void update_panels_sp(SCREEN* sp); #include <term.h> int del_curterm_sp(SCREEN* sp, TERMINAL *oterm);
int putp_sp(SCREEN* sp, const char *str);
int restartterm_sp(SCREEN* sp, NCURSES_CONST char*term, int filedes, int *errret);
TERMINAL* set_curterm_sp(SCREEN* sp, TERMINAL*nterm);
int tgetent_sp(SCREEN* sp, char *bp, const char *name);
int tgetflag_sp(SCREEN* sp, const char *capname);
int tgetnum_sp(SCREEN* sp, const char *capname);
char* tgetstr_sp(SCREEN* sp, const char *capname, char **area);
char* tgoto_sp(SCREEN* sp, const char *capname, int col, int row);
int tigetflag_sp(SCREEN* sp, const char *capname);
int tigetnum_sp(SCREEN* sp, const char *capname);
char* tigetstr_sp(SCREEN* sp, const char *capname);
/* may instead use 9 long parameters */
char* tparm_sp(SCREEN* sp, const char *str, ...);
int tputs_sp(SCREEN* sp, const char *str, int affcnt, NCURSES_SP_OUTC putc); #include <unctrl.h> NCURSES_CONST char* unctrl_sp(SCREEN* sp, chtype c);
This implementation can be configured to provide a set of functions which improve the ability to manage multiple screens. This feature can be added to any of the configurations supported by ncurses; it adds new entrypoints without changing the meaning of any of the existing ones.
Most of the functions are new versions of existing functions. A parameter is added at the front of the parameter list. It is a SCREEN pointer.
The existing functions all use the current screen, which is a static variable. The extended functions use the specified screen, thereby reducing the number of variables which must be modified to update multiple screens.
Here are the new functions:
This extension introduces some new names:
These routines are specific to ncurses. They were not supported on Version 7, BSD or System V implementations. It is recommended that any code depending on ncurses extensions be conditioned using NCURSES_SP_FUNCS.