This mixin updates text field classes to prevent user edits, but allow
programmatic update of the text value. It also sets the undo history length to
a default of 0, as user undo commands are disabled and the history takes up
space.

Overrides front-end/complete-program to
wrap terms from the definition in a module based on the language level’s
definition module. This duplicates the behavior of the HtDP teaching languages,
for instance.

The resulting language level uses the reader from reader-module, and is
recognized in files that start with a reader directive for that module path
within the first meta-lines lines. Metadata about the language’s
settings is marshalled between a string and a usable value (based on a default
value) by meta->settings, and between a usable value for a current
module (with a symbolic name) by settings->meta.

12.3.3Pict Manipulation

Extends pict’s bounding box to a minimum width and/or
height, placing the original picture in the middle of the space.

12.3.3.1Conditional Manipulations

These pict transformers all take boolean arguments that determine whether to
transform the pict or leave it unchanged. These transformations can be useful
for staged slides, as the resulting pict always has the same size and shape, and
its contents always appear at the same position, but changing the boolean
argument between slides can control when the transformation occurs.

These functions conditionally show or hide an image, essentially choosing
between pict and (ghostpict). The only difference between
the two is the default behavior and the opposite meaning of the show?
and hide? booleans. Both functions are provided for mnemonic purposes.

Shades pict to show with ratio of its normal opacity; if
ratio is 1 or shade? is #f, shows
pict unchanged.

12.3.3.2Conditional Combinations

These pict control flow operators decide which pict of several to use. All
branches are evaluated; the resulting pict is a combination of the pict chosen
by normal conditional flow with ghost applied to all the other picts.
The result is a picture large enough to accomodate each alternative, but showing
only the chosen one. This is useful for staged slides, as the pict chosen may
change with each slide but its size and position will not.

12.3.4Staged Slides

Executes the body terms once for each stage name. The terms
may include expressions and mutually recursive definitions. Within the body,
each name is bound to a number from 1 to the number of stages
in order. Furthermore, during execution stage is bound to the number
of the current stage and stage-name is bound to a symbol representing
the name of the current stage. By comparing stage to the
numeric value of each name, or stage-name to quoted symbols of
the form 'name, the user may compute based on the progression of the
stages.

Within a staged slide, the boolean arguments to hide, show,
strike, and shade can be used to determine in which stages to
perform a transformation. The macros pict-if, pict-cond,
pict-case, and pict-match may also be used to create images
which change naturally between stages.

Constructs a table containing the given rows, all of which must be of
the same length. Applies t to each string in a row to
construct a pict. The hgap, vgap, halign, and
valign are used to determine the horizontal and vertical gaps and
alignments as in table (except that every row and column is uniform).