intrinsicsのXtMainLoop()と同様の働きをします。
この述語は、メインイベントル−プを実現します。Xウインドウのイベントは、システムがイベントル−プを実行している時だけ処理されます。いくつかのwidgetを生成後にユ−ザとの対話を始めるには、各アプリケ−ションはxtMainLoop/0を呼び出せばいいのです。
xtMainLoop/0は、あるイベントが起こるまで中断して待っています。起きたイベントが処理されます。これは関連するコ−ルバックとアクションの呼び出しによってディスパッチされたことを意味します。
IF/PrologのMainLoopは、拡張されたMainLoopです。述語xtBreakMainLoop/0がコ−ルバックから呼び出された場合、xtMainLoop/0は、現在のイベントに関するすべての処理が終了した後に成功します。
xtMainLoop/0がコ−ルバックから呼び出された場合、現在のイベントの未解決の処理は、コ−ルバックが終了するまで実行されません。
ループをデバッギングのために中断したい場合には、以下のコードが有効です。EOF文字を入力すれば、簡単に再開することができます。
program :- ... repeat, xtMainLoop, break, fail.