Private Sub pnl_Touch (Action As Int, X As Float, Y As Float)
Select Action
Case pnl.TOUCH_ACTION_DOWN, pnl.TOUCH_ACTION_MOVE
Dim dx As Int = x - CircleRect.CenterX
Dim dy As Int = y - CircleRect.CenterY
Dim dist As Float = Sqrt(Power(dx, 2) + Power(dy, 2))
If dist > CircleRect.Width / 2 Then
Dim angle As Int = Round(ATan2D(dy, dx))
angle = angle + 90
angle = (angle + 360) Mod 360
mValue = mMin + angle / 360 * (mMax - mMin)
mValue = Max(mMin, Min(mMax, mValue))
Draw
End If
Case pnl.TOUCH_ACTION_DOWN, pnl.TOUCH_ACTION_UP
If SubExists(mCallBack, mEventName & "_ValueChanged") Then
CallSub2(mCallBack, mEventName & "_ValueChanged", mValue)
End If
End Select
End Sub