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

Xt イントリンシクスの初期化

dtksh スクリプトは、Xlib、Xt、Motif、または libDt コマンドのいずれかを呼び出す前に、まず Xt イントリンシクスを初期化しなければなりません。これは、XtInitialize コマンドを呼び出して行います。このコマンドは、アプリケーション・シェル・ウィジェットを返します。ウィジェット ID を返すすべての dtksh コマンドが真であるように、XtInitialize は、最初の引き数である環境変数にそのウィジェット ID を返します。

たとえば、

XtInitialize TOPLEVEL myShellName Dtksh $0 "$@"

とすると、ウィジェット ID は環境変数 TOPLEVEL に返されます。

dtksh はデフォルトの app-defaults ファイルを提供し、このファイルは、XtInitialize の呼び出しで Dtksh のアプリケーション・クラス名を指定した場合に使用されます。また、この app-defaults ファイルには、デスクトップ・アプリケーションのデフォルト値の標準セットが格納されているので、dtksh アプリケーションと他のデスクトップ・アプリケーションとの外見的な一貫性を保つことができます。

ウィジェットの作成

ウィジェット作成に使用できるいくつかのコマンドは、次のとおりです。

XtCreateWidget

管理されないウィジェットを作成します。

XtCreateManagedWidget

管理されるウィジェットを作成します。

XtCreateApplicationShell

アプリケーション・シェルを作成します。

XtCreatePopupShell

ポップアップ・シェルを作成します。

XmCreate<widgettypes>

管理されないウィジェットを作成します。

これらのコマンドにはそれぞれ、従わなければならない特定の形式があります。たとえば、管理されないプッシュ・ボタン・ウィジェットをトップレベル・ウィジェットの子として作成したいと仮定します。XtCreateWidgetXmCreatePushButton のどちらかを使用できます。これらのコマンドの形式は、次のとおりです。

プッシュ・ボタン・ウィジェットを作成する実際のコマンドは、次のとおりです。

XtCreateWidget BUTTON button XmPushButton $TOPLEVEL 
XmCreatePushButton BUTTON $TOPLEVEL button

上記のそれぞれのコマンドは、全く同じ動作 (管理されないプッシュ・ボタンの作成) をします。リソース値は設定されていないことに注意してください。プッシュ・ボタンのバックグラウンドの色を赤、フォアグラウンドの色を黒にしたいと仮定します。これらのリソース値を次のように設定できます。

XtCreateWidget BUTTON button XmPushButton $TOPLEVEL ¥
background:Red ¥
foreground:Black 
XmCreatePushButton BUTTON $TOPLEVEL button¥
background:Red ¥ 
foreground:Black

ウィジェットを作成する C 関数のすべてが、ウィジェット ID または ID を返します。対応する dtksh コマンドは、ウィジェット ID と同じ環境変数を設定します。これらはカテゴリ 3 コマンドで、その最初の引き数は、ウィジェット ID が戻る環境変数の名前です。ウィジェット ID は、dtksh が実際のウィジェット・ポインタにアクセスするために使用する ASCII 文字です。次のどちらかのコマンドで、新規フォーム・ウィジェットを作成できます。ただし、どちらの場合も、新規フォーム・ウィジェットのウィジェット ID が環境変数 FORM に返されます。

どちらかのコマンドを実行した後、$FORM を使用して新規フォーム・ウィジェットを参照できます。たとえば、次のコマンドを使用して、新規フォーム・ウィジェット内でラベル・ウィジェットを作成できます。

XmCreateLabel LABEL $FORM name¥
labelString:"Hi Mom" ¥
CH_FORM ¥ 
leftAttachment:ATTACH_FORM

注 -

NULL と呼ばれる特別なウィジェット ID があります。これは、シェル・スクリプトに NULL のウィジェットの指定が必要である場合に使用します。たとえば、フォーム・ウィジェットの defaultButton リソースを無効にする場合には、コマンド XtSetValues $FORM defaultButton:NULL を使用してください。