This is the technical documentation for the OpalWin library (version 1.1a).
OpalWin provides an experimental graphical user interface library for Opal applications. It is based on Tcl/Tk (version 8.0), has an interface to substantial share of Tk's facilities, and adds OpalWin-specific functionality.
OpalWin uses a communication approach to deal with the reactive nature of graphical user interfaces. The communication model is based on agents which concurrently execute a monadic command, achieving synchronization via so-called service access points and via agent termination.
This document was generated by the literate programming system
Dosfop (Documentation System for Opal). Dosfop
provides a compromise between the convenient automatic generation of
documentation and the necessary manual intervention of the
developer. However, some aspects of this documentation, in particular
the order in which structures of a subsystem are printed out can not
be controlled manually in the current Dosfop version. For this
reason the textual order of this documentation should not be taken as
the appropriate reading order. A "tour" is provided which suggests
an appropriate reading order. The tour is designed in particular for
use with a hypertext reader such as netscape
or
mosaic
.
Note: the technical documentation for the interfaces to OpalWin is still in a draft stage (though more so than the implementation). Some remarks on how to use this documentation:
The basic structures of OpalWin are the following:
WinView
provides the sort of views, combinators
on views and some basic view types such as frames and labels
(see WinView).
WinConfig
provides the sort of configurations,
combinators on configurations and a couple of general configurations
related to colour, relief and so on (see WinConfig).
WinFontMetrics
provides operations to query the
metrics (height, depth, lineskip) of a font (see WinFontMetrics).
WinWindow
provides the sort of windows,
configurations on windows and display of windows
(see WinWindow).
WinAppl
provides functionality attributed
to the entire application, such as the screens properties,
option defaults and so on
(see WinAppl).
WinEvent
provides the binding of events to
views or individual items displayed in views
(see WinEvent).
WinTag
provides tags, which allow
individual items of displayed views to be addressed
(see WinTag).
WinImage
supports the management of
images.
(see WinImage).
Basic views are realized by the following structures:
WinButton
provides all kinds of button views
(see WinButton).
WinText
provides all kinds of text views
(see WinText).
WinCanvas
provides canvas views
(see WinCanvas).
WinScrollbar
provides scrollbars
(see WinScrollbar).
WinMenu
provides pop-up menus and pop-up menu
selection-button views.
(see WinMenu).
Gates are realized by the following structures:
WinEmitter
provides emitters,
which are used to connect buttons to the applications logic
(see WinEmitter).
WinRegulator
provides regulators for
controlling the configuration of a displayed view
(see WinRegulator).
WinSelector
provides selectors, which
allow automatic synchronization of the configuration of a view
depending on a value stored in the selector and control over
check and radio buttons
(see WinSelector).
WinTextEditor
allows a displayed
text view to be controlled
(see WinTextEditor).
WinCanvasEditor
allows a displayed
canvas view to be controlled
(see WinCanvasEditor).
WinScroller
allows scrollbars
and scrollable views to be controlled
(see WinScroller).
The internal implementation is based on the following structures:
WinInternal
defines underlying data-type
representations and basic operations
(see WinInternal).
WinTclTk
provides the interface to TclTk
(see WinTclTk).
WinCanvasEditor Windows WinTextEditor
next node: WinTclTk,
prev node: Tk,
up to node: Subsystem Tools