Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > cursesライブラリ > Cursesモジュール
クラスの継承リスト: Curses
Curses モジュールや Curses::Window クラスは、curses ライブラリを利用して、 端末に依存しない形式でテキストユーザインタフェースを作成できます。 curses ライブラリとは、 C のプログラムから端末のディスプレイ画面を制御するためのライブラリのことで、 次のような実装があります。
本モジュールを使ってテキストユーザインタフェースを作成する流れは次のようになります。
例: 画面中央に「Hello World!」と表示し、何か入力があると終了する。
require "curses" Curses.init_screen begin s = "Hello World!" Curses.setpos(Curses.lines / 2, Curses.cols / 2 - (s.length / 2)) Curses.addstr(s) Curses.refresh Curses.getch ensure Curses.close_screen end
なお、curses や ncurses をインストールしていない環境では、 本モジュールは利用できません。 利用できない場合、require の時点で以下のような例外が発生します。
foo:1:in `require': no such file to load -- bar (LoadError) from foo:1:in `<main>'
いくつかの操作において、サポートしていない環境では、 例外 NotImplementedError が発生します。
セーフレベル ($SAFE) が 4 の場合、ほとんどの操作で例外 SecurityError を発生します。
定義 | 説明 | |
---|---|---|
ESCDELAY -> Integer
|
ESC の入力を破棄する時間(ミリ秒単位)を取得します。 |
|
ESCDELAY=(val)
|
ESC の入力を破棄する時間(ミリ秒単位)を val に設定します。 設定した値を返します。 |
|
TABSIZE -> Integer
|
タブ幅を取得します。 |
|
TABSIZE=(val)
|
タブ幅を val に設定します。設定した値を返します。 |
|
addch(ch)
|
stdscr のカーソルの位置に ch (1 バイト) を上書きします。 |
|
addstr(str)
|
stdscr のカーソルの位置に文字列 str を挿入します。 |
|
attroff(attrs)
|
||
attron(attron)
|
||
attrset(attrs)
|
||
beep
|
音を出します。 この機能がないところでは単に無視されます。 |
|
bkgd(ch)
|
||
bkgdset(ch)
|
||
can_change_color?
|
||
cbreak -> nil
|
キーボード入力のバッファリングをやめ、ユーザの入力を即座に処理できるようにします。 |
|
clear -> nil
|
画面全体を表すウィンドウ stdscr の文字を消去し、画面をクリアします。 画面のクリアを反映させるために、 本メソッドのあとに Curses.#refresh を呼び出す必要はありません。 |
|
close_screen -> nil
|
curses の終了処理を行います。 端末の状態を復帰させ、カーソルを左端に移動させます。 |
|
closed? -> bool
|
curses が終了しているかどうかを返します。 |
|
clrtoeol
|
||
color_content(color)
|
||
color_pair(attr)
|
||
cols
|
画面に表示可能な桁数(バイト)を返します。 ただし実際にはもう 1 バイト少なくしか表示できないライブラリが あるようです。 |
|
curs_set(visibility)
|
||
def_prog_mode
|
||
delch
|
||
deleteln
|
stdscr のカーソルがある行を削除し、後の行を上に詰めます。 |
|
doupdate -> nil
|
画面全体を表すウィンドウ stdscr の表示を更新します。 Curses.#refresh 以上に能率良く更新処理を行います。 |
|
echo -> nil
|
ユーザの入力内容を画面に表示するようにします。 つまり、入力のエコーを有効にします。 |
|
flash
|
画面を一瞬点滅させます。 この機能がないところでは単に無視されます。 |
|
getch
|
標準入力から 1 バイト読み込みます。 戻り値は ASCII コードを表す整数です。 |
|
getmouse
|
||
getstr
|
標準入力から一行読み込みます。 戻り値は文字列です。 |
|
has_colors?
|
||
inch
|
stdscr のカーソル位置から 1 バイト読みとって返します。 |
|
init_color(color, r, g, b)
|
||
init_pair(pair, f, b)
|
||
init_screen -> Curses::Window
|
端末の種類や curses に関するデータを初期化し、画面をクリアします。 stdscr と呼ばれる画面全体を表すウィンドウを返します。 |
|
insch(ch)
|
stdscr のカーソルの位置に ch (1 バイト) を挿入します。 |
|
insertln
|
||
keyname(c)
|
||
lines
|
画面に表示可能な行数を返します。 |
|
mouseinterval(interval)
|
||
mousemask(mask)
|
||
nl -> nil
|
cooked モードのとき、return キーの入力に対して LF (Ctrl-j) を返すようにします。 |
|
nocbreak -> nil
|
通常の端末のように、キーボード入力のバッファリングを有効にします。 ユーザの入力はエンターキーなどを押すまで処理できません。 この状態のことを「cooked」モードといいます。 |
|
noecho
|
ユーザの入力内容を画面に表示しないようにします。 つまり、入力のエコーを止めます。 |
|
nonl
|
cooked モードのとき、return キーの入力に対して CR (Ctrl-m) を返すようにします。 |
|
noraw -> nil
|
raw モードを抜け、通常の状態にします。 つまり、キーボード入力のバッファリングを行い、 割り込み(Ctrl-C)、サスペンド(Ctrl-Z) などの特殊キーの処理を行うようにします。 |
|
pair_content(pair)
|
||
pair_number(attrs)
|
||
raw -> nil
|
Curses.#cbreak と同様に、キーボード入力のバッファリングをやめ、 ユーザの入力を即座に処理できるようにします。なおかつ、 割り込み(Ctrl-C)、サスペンド(Ctrl-Z) などの特殊キーの処理をやめます。 この状態のことを「raw」モードといいます。 |
|
refresh -> nil
|
画面全体を表すウィンドウ stdscr の表示を更新します。 |
|
reset_prog_mode
|
||
resize(lin, col)
|
||
scrl(n)
|
||
setpos(y, x)
|
stdscr のカーソルを座標 (x,y) に移動します。 座標はともに 0 が始点です。 |
|
setscrreg(top, bottom)
|
||
standend
|
強調する文字の書き込みを終えます。 |
|
standout
|
以降書き込む文字を強調します。 「強調」は反転であることが多いようですが、 そう決められているわけではありません。 |
|
start_color
|
||
timeout=
|
||
ungetch(ch)
|
文字 ch (ASCII コードを示す整数) をストリームに戻します。 |
|
ungetmouse(mevent)
|
||
use_default_colors -> nil
|
前景色と背景色を端末のデフォルト値 (-1) に設定します。 |