BBjKeypressEvent::getOriginalControl

Description

In BBj 15.0 and higher, this method returns the BBjControl that originated this window keypress event.

Syntax

Return Value

Method

BBjControl

getOriginalControl()

Parameters

None.

Return Value

Returns the BBjControl that originated this event.

Remarks

As always, getControl returns the window.

Example

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

See Also

BBjKeypressEvent

BBjAPI

BBj Object Syntax

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