ユーザがアプリケーションに対して [ウィンドウ・マネージャ] メニューで [閉じる] を選択した場合、アプリケーションが、クローズ通知を「取り込む」準備ができていないと終了してしまいます。アプリケーションが通知を取り込まないと、アプリケーションが管理する複数のウィンドウはすべて消え、アプリケーション・データは、望ましくない状態で残る場合があります。この状態を避けるために、dtksh を使用して、クローズ通知を受け取り処理できます。アプリケーションは、次のことを行わなければなりません。
クローズ通知を処理するプロシージャを定義する
[閉じる] が選択された場合に通知を要求する
アプリケーションをシャットダウンしないように応答を無効にする
次のコードは、この処理を説明しています。
# This is the `callback' invoked when the user selects # the `Close' menu item WMCallback() { echo "User has selected the Close menu item" } # Create the toplevel application shell XtInitialize TOPLEVEL test Dtksh $0 "$@" XtDisplay DISPLAY $TOPLEVEL # Request notification when the user selects the `Close' # menu item XmInternAtom DELETE_ATOM $DISPLAY "WM_DELETE_WINDOW" false XmAddWMProtocolCallback $TOPLEVEL $DELETE_ATOM "WMCallback" # Ask Motif to not automatically close down your # application window XtSetValues $TOPLEVEL deleteResponse:DO_NOTHING