コールバック理由

提供:GizmoLabs - だいたい CAD LISP なサイト
2016年6月18日 (土) 08:19時点におけるGizmon (トーク | 投稿記録)による版 (→‎コード 2、3、4 の詳細)

action_tile で返されるコールバックの理由

変数 $reason で返されるコールバックの理由は、アクションが起こった理由を示す。 その値はどの種類のアクションにも設定されるが、アクションが edit_box、list_box、image_button、slider タイルに関連するときだけ検査する必要がある。

次の表は、コールバックの理由コードの一覧。

  • コード ・・・ 説 明
  • 1 ・・・ これはほとんどのアクション タイルの値で、ユーザがタイルを選択したことを示す。(そのタイルが既定で、プラットフォームがアクセラレータ キーを認識する場合は、[Enter] を押してタイルを選択した可能性がある)。
  • 2 ・・・ 編集ボックス。ユーザが編集ボックスを終了したが、最終的な選択をしていないことを示す。
  • 3 ・・・ スライダ。ユーザがインジケータをドラッグしてスライダの値を変更したが、最終的な選択をしていないことを示す。
  • 4 ・・・ リスト ボックスとイメージ ボタン。このコールバック理由は必ずコード 1 の後に続く。通常は直前の選択を「確定する」ことを意味する。直前の選択を取り消すとユーザが混乱するので、絶対に避けるべきである。


コード 2、3、4 の詳細

  • コード 2 - 編集ボックス
    • ユーザが[Tab]を押すことにより、または別のタイルを選択することにより編集ボックスを終了したが、最終的な選択をしていないことを示す。 これが編集ボックスのコールバックの理由である場合、アプリケーションは関連する変数の値を更新するのではなく、編集ボックス内の値の有効性をチェックする必要がある。
  • コード 3 - スライダ
    • ユーザがインジケータをドラッグする(またはそれに相当するアクションを行う)ことによりスライダの値を変更したが、最終的な選択をしていないことを示す。これがスライダのコールバックの理由である場合、アプリケーションは関連する変数の値を更新するのではなく、スライダのステータスを表示する文字を更新する必要がある。詳細はスライダを参照。コード例についてはスライダを処理するを参照。
  • コード 4 - リスト ボックス
    • ユーザがリスト ボックスをダブルクリックしたことを示す。ダブルクリックの意味は、アプリケーション側で定義できる。ダイアログ ボックスの主な目的がリスト項目を選択することである場合、ダブルクリックによって選択を行ってから、ダイアログ ボックスを終了させるようにする (この場合、list_box タイルの is_default 属性を true にしなければならない)。 リスト ボックスがダイアログ ボックスの主タイルでない場合、ダブルクリックは選択を行う(コード 1)のと同じ扱いにする必要がある。

ユーザが複数の項目を選択できるリスト ボックス(multiple_select = true)は、ダブルクリックをサポートできない。

  • コード 4 - イメージ ボタン
    • ユーザがイメージ ボタンをダブルクリックしたことを示す。ダブルクリックの意味は、アプリケーション側で定義できる。多くの場合、1 回のクリックでボタンが選択されるようにすることが適切だが、場合によっては 1 回のクリック(またはキーボードのアクション)でボタンをハイライト表示し、その後の [Enter] またはダブルクリックでそれを選択させる方がよいこともある。