Lesson 8 ユーザー・インタフェイス再び
3. 相互作用
ダイアログを作成することは、どちらかと言えば単純です (ページに配置できるコントロールのタイプはもっと沢山ありますが)。 本当に面白いのは、ダイアログ同士を相互作用させることです。 SampleCustomUI3 では、第二のダイアログを追加して、ユーザーがインストールのプロセスをキャンセルすることが出来るようにします。
この目的を達するためには、ダイアログそのものが必要です。 ダイアログは二つのプッシュ・ボタンを持ちますが、用語の違いに気を付けて下さい。 このようなダイアログ・ボックスは二つの出力を持ち得ます。 すなわち、ダイアログが言う通りにするのを キャンセル するか、オーケー するかです。 このダイアログでの質問は違う言い方になります。 キャンセルするダイアログをキャンセルするという事は、インストールを続けることに賛成するということです。 従って、第一の、デフォルトのボタン (いいえ というテキストを持ったボタン) を、キャンセル・ボタンと呼びます。
ユーザーがこのボタンをクリックすると、Return の値を持った EndDialog イベントが発生します。 その名前が示すように、このイベントは単純にダイアログを終了して、元の操作を再開します。 Publish タグは、条件式として、1 という数値を持っています。 1 は常に真と評価されます(0 は偽と評価されます)ので、イベントは無条件に発行されます。
第二の、はい というテキストを持ったボタンは、同じ EndDialog イベントを発生させますが、Exit という別の値を伴います。 この値は、インストールの操作全体を中止するために使われます。
残りは簡単です。テキストとアイコンです。Binary タグを追加してパッケージにアイコンを入れることを忘れないで下さい。
InstallDlg ダイアログにも、いくらか修正が必要です。 Install ボタンを左へ移動して、Cancel ボタンを置く場所を作りました。 この Cancel ボタンが、起動するダイアログの名前を指定して、SpawnDialog イベントを発生させます。 前のレッスンで既に述べたように、SpawnDialog は新しい子ダイアログを開始しますが、 現在のダイアログは削除せず、ユーザーがその第二のダイアログを終了すると動作を続行します。