curses によるカーソルの制御

このセクションでは、curses ライブラリーに存在する各種のカーソルについて説明します。

curses ライブラリーには、 以下のタイプのカーソルがあります。
論理カーソル
各ウィンドウ内のカーソル位置。 ウィンドウのデータ構造体は、その論理カーソルの位置をトラッキングします。 各ウィンドウに論理カーソルがあります。
物理カーソル
ディスプレイのカーソル。 ワークステーションは、このカーソルを使用して、 ディスプレイへの書き出しを行います。 物理カーソルはディスプレイごとに 1 つだけあります。
ウィンドウ内の論理カーソルでのみ文字の追加または消去を行うことができます。 カーソルを制御するために、 以下のサブルーチンが用意されています。
getbegyx
ウィンドウの開始座標を整変数 yx に位置づけます。
getmaxyx (getmaxyx)
ウィンドウのサイズを整変数 yx に位置づけます。
「getsyx」
仮想スクリーンのカーソルの現在の座標を戻します。
getyx (getyx)
指定されたウィンドウに関連した論理カーソルの位置を戻します。
leaveok (leaveok)
wrefresh サブルーチンに対するコールの後の物理カーソル位置を制御します。
移動
stdscr に関連する論理カーソルを移動します。
mvcur (mvcur)
物理カーソルを移動します。
SETSYX
仮想スクリーンのカーソルを指定された座標に設定します。
移動
ユーザー定義ウィンドウに関連する論理カーソルを移動します。

refresh または wrefresh サブルーチンに対するコールの後に、curses はウィンドウ内の最後に更新された文字位置に物理カーソルを位置づけます。 リフレッシュ後に物理カーソルを移動せずにそのままにしておくには、Windowパラメータを目的のウィンドウに設定し、Flagパラメータを TRUEに設定して leaveokサブルーチンを呼び出します。