Static functions provide management for the DVI Controls window. A thread is used to hide the window after the user leaves an IDVI page. This ensures that if they are leaving one IDVI page on their way to another, the controls window stays up.
Instance functions manage the construction of the DVI Controls window, forward messages to the MessageCanvas component of the window, and manage the magnified view.
Note that idvi.display.ZoomPanel handles most of the features of the magnified view. We can't just scroll a panel around inside another to get panning, because of terrible problems with flicker.
A frame which forwards WINDOW_DESTROY and KEY_DOWN events to a Controls object.
A ControlFrame contains a NavigationPanel, a magnified view of the document, and a MessageCanvas.
A canvas which displays a message. Preferred size is just tall enough to hold all characters of the message font, and just wide enough to hold the default message.
A thread is used to make the message time out and return to the default message.
A panel which maintains the navigation buttons at the top of the DVI Controls window. The custom layout manager awt.RegularLayout is used to control the positioning of the buttons.