A screen dump of FunGraph is shown in Figure 96. Basically, FunGraph is a free-form spread sheet with types, where the user can place and connect objects such as cells, sliders and graphs at will. The objects have input connectors on top, and output connectors below.
FunGraph was developed before the fudget
Section 27.5.1 was implemented. Instead, graphics where
implemented with fine grained fudgets, so to speak. Each object is
implemented with a number of fudgets. So each pin is a
separate fudget, for example. The objects reside in a
dynListF placed in a group window which controlled the wires. All
messages from the output pins of the objects are routed by the
group window's kernel and looped back into the
that the values seem to follow the wires.
Figure 96. A screen dump of the program FunGraph. Two sliders controls amplitude and frequency of a sine function defined in a cell. This function is then visualised in a graph. The bubble window (implemented by
bubbleRootPopupF) shows the type of the pin that the user points at for the moment, which happens to be the left input pin of the graph object. It has the type
Num -> Num, which is the type of the functions that the graph object can display.
The cell also shows the visual effect of one of the filter fudgets in the library, which is called the
shapeGroupMgr. The cell is currently being selected, which is indicated by a yellow, glowing border around it. This effect is achieved by wrapping a shaped window whose border tightly follows the fudgets inside it (in this case three pin fudgets and one
stringF). The border of the shaped window is yellow, and its width is set to zero when the object is deselected, or a couple of pixels as is the case with our cell. The
shapeGroupMgrensures that the shape of the yellow-border window tightly follows the contour of the wrapped fudgets by analysing the
ConfigureWindowcommands that they output.