Sub Class_Globals
Private innerView As View
Private panel1 As Panel
Private downx, downy As Int
Private ACTION_DOWN As Int
Public GridX = 20dip, GridY = 20dip As Int
End Sub
Sub Initialize(Activity As Activity, v As View)
innerView = v
panel1.Initialize("")
panel1.Color = Colors.Transparent
Activity.AddView(panel1, v.Left, v.Top, v.Width, v.Height)
ACTION_DOWN = Activity.ACTION_DOWN
Dim r As Reflector
r.Target = panel1
r.SetOnTouchListener("Panel1_Touch")
End Sub
Private Sub Panel1_Touch (o As Object, ACTION As Int, x As Float, y As Float, motion As Object) As Boolean
If ACTION = ACTION_DOWN Then
downx = x
downy = y
Else
Dim l As Int = innerView.Left + x - downx
Dim t As Int = innerView.Top + y - downy
innerView.Left = l - (l Mod GridX)
innerView.Top = t - (t Mod GridY)
panel1.Left = innerView.Left
panel1.Top = innerView.Top
End If
Return True
End Sub