名前 | 形式 | 機能説明 | 戻り値 | 属性 | 関連項目 | 注意事項
#include<curses.h>int addwch(chtype wch);
addwch()、waddwch()、mvaddwch()、mvwaddwch() の各ルーチンは、wchar_t を保ちながら wch 文字をウィンドウ中の現カーソル位置に書き出し、ウィンドウカーソルの位置を進めます。この機能は C 複数バイトライブラリ内にある putwchar(3C) の機能に似ています。右側のマージンでは自動的に復帰改行 (newline) が行われます。scrollok が有効であれば、スクロール領域が上に 1 行スクロールされます。
wch がタブ、復帰改行、バックスペースのいずれかの場合、それに従ってウィンドウ内でカーソルが移動します。なお復帰改行の場合には、カーソル移動に先だって clrtoeol(3CURSES) が行われます。タブ位置は 8 カラムごとに設定されていると見なされます。wch が他の制御文字の場合、‸X 形式で描かれます。制御文字を追加した後で winwch(3CURSES) を呼び出しても制御文字自体は返されません。その代わりに制御文字の表示内容が返されます。
ビデオ属性は、論理和をパラメータ中にとることにより wchar_t 文字と組み合わせることができます。その結果、属性の設定も行われます。これが意味することは、inwch() と addwch() を使ってテキスト (属性も含む) をある場所から他の場所へコピーすることが可能であるということです。standout(3CURSES) の、定義済みビデオ属性定数の項を参照してください。
機能的に見ると、echowchar() ルーチンは addwch() と refresh(3CURSES) を連続して呼び出すことと同等で、wechowchar() ルーチンは waddwch() と wrefresh(3CURSES) を連続して呼び出すことと同等です。両ルーチンは 1 文字だけしか出力されないことが判っていることを考慮したもので、さらに非制御文字の場合には、2 つのルーチンを連続して呼び出す場合と比較してパフォーマンスの大幅な向上が期待できます。
addwch() ファミリのルーチンとともに以下の変数を使用して、線を描画する文字を画面に書き出すことができます。端末に変数が定義されているとき、A_ALTCHARSET ビットがオンになります (curs_attr(3CURSES) の項を参照)。変数が定義されていなければ、以下に述べるデフォルト文字が変数に与えられます。なお各変数の名前は VT100 命名規約に準拠しています。
名前 | デフォルト | グリフ記述 |
---|---|---|
ACS_ULCORNER | + | 左上角 |
ACS_LLCORNER | + | 左下角 |
ACS_URCORNER | + | 右上角 |
ACS_LRCORNER | + | 右下角 |
ACS_RTEE | + | 右端 |
ACS_LTEE | + | 左端 |
ACS_BTEE | + | 下端 |
ACS_TTEE | + | 上端 |
ACS_HLINE | – | 横線 |
ACS_VLINE | | | 縦線 |
ACS_PLUS | + | 正符号 |
ACS_S1 | - | スキャンライン 1 |
ACS_S9 | _ | スキャンライン 9 |
ACS_DIAMOND | + | ダイヤモンド |
ACS_CKBOARD | : | 市松模様 (点描) |
ACS_DEGREE | ' | 度数記号 |
ACS_PLMINUS | # | プラス/マイナス |
ACS_BULLET | o | 丸 |
ACS_LARROW | < | 左向きの矢印 |
ACS_RARROW | > | 右向きの矢印 |
ACS_DARROW | v | 下向きの矢印 |
ACS_UARROW | ^ | 上向きの矢印 |
ACS_BOARD | # | 正方形のボード |
ACS_LANTERN | # | ランタン記号 |
ACS_BLOCK | # | 正方形のブロック |
上記ルーチンはすべて、エラーが発生すれば整数 ERR を返し、正常に終了すれば ERR 以外の整数値を返します (それ以外の動作が本項内で記述されている場合を除く)。
次の属性については attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
---|---|
MT レベル | Unsafe |
putwchar(3C), clrtoeol(3CURSES), curses(3CURSES), curs_attr(3CURSES), curs_inwch(3CURSES), curs_outopts(3CURSES), refresh(3CURSES), standout(3CURSES), winwch(3CURSES), wrefresh(3CURSES), attributes(5)
ヘッダーファイル <curses.h> は自動的に <stdio.h>、<unctrl.h>、および <widec.h> ヘッダーファイルを含みます。
addwch()、mvaddwch()、mvwaddwch()、echowchar() の各ルーチンはマクロにすることも可能です。
これらのルーチンは、chtype 中でカラー属性を扱うことはできません。