[4.40x86b5] SetGadgetItemState() causes event
Posted: Sat Oct 24, 2009 5:36 am
If I select a line of the ListViewGadget() using SetGadgetItemState() I get a WaitWindowEvent(). In fact, it appears that I get two events the first is a #PB_Event_Gadget of the eventtype=0 (#PB_EventType_LeftClick?) then the second is another #PB_Event_Gadget with a eventtype=#PB_EventType_Change. Why does SetGadgetItemState() trigger a #PB_EventType_LeftClick?
Code: Select all
OpenWindow(0, 100, 100, 300, 200, "ListView")
ListViewGadget(0, 100, 50, 100, 100, #PB_ListView_MultiSelect)
AddGadgetItem(0, -1, "Item 1")
AddGadgetItem(0, -1, "Item 2")
AddGadgetItem(0, -1, "Item 3")
AddGadgetItem(0, -1, "Item 4")
SetGadgetItemState(0,1,1) ; rem out and no events!
Repeat
event=WaitWindowEvent()
Select event
Case #PB_Event_Gadget
;assume gadget is #0
Debug "new Event="+Str(event)+" EventType()="+Str(EventType())
Select EventType()
Case #PB_EventType_Change;#PB_EventType_LeftClick;,768 ; 768 works for deselecting line
Debug "Line clicked on = "+Str(GetGadgetState(0))
For x=0 To 3
Debug " Item "+Str(x)+" = "+Str(GetGadgetItemState(0,x))
Next
EndSelect
EndSelect
Until event = #PB_Event_CloseWindow