共通デスクトップ環境 Dtksh ユーザーズ・ガイド

ウィンドウ・マネージャのクローズ通知への応答

ユーザがアプリケーションに対して [ウィンドウ・マネージャ] メニューで [閉じる] を選択した場合、アプリケーションが、クローズ通知を「取り込む」準備ができていないと終了してしまいます。アプリケーションが通知を取り込まないと、アプリケーションが管理する複数のウィンドウはすべて消え、アプリケーション・データは、望ましくない状態で残る場合があります。この状態を避けるために、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