rem ' BBjWindow::getReportAllKeyEvents
sysgui = unt
open (sysgui)"X0"
sysgui! = bbjapi().getSysGui()
title$ = "getReportAllKeyEvents"
window! = sysgui!.addWindow(100,100,250,300,title$,$20090003$)
gosub print
window!.setCallback(window!.ON_CLOSE,"eoj")
window!.setCallback(window!.ON_KEYPRESS,"keypress")
checkbox! = window!.addCheckBox(101,25,25,200,25,title$,$0004$)
checkbox!.setCallback(checkbox!.ON_CHECK_ON,"on")
checkbox!.setCallback(checkbox!.ON_CHECK_OFF,"off")
text! = window!.addStaticText(102,25,75,200,25,"BBjStaticText",$$)
edit! = window!.addEditBox(103,25,125,200,25,"BBjEditBox",$$)
inpute! = window!.addInputE(104,25,175,200,25,$$,255,"","BBjInputE")
cedit! = window!.addCEdit(105,25,225,200,50,"BBjCEdit",$0004$)
dim event$:tmpl(sysgui)
process_events
eoj:
release
on:
window!.setReportAllKeyEvents(1,err=*next)
gosub print
return
off:
window!.setReportAllKeyEvents(0,err=*next)
gosub print
return
print:
print "BBjWindow::getReportAllKeyEvents() = ",
print window!.getReportAllKeyEvents(err=*next)
return
keypress:
print fill(72,"=")
event$ = sysgui!.getLastEventString()
key = event.id,flags$ = event.flags$
print "Window Keypress: ",hta(event.id$)," Flags: ",
print hta(event.flags$)+": """+cvs(event.id$,16)+"""",
if key>255 then print "" else gosub key
event! = sysgui!.getLastEvent()
print "getOriginalControl(): ",event!.getOriginalControl()
print "getKeyChar():",num(event!.getKeyChar())
print "getKeyCode():",num(event!.getKeyCode()),": ",
keycode = event!.getKeyCode()
gosub keycode
print "isShiftDown(): ",event!.isShiftDown()
print "isControlDown(): ",event!.isControlDown()
print "isAltDown(): ",event!.isAltDown()
print "isCmdDown(): ",event!.isCmdDown()
print fill(72,"=")
return
key:
print ": ",
if asc(and(flags$,$01$)) then print "SHIFT+",
if asc(and(flags$,$02$)) then print "CTRL+",;key = key+64
if asc(and(flags$,$04$)) then print "ALT+",
if asc(and(flags$,$08$)) then print "CMD+",
print cvs(chr(key),16)
return
keycode:
keycode$ = bin(keycode,2)
if asc(and(keycode$,$1000$)) then print "SHIFT+",
if asc(and(keycode$,$2000$)) then print "CTRL+",
if asc(and(keycode$,$4000$)) then print "ALT+",
if asc(and(keycode$,$8000$)) then print "CMD+",
switch dec(and(keycode$,$0fff$))
case dec($0009$); print "Tab"; break
case dec($001b$); print "Escape"; break
case dec($007f$); print "Delete"; break
case dec($012d$); print "Up arrow"; break
case dec($012e$); print "Down arrow"; break
case dec($012f$); print "Right arrow"; break
case dec($0130$); print "Left arrow"; break
case dec($0131$); print "Page up"; break
case dec($0132$); print "Page down"; break
case dec($0133$); print "Home"; break
case dec($0134$); print "End"; break
case dec($0135$); print "Ctrl-Home"; break
case dec($0136$); print "Ctrl-End"; break
case dec($0138$); print "Insert"; break
case dec($0139$); print "Ctrl-Right arrow"; break
case dec($013a$); print "Ctrl-Left arrow"; break
case dec($013b$); print "Backtab"; break
case dec($013e$); print "Keypad 0"; break
case dec($013f$); print "Keypad 1"; break
case dec($0140$); print "Keypad 2"; break
case dec($0141$); print "Keypad 3"; break
case dec($0142$); print "Keypad 4"; break
case dec($0143$); print "Keypad 5"; break
case dec($0144$); print "Keypad 6"; break
case dec($0145$); print "Keypad 7"; break
case dec($0146$); print "Keypad 8"; break
case dec($0147$); print "Keypad 9"; break
case dec($014b$); print "F1"; break
case dec($014c$); print "F2"; break
case dec($014d$); print "F3"; break
case dec($014e$); print "F4"; break
case dec($014f$); print "F5"; break
case dec($0150$); print "F6"; break
case dec($0151$); print "F7"; break
case dec($0152$); print "F8"; break
case dec($0153$); print "F9"; break
case dec($0154$); print "F10"; break
case dec($0155$); print "F11"; break
case dec($0156$); print "F12"; break
case dec($0174$); print "Keypad *"; break
case dec($0175$); print "Keypad -"; break
case dec($0176$); print "Keypad +"; break
case dec($0177$); print "Keypad /"; break
case default; print """",chr(dec(and(keycode$,$00ff$))),""" ",keycode; break
swend
return
|