group
A list of entities to be shown as an overlay on top of other entities in a window. This overlay group is displayed after everything else has been displayed (cloth, foreground entities, grid and vane).
The overlay is not part of a window's save-under image. Consequently, changes to entities in a window overlay are displayed quickly since everything else is refreshed from the save-under. For this reason the number of entities in a window overlay should be kept to a minimum.
When a window overlay contains entities, save-under facilities must be enabled, so there is a need to set window.save_under first.
In all other respects, this group behaves like any other group identifier with the exception that it cannot be included as a window display group. When entities are moved from window display groups into an overlay and vice versa, full graphic refreshes will be performed.
A typical example for an overlay group would be to display information about entities while the mouse is being dragged across the window. The information is displayed as a glabel on the window's overlay.
epointer ~global.last = null ;# the last hit
entity glab = null ;# the current glabel
gc_display = off ;# suppress display of gc
gwin.track = {
args w=window
err_level = 5 ;# suppress epick message
epointer ep=epick ;# pick an entity
if (ep != last) { ;# test for "no change"
if (ep == glab) return;# do not pick the label
if (ep) ;# do we have a "hit"
glab = glabel '^(ep)',-tf=1,-fil=yellow,
-g=w.overlay,-h=50
else glab = null
last = ep
}
}
tell pcur ;# get a point (invokes tracking)