#DesignerProperty: Key: BooleanExample, DisplayName: Show Seconds, FieldType: Boolean, DefaultValue: True
#DesignerProperty: Key: TextColor, DisplayName: Text Color, FieldType: Color, DefaultValue: 0xFFFFFFFF, Description: Text color
Sub Class_Globals
Private mEventName As String 'ignore
Private mCallBack As Object 'ignore
Public mBase As B4XView
Private xui As XUI 'ignore
Public Tag As Object
Dim pnlDrawing As B4XView
Dim canvas As B4XCanvas
Dim rect As B4XRect
Dim path As B4XPath
Dim SelectedOption As Int
End Sub
Public Sub Initialize (Callback As Object, EventName As String)
mEventName = EventName
mCallBack = Callback
End Sub
Public Sub DesignerCreateView (Base As Object, Lbl As Label, Props As Map)
mBase = Base
Tag = mBase.Tag
mBase.Tag = Me
'Dim clr As Int = xui.PaintOrColorToColor(Props.Get("TextColor")) 'Example of getting a color value from Props
mBase.LoadLayout("Drawing")
canvas.Initialize(pnlDrawing)
SelectedOption=0
UpdateButton
End Sub
Private Sub UpdateButton()
rect.Left =0:rect.Top=0:rect.Width=60:rect.Height=60
canvas.ClearRect(rect)
path.InitializeRoundedRect (rect,5)
canvas.DrawPath(path,xui.Color_RGB(145,0,41) ,False,2)
If SelectedOption=1 Then
rect.Left =15:rect.Top=10:rect.Width=30:rect.Height=10
canvas.DrawRect(rect,xui.Color_RGB(43,137,4) ,True,2)
End If
If SelectedOption=1 Or SelectedOption=2 Then
canvas.DrawCircle(15,15,5,xui.Color_RGB(43,137,4) ,True,0)
End If
If SelectedOption=1 Or SelectedOption=3 Then
canvas.DrawCircle(45,15,5,xui.Color_RGB(43,137,4) ,True,0)
End If
canvas.Invalidate
End Sub
Private Sub Base_Resize (Width As Double, Height As Double)
End Sub
#if B4J
Private Sub pnlDrawing_MouseClicked (EventData As MouseEvent)
SelectedOption=SelectedOption+1
If SelectedOption=4 Then SelectedOption=0
UpdateButton
End Sub
#end if
#if B4A
Private Sub pnlDrawing_Touch (Action As Int, X As Float, Y As Float)
SelectedOption=SelectedOption+1
If SelectedOption=4 Then SelectedOption=0
UpdateButton
End Sub
#end if