このスクリプトは、内部にプッシュ・ボタン・ウィジェットを持つブリテン・ボード・ウィジェットを作成します。コールバックが 1 つもない単純なスクリプトです。2 番目のスクリプトはコールバックを取り込んでいます。
最初のスクリプトは、次のとおりです。
#!/usr/dt/bin/dtksh XtInitialize TOPLEVEL dttest1 Dtksh $0 XtSetValues $TOPLEVEL title:"dttest1" XtCreateManagedWidget BBOARD bboard XmBulletinBoard $TOPLEVEL ¥ resizePolicy:RESIZE_NONE height:150 width:250 ¥ background:SkyBlue XtCreateManagedWidget BUTTON pushbutton XmPushButton $BBOARD ¥ background:goldenrod ¥ foreground:MidnightBlue ¥ labelString:"Push Here" ¥ height:30 width:100 x:75 y:60 shadowThickness:3 XtRealizeWidget $TOPLEVEL XtMainLoop
最初のスクリプトによって作成されるウィンドウを図 2-1 に示します。
スクリプトの最初の行は次のとおりです。
#!/usr/dt/bin/dtksh
この行は、標準シェルではなく /usr/dt/bin/dtksh を使用してスクリプトを実行することをオペレーティング・システムに指示しています。
XtInitialize TOPLEVEL dttest1 Dtksh $0
環境変数 $TOPLEVEL にトップレベルのウィジェット名が保存され、dttest1 はシェル・ウィジェット名、Dtksh はアプリケーション・クラス名で、dtksh 変数 $0 によってアプリケーション名が指定されることを表しています。
次の行で、タイトル・リソースにスクリプト名を設定します。
XtSetValues $TOPLEVEL title:"dttest1"
リソース名 (title) の後のコロンとリソース値の間にはスペースは入れられないので注意してください。スペースを入れると、エラー・メッセージが表示されます。
次の 4 行で、ブリテン・ボード・ウィジェットを作成し、いくつかのリソースを設定します。
XtCreateManagedWidget BBOARD bboard XmBbulletinBoard $TOPLEVEL ¥ resizePolicy:RESIZE_NONE ¥ background:SkyBlue¥ height:150 width:250
環境変数 $BBOARD にブリテン・ボード・ウィジェットの ID が保存されます。bboard はウィジェット名です。この名前は、Xt イントリンシクスが、外部のリソース・ファイルでリソース値を設定するのに使用します。ウィジェット・クラスは XmBulletinBoard です。ブリテン・ボードの親ウィジェットは、環境変数 $TOPLEVEL に格納されているウィジェット ID です。
これは、一番最初の初期化コマンドで作成したトップレベルのウィジェットです。行の終わりの ¥ (バックスラッシュ) は、そのコマンドが次の行へも続いていることを dtksh に指示しています。
次の 6 行で、プッシュ・ボタン・ウィジェットをブリテン・ボードの子として作成し、いくつかのプッシュ・ボタンのリソースを設定します。
XtCreateManagedWidget BUTTON pushbutton XmPushButton $BBOARD ¥ background:goldenrod ¥ foreground:MidnightBlue ¥ labelString:"Push Here"¥ height:30 width:100 x:75 y:60¥ shadowThickness:3
これは、変数、名前、クラス、および親が異なるという点を除いて、ブリテン・ボードを作成するのに使用するプロシージャと基本的に同じです。
次の行で、トップレベル・ウィジェットとそのすべての子を認識します。
XtRealizeWidget $TOPLEVEL
最後に、XtMainLoop コマンドがウィジェットのイベントのループ処理を開始します。
XtMainLoop
このスクリプトを実行すると、ディスプレイ上にウィンドウが表示されます。スクリプトを終了するまで表示されたままの状態です。終了する方法は、[ウィンドウ・マネージャ]メニューで [閉じる] を選択するか、スクリプトを実行した端末エミュレータ・ウィンドウ内で [CTRL] + [C] キーを押すかのどちらかです。