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

コールバックの追加

ボタンが押されると端末エミュレータにメッセージが表示され、スクリプトが終了するというプッシュ・ボタン関数を作成するには、コールバックを追加します。また、このコールバックの存在をプッシュ・ボタンに伝える必要もあります。新規コードが追加されたスクリプトは、次のとおりです。

#!/usr/dt/bin/dtksh  

activateCB() {
    echo "Pushbutton activated; normal termination."
    exit 0
}

XtInitialize TOPLEVEL dttest2 Dtksh $0
XtSetValues $TOPLEVEL title:"dttest2"
XtCreateManagedWidget BBOARD bboard XmBulletinBoard $TOPLEVEL ¥
    resizePolicy:RESIZE_NONE ¥    
    background:SkyBlue ¥
    height:150 width:250
XtCreateManagedWidget BUTTON pushbutton XmPushButton $BBOARD ¥
    background:goldenrod ¥    
    foreground:MidnightBlue ¥
    labelString:"Push Here"¥    
    height:30 width:100 x:75 y:60 shadowThickness:3

XtAddCallback $BUTTON activateCallback activateCB
XtRealizeWidget $TOPLEVEL 
XtMainLoop

関数 activateCB() がコールバックです。通常は、次のようにプッシュ・ボタンが作成された後に、コールバックをプッシュ・ボタンに追加します。

XtAddCallback $BUTTON
activateCallback activateCB

これで、コールバックはプッシュ・ボタンに認識されました。プッシュ・ボタンをクリックすると、関数 activateCB() は実行され、スクリプトを実行した端末エミュレータにメッセージ「Pushbutton activated; normal termination.」が表示されます。スクリプトは、関数 exit 0 を呼び出して終了します。