XCIX. Ncurses 端末画面制御関数

導入

ncurses (new curses) は、System V Rel 4.0(及びそれ以前)の curses の フリーなソフトウエアエミュレーションです。ncurses は terminfo 型式を 使用し、パッド、カラー、複数のハイライト、フォーム文字、 ファンクションキーマッピングをサポートします。 このライブラリは対話的なものであるため、 Web アプリケーションを作成する際にはほとんど使用されませんが、 コマンドラインから PHP を使用 するスクリプトを書く際には有用です。

警告

この拡張モジュールは、 実験的 なものです。この拡張モジュールの動作・ 関数名・その他ドキュメントに書かれている事項は、予告なく、将来的な PHP のリリースにおいて変更される可能性があります。 このモジュールは自己責任で使用してください。

Ncurses は以下のプラットフォームで利用可能です。

  • AIX

  • BeOS

  • Cygwin

  • Digital Unix (aka OSF1)

  • FreeBSD

  • GNU/Linux

  • HPUX

  • IRIX

  • OS/2

  • SCO OpenServer

  • Solaris

  • SunOS

注意: この拡張モジュールは PECL レポジトリに移動 されており、以下のバージョン以降 PHP にバンドルされなくなっています。 PHP 6.0.0

要件

ncurses ライブラリおよびヘッダファイルが必要です。最新のバージョンを ftp://ftp.gnu.org/pub/gnu/ncurses/ あるいは他の GNU ミラーサイトからダウンロードしてください。

インストール手順

これらの関数を動作させるには、 --with-ncurses[=DIR] を指定して CGI または CLI バージョンの PHP をコンパイルする必要があります。

実行時設定

php.ini の設定により動作が変化します。

表 1. Ncurses 設定オプション

名前 デフォルト 変更の可否 変更履歴
ncurses.value "42" PHP_INI_ALL  
ncurses.string "foobar" PHP_INI_ALL  
PHP_INI_* 定数の詳細および定義については 付録G を参照してください。

リソース型

リソース型は定義されていません。

定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。

エラーコード

エラー時に、ncurese 関数は NCURSES_ERR を返します。

カラー

表 2. ncurses カラー定数

定数 意味
NCURSES_COLOR_BLACK 色なし(黒)
NCURSES_COLOR_WHITE
NCURSES_COLOR_RED 赤 - 端末がカラーモードの場合のみサポート
NCURSES_COLOR_GREEN 緑 - 端末がカラーモードの場合のみサポート
NCURSES_COLOR_YELLOW 黄 - 端末がカラーモードの場合のみサポート
NCURSES_COLOR_BLUE 青 - 端末がカラーモードの場合のみサポート
NCURSES_COLOR_CYAN シアン - 端末がカラーモードの場合のみサポート
NCURSES_COLOR_MAGENTA マゼンタ - 端末がカラーモードの場合のみサポート

キー

表 3. ncurses キー定数

定数 意味
NCURSES_KEY_F0 - NCURSES_KEY_F64 ファンクションキー F1 - F64
NCURSES_KEY_DOWN 下矢印
NCURSES_KEY_UP 上矢印
NCURSES_KEY_LEFT 左矢印
NCURSES_KEY_RIGHT 右矢印
NCURSES_KEY_HOME ホームキー(upward+左矢印)
NCURSES_KEY_BACKSPACE バックスペース
NCURSES_KEY_DL 行削除
NCURSES_KEY_IL 行挿入
NCURSES_KEY_DC 文字削除
NCURSES_KEY_IC 文字挿入あるいは挿入モード移行
NCURSES_KEY_EIC 文字挿入モード終了
NCURSES_KEY_CLEAR 画面消去
NCURSES_KEY_EOS 画面最下部までを消去
NCURSES_KEY_EOL 行末までを消去
NCURSES_KEY_SF 1 行スクロール
NCURSES_KEY_SR 1 行逆スクロール
NCURSES_KEY_NPAGE 次ページ
NCURSES_KEY_PPAGE 前ページ
NCURSES_KEY_STAB タブ
NCURSES_KEY_CTAB タブ消去
NCURSES_KEY_CATAB 全タブ消去
NCURSES_KEY_SRESET ソフト(部分)リセット
NCURSES_KEY_RESET リセットあるいはハードリセット
NCURSES_KEY_PRINT 印刷
NCURSES_KEY_LL 左下
NCURSES_KEY_A1 キーパッドの左上
NCURSES_KEY_A3 キーパッドの右上
NCURSES_KEY_B2 キーパッドの中央
NCURSES_KEY_C1 キーパッドの左下
NCURSES_KEY_C3 キーパッドの右下
NCURSES_KEY_BTAB バックタブ
NCURSES_KEY_BEG 先頭
NCURSES_KEY_CANCEL キャンセル
NCURSES_KEY_CLOSE 閉じる
NCURSES_KEY_COMMAND cmd (コマンド)
NCURSES_KEY_COPY コピー
NCURSES_KEY_CREATE 作成
NCURSES_KEY_END 行末
NCURSES_KEY_EXIT 終了
NCURSES_KEY_FIND 検索
NCURSES_KEY_HELP ヘルプ
NCURSES_KEY_MARK マーク
NCURSES_KEY_MESSAGE メッセージ
NCURSES_KEY_MOVE 移動
NCURSES_KEY_NEXT
NCURSES_KEY_OPEN オープン
NCURSES_KEY_OPTIONS オプション
NCURSES_KEY_PREVIOUS
NCURSES_KEY_REDO やり直し
NCURSES_KEY_REFERENCE ref (参照)
NCURSES_KEY_REFRESH リフレッシュ
NCURSES_KEY_REPLACE 置換
NCURSES_KEY_RESTART 再起動
NCURSES_KEY_RESUME 再開
NCURSES_KEY_SAVE 保存
NCURSES_KEY_SBEG shiftet beg (beginning)
NCURSES_KEY_SCANCEL shift + キャンセル
NCURSES_KEY_SCOMMAND shift + command
NCURSES_KEY_SCOPY shift + コピー
NCURSES_KEY_SCREATE shift + create
NCURSES_KEY_SDC shift + 文字削除
NCURSES_KEY_SDL shift + 行削除
NCURSES_KEY_SELECT 選択
NCURSES_KEY_SEND shift + end
NCURSES_KEY_SEOL shift + 行末
NCURSES_KEY_SEXIT shift + exit
NCURSES_KEY_SFIND shift + 検索
NCURSES_KEY_SHELP shift + ヘルプ
NCURSES_KEY_SHOME shift + ホーム
NCURSES_KEY_SIC shift + input
NCURSES_KEY_SLEFT shift + 左矢印
NCURSES_KEY_SMESSAGE shift + メッセージ
NCURSES_KEY_SMOVE shift + 移動
NCURSES_KEY_SNEXT shift + 次
NCURSES_KEY_SOPTIONS shift + オプション
NCURSES_KEY_SPREVIOUS shift + 前
NCURSES_KEY_SPRINT shift + 印刷
NCURSES_KEY_SREDO shift + やり直し
NCURSES_KEY_SREPLACE shift + 置換
NCURSES_KEY_SRIGHT shift + 右矢印
NCURSES_KEY_SRSUME shift + 再開
NCURSES_KEY_SSAVE shift + 保存
NCURSES_KEY_SSUSPEND shift + サスペンド
NCURSES_KEY_UNDO 元に戻す
NCURSES_KEY_MOUSE マウスイベントが発生
NCURSES_KEY_MAX 最大のキーの値

マウス

表 4. マウス定数

定数 意味
NCURSES_BUTTON1_RELEASED - NCURSES_BUTTON4_RELEASED ボタン (1-4) が離された
NCURSES_BUTTON1_PRESSED - NCURSES_BUTTON4_PRESSED ボタン (1-4) が押された
NCURSES_BUTTON1_CLICKED - NCURSES_BUTTON4_CLICKED ボタン (1-4) がクリックされた
NCURSES_BUTTON1_DOUBLE_CLICKED - NCURSES_BUTTON4_DOUBLE_CLICKED ボタン (1-4) がダブルクリックされた
NCURSES_BUTTON1_TRIPLE_CLICKED - NCURSES_BUTTON4_TRIPLE_CLICKED ボタン (1-4) がトリプルクリックされた
NCURSES_BUTTON_CTRL クリック中に ctrl が押された
NCURSES_BUTTON_SHIFT クリック中に shift が押された
NCURSES_BUTTON_ALT クリック中に alt が押された
NCURSES_ALL_MOUSE_EVENTS すべてのマウスイベントを報告する
NCURSES_REPORT_MOUSE_POSITION マウスの位置を報告する
目次
ncurses_addch  -- 現在の位置に文字を追加し、カーソルを進める
ncurses_addchnstr  -- 現在の位置に指定した長さの属性付き文字列を追加する
ncurses_addchstr  -- 現在の位置に属性付き文字列を追加する
ncurses_addnstr  -- 現在の位置に、指定した長さの文字列を追加する
ncurses_addstr  -- 現在の位置にテキストを出力する
ncurses_assume_default_colors  -- カラー 0 のデフォルト色を定義する
ncurses_attroff  -- 指定した属性を無効とする
ncurses_attron  -- 指定した属性を有効にする
ncurses_attrset  -- 指定した属性を設定する
ncurses_baudrate  -- 端末のボーレートを返す
ncurses_beep  -- 端末のビープを鳴らす
ncurses_bkgd  -- 端末画面の背景属性を設定する
ncurses_bkgdset  -- 画面背景を制御する
ncurses_border  -- 属性付きの文字で画面周囲に境界を描画する
ncurses_bottom_panel  -- パネルをスタックの最下部に移動する
ncurses_can_change_color  -- 端末の色を変更可能かどうか確認する
ncurses_cbreak  -- 入力のバッファリングを変更する
ncurses_clear  -- スクリーンをクリアする
ncurses_clrtobot  -- 現在位置から最下部までスクリーンをクリアする
ncurses_clrtoeol  -- 現在位置から行末までスクリーンをクリアする
ncurses_color_content  -- 色の RGB 値を取得する
ncurses_color_set  -- 前景/背景色を設定する
ncurses_curs_set  -- カーソル状態を設定する
ncurses_def_prog_mode  -- 端末(プログラム)モードを保存する
ncurses_def_shell_mode  -- 端末(シェル)モードを保存する
ncurses_define_key  -- キーコードを定義する
ncurses_del_panel  --  パネルをスタックから取り除き、削除する (しかし、関連付けられているウィンドウは削除しない)
ncurses_delay_output  -- パディング文字を用いて端末出力を遅延させる
ncurses_delch  -- 現在位置の文字を削除し、残った部分を左に移動する
ncurses_deleteln  -- 現在位置の行を削除し、残りの部分を上に上げる
ncurses_delwin  -- ncurses ウインドウを削除する
ncurses_doupdate  -- 準備中の全ての出力を書き込み、端末をリフレッシュする
ncurses_echo  -- キーボード入力のエコーを有効とする
ncurses_echochar  -- リフレッシュを行いつつ 1 文字出力する
ncurses_end  -- ncurses を終了し、画面を消去する
ncurses_erase  -- 端末画面を消去する
ncurses_erasechar  -- 現在の erase 文字を返す
ncurses_filter  -- iniscr() および newterm() の LINES を 1 に設定する
ncurses_flash  -- 端末画面をフラッシュする(ビジュアルベル)
ncurses_flushinp  -- キーボード入力バッファをフラッシュする
ncurses_getch  -- キーボードから 1 文字読み込む
ncurses_getmaxyx  -- ウィンドウの大きさを返す
ncurses_getmouse  -- マウスイベントを読みこむ
ncurses_getyx  -- ウィンドウ内の現在のカーソル位置を返す
ncurses_halfdelay  -- 端末をハーフディレイモードにする
ncurses_has_colors  -- カラー端末かどうか確認する
ncurses_has_ic  -- 挿入/削除機能の有無を確認する
ncurses_has_il  -- 行挿入/削除機能の有無を確認する
ncurses_has_key  -- 端末キーボードにおいてファンクションキーの有無を調べる
ncurses_hide_panel  -- パネルをスタックから取り除き、見えなくする
ncurses_hline  -- 現在位置に属性付きの文字を用いて最大 n 文字長の線を水平に描画する
ncurses_inch  -- 現在位置の文字と属性を取得する
ncurses_init_color  -- 新規に RGB 値を設定する
ncurses_init_pair  -- 色の組を確保する
ncurses_init  -- ncurses を初期化する
ncurses_insch  -- 文字を挿入し、現在位置にある文字を含む残りの行を移動する
ncurses_insdelln  --  現在の行の後に複数の行を挿入し、スクロールダウンする (負の数を指定すると削除し、スクロールアップする)
ncurses_insertln  -- 行を挿入し、残りの部分をスクロールダウンする
ncurses_insstr  -- 現在位置に文字列を挿入し、残りの行を右に移動する
ncurses_instr  -- 端末画面から文字列を読み込む
ncurses_isendwin  -- Ncurses が endwin モードの場合、通常の画面出力が実行可能
ncurses_keyok  -- キーコードを有効または無効にする
ncurses_keypad  -- キーパッドを on あるいは off にする
ncurses_killchar  -- 現在の行削除文字を返す
ncurses_longname  -- 端末の説明を返す
ncurses_meta  -- 8 ビットのメタキー情報を有効/無効にする
ncurses_mouse_trafo  -- 座標を変換する
ncurses_mouseinterval  -- マウスボタンクリックのタイムアウトを設定する
ncurses_mousemask  -- マウスオプションを設定する
ncurses_move_panel  -- 左上が [startx, starty] となるようにパネルを移動する
ncurses_move  -- 出力位置を移動する
ncurses_mvaddch  -- 現在位置を移動し、文字を追加する
ncurses_mvaddchnstr  -- 位置を移動し、指定長の属性付きの文字列を追加する
ncurses_mvaddchstr  -- 位置を移動し、属性付きの文字列を追加する
ncurses_mvaddnstr  -- 位置を移動し、指定長の文字列を追加する
ncurses_mvaddstr  -- 位置を移動し、文字列を追加する
ncurses_mvcur  -- 直ちにカーソルを移動する
ncurses_mvdelch  -- 位置を移動し、文字を削除、行の残りを左シフトする
ncurses_mvgetch  -- 位置を移動し、新しい位置で文字を得る
ncurses_mvhline  -- 位置を新しく設定し、属性付きの文字を用いて最大n文字の水平線を描画
ncurses_mvinch  -- 位置を移動し、新しい位置の属性付きの文字を取得する
ncurses_mvvline  -- 位置を新しく設定し、属性付きの文字を用いて最大 n 文字の垂直線を描画する
ncurses_mvwaddstr  -- ウインドウの新規位置に文字列を追加する
ncurses_napms  -- スリープ
ncurses_new_panel  -- 新しいパネルを作成し、それをウィンドウに関連づける
ncurses_newpad  -- 新しいパッド (window) を作成する
ncurses_newwin  -- 新規ウインドウを作成する
ncurses_nl  -- 改行と復改/ラインフィードを変換する
ncurses_nocbreak  -- 端末を cooked モードに変更する
ncurses_noecho  -- キーボード入力エコーを無効にする
ncurses_nonl  -- 改行と復改/ラインフィードを変換しない
ncurses_noqiflush  -- シグナル文字のフラッシュを無効とする
ncurses_noraw  -- 端末を raw モード以外に変更する
ncurses_pair_content  -- 色の RGB 値を取得する
ncurses_panel_above  -- パネルの上のパネルを返す
ncurses_panel_below  -- パネルの下のパネルを返す
ncurses_panel_window  -- パネルに関連付けられたウィンドウを返す
ncurses_pnoutrefresh  -- パッドから仮想画面にリージョンをコピーする
ncurses_prefresh  -- パッドから仮想画面にリージョンをコピーする
ncurses_putp  -- パディング情報を文字列に適用し、それを出力する
ncurses_qiflush  -- シグナル文字のフラッシュを有効とする
ncurses_raw  -- 端末を raw モードに変更する
ncurses_refresh  -- 画面をリフレッシュする
ncurses_replace_panel  -- パネルに関連付けられたウィンドウを置き換える
ncurses_reset_prog_mode  -- def_prog_mode で保存したプログラムモードをリセットする
ncurses_reset_shell_mode  -- def_shell_mode で保存したシェルモードをリセットする
ncurses_resetty  -- 保存した端末モードに復帰する
ncurses_savetty  -- 端末の状態を保存する
ncurses_scr_dump  -- 画面の内容をファイルにダンプする
ncurses_scr_init  -- ファイルダンプから画面を初期化する
ncurses_scr_restore  -- ファイルダンプから画面を復帰する
ncurses_scr_set  -- ファイルダンプから画面を継承する
ncurses_scrl  -- 現在位置を変更せずに画面の内容をスクロールアップまたはダウンする
ncurses_show_panel  -- 不可視のパネルをスタックの最上部に置き、見えるようにする
ncurses_slk_attr  -- 現在のソフトラベルキー属性を返す
ncurses_slk_attroff  -- ソフトファンクションキーラベルの指定した属性を無効にする
ncurses_slk_attron  -- ソフトファンクションキーラベルの指定した属性を有効にする
ncurses_slk_attrset  -- ソフトファンクションキーラベルに、指定した属性を設定する
ncurses_slk_clear  -- 画面からソフトラベルをクリアする
ncurses_slk_color  -- ソフトラベルキーの色を設定する
ncurses_slk_init  -- ソフトラベルキー関数を初期化する
ncurses_slk_noutrefresh  -- 仮想画面にソフトラベルキーをコピーする
ncurses_slk_refresh  -- ソフトラベルキーを画面にコピーする
ncurses_slk_restore  -- ソフトラベルキーを復帰する
ncurses_slk_set  -- ファンクションキーラベルを設定する
ncurses_slk_touch  -- ncurses_slk_noutrefresh を実行する際に強制的に出力する
ncurses_standend  -- 'standout' 属性の使用を停止する
ncurses_standout  -- 'standout' 属性の使用を開始する
ncurses_start_color  -- 色の使用を開始する
ncurses_termattrs  -- 端末でサポートされる全ての属性フラグの論理和を返す
ncurses_termname  -- 端末の(簡略)名を返す
ncurses_timeout  -- 特別なキーシーケンスのタイムアウトを設定する
ncurses_top_panel  -- 可視パネルをスタックの最上部に移動する
ncurses_typeahead  -- typeahead 確認用に別のファイル記述子を指定する
ncurses_ungetch  -- 入力ストリームに 1 文字戻す
ncurses_ungetmouse  -- マウスイベントをキューにプッシュする
ncurses_update_panels  -- 仮想画面を再描画し、スタック内のパネルとの関係を反映させる
ncurses_use_default_colors  -- 端末のデフォルト色をカラー ID -1 に割り付ける
ncurses_use_env  -- 端末の大きさに関する環境情報の使用を制御する
ncurses_use_extended_names  -- terminfo 記述において拡張名の使用を制御する
ncurses_vidattr  -- video attribute モードで、端末上に文字列を表示する
ncurses_vline  -- 現在位置に最大 n 文字の属性付きの文字を用いて垂直線を描画する
ncurses_waddch  -- ウィンドウ内の現在位置に文字を追加し、カーソルを進める
ncurses_waddstr  -- ウィンドウ内の現在位置にテキストを出力する
ncurses_wattroff  -- ウィンドウの属性をオフにする
ncurses_wattron  -- ウィンドウの属性をオンにする
ncurses_wattrset  -- ウィンドウの属性を設定する
ncurses_wborder  -- 属性文字を使用してウィンドウの周囲に線を描画する
ncurses_wclear  -- ウィンドウをクリアする
ncurses_wcolor_set  -- ウィンドウの色の組み合わせを設定する
ncurses_werase  -- ウィンドウを消去する
ncurses_wgetch  -- キーボート (ウィンドウ) から文字を読み込む
ncurses_whline  --  指定した属性文字を用いて、最大 n 文字分の長さの水平線を ウィンドウに描画する
ncurses_wmouse_trafo  -- ウィンドウ/標準画面の座標系を変換する
ncurses_wmove  -- ウィンドウの出力位置を移動する
ncurses_wnoutrefresh  -- ウィンドウを仮想画面にコピーする
ncurses_wrefresh  -- 端末画面のウインドウをリフレッシュする
ncurses_wstandend  -- ウィンドウの standout モードを終了する
ncurses_wstandout  -- ウィンドウの standout モードに入る
ncurses_wvline  --  指定した属性文字を用いて、最大 n 文字分の長さの垂直線を ウィンドウに描画する