curs_sp_funcs(3x) curs_sp_funcs(3x)
curs_sp_funcs - curses スクリーン・ポインタ拡張機能
#include <curses.h>
int assume_default_colors_sp(SCREEN*, int, int);
int baudrate_sp(SCREEN*);
int beep_sp(SCREEN*);
bool can_change_color_sp(SCREEN*);
int cbreak_sp(SCREEN*);
int color_content_sp(SCREEN*, short, short*, short*, short*);
int curs_set_sp(SCREEN*, int);
int define_key_sp(SCREEN*, const char *, int);
int def_prog_mode_sp(SCREEN*);
int def_shell_mode_sp(SCREEN*);
int delay_output_sp(SCREEN*, int);
int doupdate_sp(SCREEN*);
int echo_sp(SCREEN*);
int endwin_sp(SCREEN*);
int erasechar_sp(SCREEN*);
int filter_sp(SCREEN*);
int flash_sp(SCREEN*);
int flushinp_sp(SCREEN*);
int get_escdelay_sp(SCREEN*);
int getmouse_sp(SCREEN*, MEVENT*);
WINDOW* getwin_sp(SCREEN*, FILE*);
int halfdelay_sp(SCREEN*);
bool has_colors_sp(SCREEN*);
bool has_ic_sp(SCREEN*);
bool has_il_sp(SCREEN*);
int has_key_sp(SCREEN*, int);
bool has_mouse_sp(SCREEN*);
int init_color_sp(SCREEN*, short, short, short, short);
int init_pair_sp(SCREEN*, short, short, short);
int intrflush_sp(SCREEN*, WINDOW*, bool);
bool isendwin_sp(SCREEN*);
bool is_term_resized_sp(SCREEN*, int, int);
char* keybound_sp(SCREEN*, int, int);
int key_defined_sp(SCREEN*, const char *);
NCURSES_CONST char * keyname_sp(SCREEN*, int);
int keyok_sp(SCREEN*, int, bool);
char killchar_sp(SCREEN*);
int mcprint_sp(SCREEN*, char *, int);
int mouseinterval_sp(SCREEN*, int);
mmask_t mousemask_sp(SCREEN*, mmask_t, mmask_t *);
int mvcur_sp(SCREEN*, int, int, int, int);
int napms_sp(SCREEN*, int);
WINDOW* newpad_sp(SCREEN*, int, int);
SCREEN* new_prescr(void);
SCREEN* newterm_sp(SCREEN*, NCURSES_CONST char *, FILE *, FILE *);
WINDOW* newwin_sp(SCREEN*, int, int, int, int);
int nl_sp(SCREEN*);
int nocbreak_sp(SCREEN*);
int noecho_sp(SCREEN*);
int nofilter_sp(SCREEN*);
int nonl_sp(SCREEN*);
void noqiflush_sp(SCREEN*);
int noraw_sp(SCREEN*);
int pair_content_sp(SCREEN*, short, short*, short*);
void qiflush_sp(SCREEN*);
int raw_sp(SCREEN*);
int reset_prog_mode_sp(SCREEN*);
int reset_shell_mode_sp(SCREEN*);
int resetty_sp(SCREEN*);
int resize_term_sp(SCREEN*, int, int);
int resizeterm_sp(SCREEN*, int, int);
int restartterm_sp(SCREEN*, NCURSES_CONST char*, int, int *);
int ripoffline_sp(SCREEN*, int, int (*)(WINDOW*, int));
int savetty_sp(SCREEN*);
int scr_init_sp(SCREEN*, const char *);
int scr_restore_sp(SCREEN*, const char *);
int scr_set_sp(SCREEN*, const char *);
TERMINAL* set_curterm_sp(SCREEN*, TERMINAL*);
int set_escdelay_sp(SCREEN*, int);
int set_tabsize_sp(SCREEN*, int);
int slk_attroff_sp(SCREEN*, const chtype);
int slk_attron_sp(SCREEN*, const chtype);
int slk_attr_set_sp(SCREEN*, const attr_t, short, void*);
int slk_attrset_sp(SCREEN*, const chtype);
int slk_attr_sp(SCREEN*);
int slk_clear_sp(SCREEN*);
int slk_color_sp(SCREEN*, short);
int slk_init_sp(SCREEN*, int);
int slk_label_sp(SCREEN*, int);
int slk_noutrefresh_sp(SCREEN*);
int slk_refresh_sp(SCREEN*);
int slk_restore_sp(SCREEN*);
int slk_set_sp(SCREEN*, int, const char *, int);
int slk_touch_sp(SCREEN*);
int start_color_sp(SCREEN*);
attr_t term_attrs_sp(SCREEN*);
chtype termattrs_sp(SCREEN*);
char* termname_sp(SCREEN*);
int typeahead_sp(SCREEN*, int);
NCURSES_CONST char* unctrl_sp(SCREEN*, chtype);
int ungetch_sp(SCREEN*, int);
int ungetmouse_sp(SCREEN*,MEVENT *);
int unget_wch_sp(SCREEN*, const wchar_t);
int use_default_colors_sp(SCREEN*);
void use_env_sp(SCREEN*, bool);
int use_legacy_coding_sp(SCREEN*, int);
int vid_attr_sp(SCREEN*, attr_t, short, void *);
int vidattr_sp(SCREEN*, chtype);
int vid_puts_sp(SCREEN*, attr_t, short, void *, NCURSES_SP_OUTC);
int vidputs_sp(SCREEN*, chtype, NCURSES_SP_OUTC);
wchar_t* wunctrl_sp(SCREEN*, cchar_t *);
#include <form.h>
int new_form_sp(SCREEN*, FIELD **);
#include <menu.h>
int new_menu_sp(SCREEN*, ITEM **);
#include <panel.h>
int ceiling_panel(SCREEN*);
PANEL* ground_panel(SCREEN*);
int update_panels_sp(SCREEN*);
#include <term.h>
int del_curterm_sp(SCREEN*, TERMINAL *);
int putp_sp(SCREEN*, const char *);
int tgetflag_sp(SCREEN*, char *, const char *);
int tgetent_sp(SCREEN*, char *, const char *);
int tgetnum_sp(SCREEN*, NCURSES_CONST char *);
char* tgetstr_sp(SCREEN*, NCURSES_CONST char *, char **);
int tigetflag_sp(SCREEN*, NCURSES_CONST char *);
int tigetnum_sp(SCREEN*, NCURSES_CONST char *);
char* tigetstr_sp(SCREEN*, NCURSES_CONST char *);
int tputs_sp(SCREEN*, const char *, int, NCURSES_SP_OUTC);
ncurses は複数の画面(マルチ・スクリーン)を管理する能力を
向上させる関数群を与えるように構成できます。
この機能は ncurses がサポートするすべての構成に追加でき、
既存のどのエントリーポイントの意味も変更することなく、
新しいエントリーポイントを追加します。
訳注: 導入には構成スクリプト configure の実行時に
--enable-sp-funcs オプションが必要です。
詳細はパッケージ中のドキュメント INSTALL を参照してください。
大半の関数は既存の関数の新バージョンです。
パラメータ・リストの先頭にパラメータが 1つ追加されています。
それは SCREEN ポインタです。
既存の関数はすべて、静的変数(static variable)である
現在画面(current screen)を使用します。
拡張関数は指定された画面を使用しますので、複数の画面を
更新する際に変更する必要のある変数の数が減少します。
新しい関数は次のとおりです。
ceiling_panel
指定の画面にある一番上のパネルへのポインタを返します。
ground_panel
指定の画面にある一番下のパネルへのポインタを返します。
new_prescr
新しい画面を作るとき、ライブラリは設定ずみの静的変数を
使います。たとえば curs_util(3x) , curs_util(3x)
などです。(訳注: 原文通り)
スクリーン・ポインタ拡張では、拡張されていないライブラリ
より先に現在画面を作らなければならない場合があります。
new_prescr 関数はこのような場合を扱うため、
内部的に使われます。
これはまた、アプリケーションがライブラリの初期化を
カスタマイズするためのエントリーポイントを与えます。
この拡張でいくつかの新しい識別子が導入されました。
NCURSES_SP_FUNCS
これはライブラリのパッチ・レベル番号に設定されます。
拡張が適用されているかどうか調べるときに便利なように、
未拡張のライブラリではゼロ(0)になっています。
NCURSES_SP_NAME
この新しい関数群は、実際の実装を隠すマクロ
NCURSES_SP_NAME を使って名付けられています。
現在、これは未拡張の関数名の末尾に "_sp" を付加します。
このマニュアル・ページには、拡張した関数の
完全な名前の一覧を掲載しています。
しかしこれらの関数の本来の使い方は、このマクロを用いて
ライブラリの構成に合わせて名前の変換規則を変える可能性を
残すようにすることです。
NCURSES_SP_OUTC
未拡張のライブラリが NCURSES_OUTC を使う場所で、
スクリーン・ポインタ関数が使うための
新しい関数ポインタ型です。
NCURSES_OUTC
関数が文字を出力ストリームに渡すところ、
例えば curs_terminfo(3x) の場合に使う
関数ポインタ型です。
これらのルーチンは ncurses に固有です。
Version 7, BSD, System V の実装ではサポートされていません。
ncurses の拡張機能に依存するコードは、
必ず NCURSES_SP_FUNCS で条件付けておくことを推奨します。
curses(3x), curs_opaque(3x), curs_threads(3x).
curs_sp_funcs(3x)