コールバック時にタイルの値をチェックできます。必要に応じて、もう一度 set_tile を使用してこの値を変更することができます。
コールバック中に、mode_tile を使用してタイルのステータスを変更することもできます。次の表に、mode_tile の mode 引数の値を示します。
mode_tile の mode のコード |
|
---|---|
値 |
説 明 |
0 |
タイルを使用可能にします。 |
1 |
タイルを使用禁止にします。 |
2 |
タイルにフォーカスを設定します。 |
3 |
編集ボックスの内容を選択します。 |
4 |
イメージのハイライト表示のオンとオフを切り替えます。 |
mode_tile を使用して、現在フォーカスが設定されているタイルを使用禁止にしたときは、もう一度 mode_tile を呼び出して別のタイルにフォーカスを移す必要があります(ほとんどの場合、ダイアログ ボックスの次のタブ ストップ位置)。そうしないと、使用禁止にしたタイルにフォーカスが残ってしまい、論理的に矛盾してエラーが発生する可能性があります。
使用禁止にするタイルの例として、ユーザが[次]ボタンや[前]ボタンを選択することによって移動する、ダイアログ ボックスのページが挙げられます。ユーザが最後から 1 ページ前のページで[次]ボタンを選択すると、そのボタンは使用禁止になります。2 ページ目で[前]ボタンを選択したときも同じです。どちらの場合も、コードは選択されたボタンを使用禁止にし、フォーカスを別のタイルに移す必要があります。
group_on というタイルが、group というクラスタをコントロールするトグルだとします。トグルがオフにされている場合、クラスタ内のタイルは非アクティブですので、変更してはいけません。この場合、トグルに対して次に示すアクションを定義できます(制御文字 ¥" を使用している点に注目してください。こうすることで、action_tile 引数内でクォーテーション マークを使用できます)。
(action_tile "group_on" "(mode_tile \"group\" (- 1 (atoi $value)))")
アクション式での subtraction ( - ) および atoi の呼び出しにより、mode_tile 関数の mode 引数が設定されます。トグルはオフのときは 0 (ゼロ)、オンのときは 1 であるため、subtraction の値は反転します。mode はクラスタを使用可能にするかどうかをコントロールします。get_attr 関数を使用すると、タイルの value 以外の属性を調べることができます。たとえば、"pressme" というボタンのラベルを取得する場合は、次のようにします。
(get_attr "pressme" "label")
get_attr 関数は、指定された属性の値を文字列として返します。