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