Radio without auto-uncheck

BlitzMax Forums/BlitzMax GUI Programming/Radio without auto-uncheck

After some testing, I have found that my past statement about it not being possible is not true. You have to keep track of which buttons are being clicked and reset them all in the program every time one is clicked. Here is an example:
Strict
Global Window:TGadget = CreateWindow("Test",100,100,640,480)
Global Panel:TGadget = CreatePanel(0,0,640,480,Window)
Global Button1:TGadget = CreateButton("Test 1",10,10,80,10,Panel,BUTTON_RADIO)
Global Button2:TGadget = CreateButton("Test 2",10,25,80,10,Panel,BUTTON_RADIO)
Global Button3:Tgadget = CreateButton("Test 3",10,40,80,10,Panel,BUTTON_RADIO)
Global Selected:Int = 0 'Keep track of which buttons are selected here.

AddHook EmitEventHook,MyHook

Repeat
	WaitEvent()
Forever

Function MyHook:Object(id:Int,data:Object,context:Object)
	Local event:TEvent = TEvent(data)
	
	Select event.id
		Case EVENT_WINDOWCLOSE
			End
		Case EVENT_GADGETACTION
			Select event.source
				Case Button1
					If Selected & 1 'if button is selected then clear bit, else set bit
						Selected = Selected & 6
					Else
						Selected = Selected | 1
					End If
				Case Button2
					If Selected & 2
						Selected = Selected & 5
					Else
						Selected = Selected | 2
					End If
				Case Button3
					If Selected & 4
						Selected = Selected & 3
					Else
						Selected = Selected | 4
					End If
			End Select
                        'Reset all the buttons
			SetButtonState(Button1,Selected & 1)
			SetButtonState(Button2,(Selected & 2) > 0)
			SetButtonState(Button3,(Selected & 4) > 0)
			Return Null
	End Select
	
	Return data
End Function