XToolKitは、
ボタン、プルダウンメニュ、テキストwindowなどのGUI要素を使用して
GUI (Graphical User Interface)を作成するのを容易にするための
高レベルXwindowインターフェースである。
Xlibクラスとの大きな違いは、XToolKitがXserverから送られる
Xeventと一致するユーザーが定義した対話ルーチンを呼び出し、
それらの対話指向windowパーツと一致した外観を提供することである。
XToolKitに含まれるクラスは、以下の継承構造を持っている。
xwindow
panel
menubar-panel
menu-panel
filepanel
textviewpanel
confirmpanel
panel-item
button-item
menu-button-item
bitmap-button-item
menu-item
text-item
slider-item
choice-item
joystick-item
canvas
textwindow
buffertextwindow
scrolltextwindow
textedit
scroll-bar
horizontal-scroll-bar
以下に示すxwindowクラスはXToolKitの5つの基本クラスである。
panel, panel-item,
canvas, textWindowとscroll-bar。
menubar-panelとmenu-panelは、panelの下に定義される。
新しいアプリケーションwindowを作り、イベントの上でそれを実行させるための
基本的な方策は、以下の通りである。
- アプリケーションクラスの定義 アプリケーションクラスwindowは、
XToolKitの要素を置く能力を持つpanelのサブクラスとして
定義されなければならない。
- イベントハンドラの定義 アプリケーションクラスにおいて、
ボタンが押されたり、メニューアイテムが選択されたりしたときに
呼び出されるイベントハンドラを定義する。
イベントハンドラは、panel-itemの指定された引数を持つメソッドとして
定義すべきである。
- サブパネルの定義 もし、menubar-panelを使用するなら、
アプリケーションwindowの一番上におかれる。
したがって、:create-menubarによって最初に作成されなければ
ならない。
同様に、menu-panelは、そのmenu-panelと関連する
menu-button-itemより前に定義する必要がある。
- パネルアイテムの作成 button-item,
text-item, slider-itemなどのようなパネルアイテムは、
(send-super :create-item class label object method)によって
作成することができる。
上記で定義されたイベントハンドラは、それぞれのパネルアイテムと
接続される。
これらの初期化手続きは、アプリケーションwindowクラスの
:createメソッドの中で定義すべきである。
必要なときはいつでもイベント送信を停止するためのquitボタンを
定義することを忘れないこと。
どんなtextWindowとcanvasも、:locate-itemメソッドを経由して
アプリケーションwindowの中に置くことができる。
- window全体の作成 :createメッセージをアプリケーション
クラスに送ることで、windowにXToolKitの要素を正しく置いたアプリケーション
windowを作成する。
- イベント送信の実行 Xserverからイベントを受け、一致する
windowに配るためには、window-main-loopを実行すること。
Solaris2上では、イベントを配るための異なったスレッドである
window-main-threadで実行する。
window-main-threadでは、最上位レベルの対話が活きている。
window-main-threadを2回以上実行してはならない。
Subsections
2016-04-05