15.14. "curses.panel" --- curses のためのパネルスタック拡張
***********************************************************

パネルは深さ (depth) の機能が追加されたウィンドウです。これにより、ウ
ィンドウをお互いに重ね合わせることができ、各ウィンドウの可視部分だけが
表示されます。パネルはスタック中に追加したり、スタック内で上下移動させ
たり、スタックから除去することができます。


15.14.1. 関数
=============

"curses.panel" では以下の関数を定義しています:

curses.panel.bottom_panel()

   パネルスタックの最下層のパネルを返します。

curses.panel.new_panel(win)

   与えられたウィンドウ *win* に関連付けられたパネルオブジェクトを返し
   ます。返されたパネルオブジェクトを参照しておく必要があることに注意
   してください。もし参照しなければ、パネルオブジェクトはガベージコレ
   クションされてパネルスタックから削除されます。

curses.panel.top_panel()

   パネルスタックの最上層のパネルを返します。

curses.panel.update_panels()

   仮想スクリーンをパネルスタック変更後の状態に更新します。この関数で
   は "curses.doupdate()" を呼ばないので、ユーザは自分で呼び出す必要が
   あります。


15.14.2. Panel オブジェクト
===========================

上記の "new_panel()" が返す Panel オブジェクトはスタック順の概念を持つ
ウィンドウです。ウィンドウはパネルに関連付けられており、表示する内容を
決定している一方、パネルのメソッドはパネルスタック中のウィンドウの深さ
管理を担います。

Panel オブジェクトは以下のメソッドを持っています:

Panel.above()

   現在のパネルの上にあるパネルを返します。

Panel.below()

   現在のパネルの下にあるパネルを返します。

Panel.bottom()

   パネルをスタックの最下層にプッシュします。

Panel.hidden()

   パネルが隠れている (不可視である) 場合に真を返し、そうでない場合偽
   を返します。

Panel.hide()

   パネルを隠します。この操作ではオブジェクトは消去されず、スクリーン
   上のウィンドウを不可視にするだけです。

Panel.move(y, x)

   パネルをスクリーン座標 "(y, x)" に移動します。

Panel.replace(win)

   パネルに関連付けられたウィンドウを *win* に変更します。

Panel.set_userptr(obj)

   パネルのユーザポインタを *obj* に設定します。このメソッドは任意のデ
   ータをパネルに関連付けるために使われ、任意の Python オブジェクトに
   することができます。

Panel.show()

   (隠れているはずの) パネルを表示します。

Panel.top()

   パネルをスタックの最上層にプッシュします。

Panel.userptr()

   パネルのユーザポインタを返します。任意の Python オブジェクトです。

Panel.window()

   パネルに関連付けられているウィンドウオブジェクトを返します。
