Listbox - Detect A Single Right Mouse Click?!
BlitzMax Forums/MaxGUI Module/Listbox - Detect A Single Right Mouse Click?!
| ||
Hey there! I know the listbox code has been changed a bit over the past. A right mouse click on the listbox currently also generates a left a left one as well? Seems broken for me... Grisu Example code: |
| ||
This isn't really broken as it is sending the correct events. The docs say... EVENT_GADGETSELECT: An item has been selected, or the selection has been cleared. EVENT_GADGETMENU: The user has right-clicked somewhere in the listbox. Observe what happens when you right-click an item. The item you right-clicked is selected (highlighted), and so an EVENT_GADGETSELECT is emitted as the selection has changed. If you want to trap mouse events, you should be using SetGadgetSensitivity(): SuperStrict Import MaxGui.Drivers AppTitle = "Mouse Events from Listboxes" Local Window:TGadget = CreateWindow( AppTitle,261,106,141,143,Null,WINDOW_TITLEBAR|WINDOW_RESIZABLE|WINDOW_STATUS|WINDOW_CLIENTCOORDS ) Local ListBox:TGadget = CreateListBox(27,28,80,100,Window,Null) AddGadgetItem( ListBox,"Item1",GADGETITEM_DEFAULT ) AddGadgetItem( ListBox,"Item2",GADGETITEM_NORMAL ) SetGadgetSensitivity( ListBox, SENSITIZE_MOUSE ) AddHook EmitEventHook, eventHandler Repeat;WaitSystem();Forever Function eventHandler:Object( pID%, pData:Object, pContext:Object ) Local pEvent:TEvent = TEvent(pData) If Not pEvent Then Return pData Select pEvent.id Case EVENT_WINDOWCLOSE, EVENT_APPTERMINATE;End Case EVENT_MOUSEUP, EVENT_MOUSEDOWN Print pEvent.ToString() EndSelect EndFunction |