ok, i'm writing a small set of gui functions to form the basis of a front end for a game, but i'm having problems with checking for qualifiers on keyboard input.
say i'm checking for alt + c i get either the scancode for alt or the scan code for c, never both and i'm not sure what is wrong.
here is the code
any help would be appriciated.
cheers.
say i'm checking for alt + c i get either the scancode for alt or the scan code for c, never both and i'm not sure what is wrong.
here is the code
Const EV_NONE = $0 Const EV_MOUSEDOWN = $1 Const EV_MOUSEUP = $2 Const EV_MOUSEOVER = $4 Const EV_GADHIT = $8 Const EV_KEYDOWN = $10 Const EV_KEYUP = $20 Const EV_KEYHIT = $40 Const QUAL_CTRL = $100 Const QUAL_ALT = $200 Const QUAL_SHIFT = $400 Const QUAL_LEFT = $1000 Const QUAL_RIGHT = $2000 Global event:TPEvent Type TPEvent Field id ' event type Field data ' data type Field source ' source of event (gadget/window id) End Type Function WaitEvent:Int() ' test for mouse location, is the mouse over a gadget Local ex_loop:Byte event.id = 0; event.data = 0; event.source = 0 ' clear event WaitSystem() Local q_key:Int = 0 Local key ' scan for keys hit, filtering out the qualifiers For Local i = 5 To 255 If KeyHit(i) Select i Case KEY_LALT q_key = QUAL_LEFT + QUAL_ALT DebugLog "Q_KEY LALT " + Hex(q_key) Case KEY_RALT q_key = QUAL_RIGHT + QUAL_ALT DebugLog "Q_KEY RALT " + Hex(q_key) Case KEY_LCONTROL q_key = QUAL_LEFT + QUAL_CTRL DebugLog "Q_KEY LCTRL " + Hex(q_key) Case KEY_RCONTROL q_key = QUAL_RIGHT + QUAL_CTRL DebugLog "Q_KEY LCTRL " + Hex(q_key) Case KEY_LSHIFT q_key = QUAL_LEFT + QUAL_SHIFT DebugLog "Q_KEY LSHIFT " + Hex(q_key) Case KEY_RSHIFT q_key = QUAL_RIGHT + QUAL_SHIFT DebugLog "Q_KEY RCTRL " + Hex(q_key) Case KEY_CONTROL Case KEY_SHIFT Case KEY_ALT Default event.id :+ EV_KEYHIT event.data :+ q_key + i DebugLog "q_key + i = " + q_key + " " + i DebugLog "event.data = " + event.data Return True End Select End If DebugLog "index " + i + " q_key " + Hex(q_key) Next 'DebugStop If q_key <> 0 event.id :+ EV_KEYHIT event.data :+ q_key Return True End If
any help would be appriciated.
cheers.