スライダからのアクションとコールバックを処理する場合、アプリケーションはコールバックで受け取る理由コードをチェックする必要があります。理由コードは必ずチェックしなくてはならないというわけではありませんが、チェックすると処理が少なくて済むという利点があります。
コールバックは、スライダの増分境界を横切るときに起こります。たとえば、スライダが最小値 0(ゼロ)、最大値 10、およびその両方の小増分と大増分が 1 で定義されている場合、ユーザがスライダの一方の端からもう一方の端まで動かすと、コールバックは 10 回呼び出されます。
次の例は、スライダを処理する関数の基本的な使い方です。これは、スライダ タイルに関連付けられたアクション式から呼び出されます。関数で使用されている slider_info タイルは、スライダの現在値を 10 進表記で表示します。このようなタイルは編集ボックスでもあることが多く、その場合ユーザはスライダを操作するか、またはその値を直接入力できます。ユーザが slider_info に値を入力した場合、編集ボックスのコールバックは、次のようにそのスライダの値を更新する必要があります。
(action_tile
"myslider"
"(slider_action $value $reason)"
)
(action_tile
"slider_info"
"(ebox_action $value $reason)"
)
.
.
.
(defun slider_action(val why)
(if (or (= why 2) (= why 1)) ; Check reason code.
(set_tile "slider_info" val) ; Show interim result.
)
)
(defun ebox_action(val why)
(if (or (= why 2) (= why 1)) ; Check reason code.
(set_tile "myslider" val) ; Show interim result.
)
)