identifying a pressed button

BlitzMax Forums/BlitzMax Beginners Area/identifying a pressed button

julianbury(Posted 2006) [#1]
Hi Coders :-)

How do I find which gadget, a button, was pressed?
There is a yawning cavity where this knowledge should be :-/

Here's my code:
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Global xres:Int = GadgetWidth(Desktop:TGadget())
Global yres:Int = GadgetHeight(Desktop:TGadget())
Global px:Int = (xres/2) - 315
Global py:Int = (yres/2) - 55
Global window:TGadget=CreateWindow("Compare Files", px, py, 630, 109, Null, 3|WINDOW_ACCEPTFILES)
Global file1:TGadget = CreateTextField:TGadget(0, 2, 620, 22, window)
Global file2:TGadget = CreateTextField:TGadget(0, 28, 620, 22, window)
Global button:TGadget = CreateButton:TGadget("OK", 0, 55, 620, 22, window, BUTTON_OK)

Repeat
WaitEvent()
If EventID()=EVENT_WINDOWACCEPT
If TextFieldText(file1)>""
SetGadgetText(file2, EventText())
Else
SetGadgetText(file1, EventText())
EndIf
EndIf
If EventID()=EVENT_WINDOWCLOSE End
SetGadgetText(file1, ButtonState(button))
Forever
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

If you run this yourself, you'll see that no matter how much I click the button, the ButtonState does not vary from zero.
I obviously need to uniquely identify the button and I do not know how.
Can anyone help, please?

Julian ((*)(*))


klepto2(Posted 2006) [#2]
Global xres:Int = GadgetWidth(Desktop:TGadget())
Global yres:Int = GadgetHeight(Desktop:TGadget())
Global px:Int = (xres/2) - 315
Global py:Int = (yres/2) - 55
Global window:TGadget=CreateWindow("Compare Files", px, py, 630, 109, Null, 3|WINDOW_ACCEPTFILES)
Global file1:TGadget = CreateTextField:TGadget(0, 2, 620, 22, window)
Global file2:TGadget = CreateTextField:TGadget(0, 28, 620, 22, window)
Global button:TGadget = CreateButton:TGadget("OK", 0, 55, 620, 22, window, BUTTON_OK)

Local Time:Int
CreateTimer(60)

Repeat
WaitEvent()

If EventID()=EVENT_WINDOWCLOSE End
Select EventID()
	Case EVENT_GADGETACTION
		Select EventSource()
			Case Button
				SetGadgetText(file1, "OK Pressed")
				Time:Int = MilliSecs() 'only for showing the behaviour
		End Select
	Case EVENT_TImerTick
		If MilliSecs()-Time > 1000 Then SetGadgetText(file1, "No button Pressed")
End Select

Forever


This should help you (the Timer things are only for demonstration. They are not needed)


julianbury(Posted 2006) [#3]
That worked!

Thank you so much :-)

Julian ((.)(.))

o0o0o0o0o0o0o0o0o0o


tonyg(Posted 2006) [#4]
Just in case you're not aware these are excellent.