124 lines
7.6 KiB
Plaintext
124 lines
7.6 KiB
Plaintext
<!-- $XConsortium: ch02.sgm /main/7 1996/09/08 19:45:49 rws $ -->
|
|
<!-- (c) Copyright 1995 Digital Equipment Corporation. -->
|
|
<!-- (c) Copyright 1995 Hewlett-Packard Company. -->
|
|
<!-- (c) Copyright 1995 International Business Machines Corp. -->
|
|
<!-- (c) Copyright 1995 Sun Microsystems, Inc. -->
|
|
<!-- (c) Copyright 1995 Novell, Inc. -->
|
|
<!-- (c) Copyright 1995 FUJITSU LIMITED. -->
|
|
<!-- (c) Copyright 1995 Hitachi. -->
|
|
<chapter id="DKSUG.scr1.div.1">
|
|
<title>スクリプト例<indexterm><primary>スクリプト</primary><secondary>スクリプト例</secondary></indexterm><indexterm><primary>スクリプト例</primary></indexterm></title>
|
|
<para>この章は、1章で学んだ<command>dtksh</command>の使用方法を説明します。
|
|
ここに記述されている2つの簡単なスクリプトは、独自のスクリプトを記述しはじめる際に、
|
|
よい参考になります。</para>
|
|
<sect1 id="DKSUG.scr1.div.2">
|
|
<title>スクリプトの記述<indexterm><primary>スクリプト</primary><secondary>記述</secondary></indexterm></title>
|
|
<para>このスクリプトは、プッシュ・ボタン・ウィジェットを置いたブリテン・ボード・ウィジェット
|
|
を作成しています。スクリプトは、コールバックを含まない簡単なものです。2つめの
|
|
スクリプトにはコールバックが含まれています。</para>
|
|
<para>1つめのスクリプトは次のとおりです。</para>
|
|
<programlisting>#!/usr/dt/bin/dtksh
|
|
XtInitialize TOPLEVEL dttest1 Dtksh $0<indexterm><primary>XtInitialize</primary>
|
|
</indexterm>
|
|
XtSetValues $TOPLEVEL title:“dttest1”<indexterm><primary>XtSetValues</primary></indexterm>
|
|
XtCreateManagedWidget BBOARD bboard XmBulletinBoard $TOPLEVEL \
|
|
resizePolicy:RESIZE_NONE height:150 width:250\
|
|
background:SkyBlue<indexterm><primary>XtCreateManagedWidget</primary></indexterm>
|
|
XtCreateManagedWidget BUTTON pushbutton XmPushButton $BBOARD \<indexterm>
|
|
<primary>XtCreateManagedWidget</primary></indexterm>
|
|
background:goldenrod \
|
|
foreground:MidnightBlue \
|
|
labelString:”Push Here” \
|
|
height:30 width:100 x:75 y:60 shadowThickness:3
|
|
XtRealizeWidget $TOPLEVEL<indexterm><primary>XtRealizeWidget</primary></indexterm>XtMainLoop<indexterm>
|
|
<primary>XtMainLoop</primary></indexterm></programlisting>
|
|
<para>図2-1に1つめのスクリプトが生成するウィンドウを示します。</para>
|
|
<figure>
|
|
<title>dttestスクリプトのウィンドウ</title>
|
|
<graphic id="DKSUG.scr1.grph.1" entityref="DKSUG.scr1.fig.1"></graphic>
|
|
</figure>
|
|
<para>スクリプトの1行めは次のとおりです。</para>
|
|
<programlisting>#!/usr/dt/bin/dtksh</programlisting>
|
|
<para>これは、標準的なシェルではなく、<filename>/usr/dt/bin/dtksh</filename>を使用してスクリプトを実行することを、
|
|
オペレーティング・システムに指示します。</para>
|
|
<para>次の行はXtイントリンシクスを初期化しています。<indexterm><primary>初期化</primary></indexterm></para>
|
|
<para>XtInitialize TOPLEVEL dttest1 Dtksh $0</para>
|
|
<para><indexterm><primary>トップレベル・ウィジェット</primary></indexterm><indexterm><primary>ウィジェット</primary><secondary>トップレベル・ウィジェット</secondary></indexterm>トップレベル・ウィジェットの名前は環境変数<filename>$TOPLEVEL</filename>に保存され、シェル・ウィジェット
|
|
の名前は<filename>dttest1</filename>、アプリケーション・クラス名は<filename>Dtksh</filename>、そしてアプリケーション名は
|
|
<command>dtksh</command>変数<filename>$0</filename>であることを表しています。</para>
|
|
<para>次の行は、タイトル・リソースにスクリプト名を設定しています。</para>
|
|
<programlisting>XtSetValues $TOPLEVEL title:”dttest1”</programlisting>
|
|
<para>リソース名(タイトル)の終りにあるコロンとその値の間にスペースは入りません。
|
|
スペースが入っていると、エラー・メッセージが表示されます。</para>
|
|
<para>次の4行で、<indexterm><primary>ブリテン・ボード</primary></indexterm><indexterm><primary>ウィジェット</primary><secondary>ブリテン・ボード</secondary></indexterm>ブリテン・ボード・ウィジェットを作成し、いくつかのリソースを設定します。</para>
|
|
<programlisting>XtCreateManagedWidget BBOARD bboard XmBbulletinBoard $TOPLEVEL \
|
|
resizePolicy:RESIZE_NONE \
|
|
background:SkyBlue\
|
|
height:150 width:250</programlisting>
|
|
<para>ブリテン・ボード・ウィジェットのIDは環境変数<filename>$BBOARD</filename>に保存されます。
|
|
ウィジェットの名前は<command>bboard</command>です。この名前は、Xtイントリンシクスで、外部の
|
|
リソース・ファイルでリソースの値を設定する際に使用します。ウィジェット・クラスは、
|
|
<command>XmBulletinBoard</command>です。ブリテン・ボードの親ウィジェットは、環境変数<filename>$TOPLEVEL</filename>
|
|
に登録されているウィジェットIDです。
|
|
これは、最初の行の初期化コマンドで生成したトップレベル・ウィジェットです。行の
|
|
終りにある\(バックスラッシュ)は、このコマンドが次の行に続いていることを、<command>dtksh</command>に指示しています。</para>
|
|
<para>次の6行はブリテン・ボード・ウィジェットの子として<indexterm><primary>プッシュ・ボタン</primary></indexterm><indexterm><primary>ウィジェット</primary><secondary>ブリテン・ボード</secondary>プッシュ・ボタン・ウィジェット
|
|
を作成し、いくつかのプッシュ・ボタンのリソースを設定します。</para>
|
|
<programlisting>XtCreateManagedWidget BUTTON pushbutton XmPushButton $BBOARD \
|
|
background:goldenrod \
|
|
foreground:MidnightBlue \
|
|
labelString:”Push Here”\
|
|
height:30 width:100 x:75 y:60\
|
|
shadowThickness:3</programlisting>
|
|
<para>これは、変数、名前、クラス、親が異なっていることを除いて、基本的には、ブリテン
|
|
・ボードの作成に使用したプロシージャと同じです。</para>
|
|
<para>次の行で、トップレベル・ウィジェットとそのすべての子を実現します。</para>
|
|
<programlisting>XtRealizeWidget $TOPLEVEL<indexterm><primary>XtrealizeWidget</primary></indexterm></programlisting>
|
|
<para>最後に、<indexterm><primary>XtMainLoop</primary></indexterm><command>XtMainLoop</command> コマンドが、ウィジェットのためのイベントのループ処理を
|
|
開始します。 </para>
|
|
<programlisting>XtMainLoop</programlisting>
|
|
<para>このスクリプトで、ウィンドウがディスプレイに表示されます。ウィンドウ・マネージャで
|
|
<command>[閉じる]</command>を選択するか、またはスクリプトを実行した端末ウィンドウで[CTRL]+[C]キーを
|
|
押して、このスクリプトを終了するまで、ウィンドウは表示されたままの状態になります。</para>
|
|
</sect1>
|
|
<sect1 id="DKSUG.scr1.div.3">
|
|
<title>コールバックの追加<indexterm><primary>コールバック</primary></indexterm></title>
|
|
<para>プッシュ・ボタンが押されたときに、端末ウィンドウにメッセージを表示し、スクリプト
|
|
が終了するプッシュ・ボタンの機能を提供するには、コールバックを追加する必要が
|
|
あります。そして、このコールバックの存在をプッシュ・ボタンに指示する必要もあり
|
|
ます。新規コードを追加したスクリプトは次のとおりです。</para>
|
|
<programlisting>#!/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</programlisting>
|
|
<para>コールバックは関数<filename>activateCB()</filename>です。通常、プッシュ・ボタン
|
|
を作成した後、プッシュ・ボタンに対するコールバックを追加します。</para>
|
|
<programlisting>XtAddCallback $BUTTON activateCallback activateCB</programlisting>
|
|
<para>プッシュ・ボタンはコールバックを認識します。プッシュ・ボタンがクリックされたとき、
|
|
<filename>activateCB()</filename>関数が実行され、„<command>Pushbutton activated; normal termination.</command>”
|
|
というメッセージが、スクリプトを実行した端末ウィンドウに表示されます。スクリプトは、
|
|
関数<command>exit 0</command>を呼び出すことによって、終了します。</para>
|
|
</sect1>
|
|
</chapter>
|
|
<!--fickle 1.14 mif-to-docbook 1.7 01/02/96 10:26:11-->
|
|
<?Pub Caret>
|
|
<?Pub *0000009074>
|