![]() |
<< Index >> |
FutureBasic 5 |
| event | function | |
|
|
||
eventRecPtr& = eventon event statement, then your routine should check the contents of this record every time the routine is called. The record will contain a description of the event that triggered the call to your system event-handling routine.pointer variable (e.g., eventRecPtr& = event), then you can examine the individual fields of the event record as follows:type% = eventRecPtr&.evtNum%
type% |
Description |
_nullEvt (0) |
No event occurred |
_mButDwnEvt (1) |
mouse button pressed |
_mButUpEvt (2) |
mouse button released |
_keyDwnEvt (3) |
key pressed |
_keyUpEvt (4) |
key released |
_autoKeyEvt (5) |
key repeatedly held down |
_updatEvt (6) |
window needs updating |
_diskInsertEvt (7) |
disk inserted |
_activateEvt (8) |
window was brought to front or moved to back (see the evtMeta% field to determine which) |
_osEvt (15) |
operating system events (suspend, resume, mouse moved) |
_kHighLevelEvent (23) |
high-level events (includes Apple Events) |
message& = eventRecPtr&.evtMessage&
type% |
message& |
_keyDwnEvt, |
bits 0-7 = ASCII char; bits 8-15 = key code; for ADB keyboards, bits 16-23 = keyboard's ADB address. |
_updatEvt, |
pointer to the window |
_diskInsertEvt |
bits 0-15 = drive ID; bits 16-31 = error code |
_osEvt |
high-order byte = 1 for suspend/resume events; high-order byte = 250 for mouse-moved event. For suspend/resume events: bit 0 = 0 for suspend; bit 0 = 1 for resume. For resume event: bit 1 = 1 if clipboard was changed. |
_kHighLevelEvent |
Class of events to which the high level event belongs. This is used with the _evtMouse field to identify the specific type of high-level event received. |
ticks& = eventRecPtr&.evtTicks&
This gives the tickcount value (time since system startup, in ticks) when the event occurred. You can compare this against the current value of fn TickCount, to determine how long ago the event occurred.mousePt;4 = eventRecPtr& + _evtMouse
For low level events (i.e., all types except _kHighLevelEvent), this gives the mouse cursor location, in global coordinates, at the time the event occurred. mousePt should be dim'ed as a 4-byte record.highLevelEvtID& = eventRecPtr&.evtMouse&
For high-level events (i.e., of type _kHighLevelEvent), this gives the high-level Event ID, which together with message& identifies the type of high-level event.modKeys% = eventRecPtr&.evtMeta%
Contains information about the state of the modifier keys (Control, Shift, etc.) and the mouse button, at the time the event occurred. For activate events, bit 0 = 1 if the window should be activated; bit 0 = 0 if the window should be deactivated. The state of the modifier keys and mouse button is determined by specific bit values in this short integer; see the event% function for more information.dialog function, the menu function, etc. For example, if FutureBasic sees an event record in which a _mButDwn event has occurred, it checks whether the mouse was clicked inside a button, and tracks the mouse in preparation for a possible dialog event of type _btnClick.on event routine, and you don't want FutureBasic to do anything else with the event record afterwards, then you should set the event type to _nullEvt before you exit your on event routine. You can do this as follows:eventRecPtr&.evtNum% = _nullEvt