Detect Tab key + either shift key
BlitzMax Forums/BlitzMax Beginners Area/Detect Tab key + either shift key
| ||
| Why dosn't this work? Select EventData() Case KEY_TAB If KeyDown(KEY_LSHIFT) Or KeyDown(KEY_RSHIFT) mapX=MapX-GadgetWidth(screen) MapX=Max(MapX,0) Else mapX=MapX+GadgetWidth(screen) MapX=Min(MapX,MapXmax) EndIf update_screen() |
| ||
| Hiya, Some gadgets don't have default keyboard or mouse events emitted. To set them for specific gadgets look into SetGadgetSensitivity(gadget:TGadget,flags) You can use Print CurrentEvent.ToString() to see the event datas to aid debugging. An example:-
Import MaxGui.Drivers
Global Window:TGadget = CreateWindow("Test",0,0,300,200,Null,WINDOW_DEFAULT|WINDOW_CENTERED)
SetGadgetSensitivity(Window,SENSITIZE_ALL)
Repeat
WaitEvent()
Select EventID()
Case EVENT_WINDOWCLOSE
End
Case EVENT_KEYDOWN
If EventData() = KEY_TAB And EventMods() = 1 '1 for any SHIFT, 2 for any CTRL
Print CurrentEvent.ToString()
EndIf
EndSelect
Forever
|
| ||
| Thanks, it looks like all I needed to use was the EventsMod() function. This works; Function Main_KeyUp() Select EventData() Case KEY_TAB If EventMods()=MODIFIER_SHIFT mapX=MapX-GadgetWidth(screen) MapX=Max(MapX,0) Else mapX=MapX+GadgetWidth(screen) MapX=Min(MapX,MapXmax) EndIf update_screen() .......... |