BBjWindow::setReportAllKeyEvents

Description

In BBj 15.0 and higher, this method sets an option to have all controls report keypress events to the window.

Syntax

Return Value

Method

void

setReportAllKeyEvents(boolean report)

Parameters

Variable

Description

report

Specifies whether keypress events should be reported for all controls on the window.
0 = events are not reported
1 = events are reported

Return Value

None.

Remarks

By default, only a small subset of keypress events are reported to the window when text controls have focus.

Example

rem ' BBjWindow::setReportAllKeyEvents

sysgui = unt
open (sysgui)"X0"
sysgui! = bbjapi().getSysGui()
title$ = "setReportAllKeyEvents"
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

See Also

BBjAPI

BBjWindow

Object Variables

BBjKeypressEvent::getOriginalControl

See the BBj Object Diagram for an illustration of the relationship between BBj Objects.