IT用語集 › プログラミング › アプリケーションコンテキスト (Xt)

アプリケーションコンテキスト (Xt)

プログラミング Svenska → 更新: 2026-10-20

Xtで、ウィンドウではなくプログラムに属するもの(ディスプレイ接続、イベントキュー、タイマー、バックグラウンド処理)をまとめる入れ物。グローバル変数をなくすために導入された。

X Toolkit Intrinsicsの最初の版は、1プログラムにつき1ディスプレイ、1イベントループを前提とし、状態をグローバル変数に持っていた。XtInitializeとXtMainLoopを呼び、同じプロセスでライブラリを二度使えないことを受け入れるしかなかった。1988年のX11R3で、これらすべての明示的な所有者としてXtAppContext型が導入された。プログラムはコンテキストを作り、その中でディスプレイを開き、XtAppAddTimeOutでタイマーを、XtAppAddInputでファイル記述子を、XtAppAddWorkProcでバックグラウンド処理を登録し、それらを同時に待つXtAppMainLoopを実行する。R4ではセットアップがXtAppInitializeにまとめられ、Xresourcesのリソースデータベースはコンテキスト内でディスプレイごとに読み込まれる。

古い呼び出しは非推奨とされたまま残り、内部では隠れたデフォルトコンテキストに対して書き直されたので、教科書の例は長年それを使い続けた。複数のコンテキストを持てる点、つまり他人のXtプログラムの中で別のXtを動かすライブラリは、ほとんど活用されなかった。実際の成果は、XtMainLoopにプログラムを預けて戻ってこない代わりに、XtAppPendingとXtAppProcessEventでイベントループを自分で所有し駆動できるようになったことだ。タイマー、入力源、メインループを1つのオブジェクトが持つこのパターンは、GLibのGMainContextやQtのQCoreApplicationに受け継がれた。

← 用語集に戻る