On Microsoft Windows and Cocoa, browser-pane implements embedding of a basic web browser. It allows you to display HTML, navigate, refresh, handle errors, redirect to another URL, and so on.
On Microsoft Windows ole-control-pane implements embedding of OLE control components. You can also embed CAPI windows inside other applications using ole-control-component. You define an OLE control component (an Automation class that implements OLE Control protocols) using define-ole-control-component, and other (non-LispWorks) applications can use it.
On Cocoa, you can use cocoa-view-pane to display an arbitrary Cocoa View. You can specify the name of the Cocoa view class to create, and a function that is called to initialize it. The function cocoa-view-pane-view can be used to access the Cocoa view after it has been created.
The class cocoa-default-application-interface is a special class for defining application interfaces, which gives you control of application-wide properties which are not associated with specific windows. This includes the Application menu and default menu bar items, Dock context menu, application message processing and display state of the whole application.
slider is intended to be used in general for any pseudo-continuous quantity that the user should be able to manipulate.
scroll-bar is intended to be used for scrolling. Normally a scroll bar is specified simply by supplying the
:horizontal-scroll initarg when making the pane that needs scrolling, but in some circumstances an explicit scroll bar may be useful.
The class progress-bar implements a pane that shows the value of some quantity and is used to indicate progress in performing some task.
All of these classes inherit from range-pane, which defines the various values that are used and the orientation. In addition to the range-pane accessors, there is also the function range-set-sizes which you can use to set several values at the same time.
text-input-range is a special pane for entering numeric values, allowing the user to either type the number or use buttons to adjust the value.
There are three subclasses of editor-pane which handle Common Lisp streams.
A collector-pane displays anything printed to the stream associated with it. Background output windows, for instance, are examples of collector panes.
(setq collector (make-instance 'collector-pane :title "Example collector pane:")) (contain collector) (princ "abc" (collector-pane-stream collector))
The collector-pane has a mechanism to temporarily make it the child of a parent switchable-layout, so the user can see the output printed into it. The functions map-typeout and unmap-typeout do the switch, and the macro with-random-typeout can be used to do both switches and to also bind a variable to the stream of the collector-pane. This mechanism is used in the LispWorks IDE to show the output of Compile Buffer and other operations.
(contain (make-instance 'interactive-pane :title "Interactive pane"))
Note: interactive-pane is probably too difficult to use, due to the complexities involved with the interaction with the Editor. However, for its subclass listener-pane, the system deals with all these issues.
The listener-pane class is a subclass of interactive-pane, and allows you to create interactive Common Lisp sessions. You may occasionally want to include a listener pane in a tool (as, for instance, in the LispWorks IDE Debugger).
(contain (make-instance 'listener-pane :title "Listener"))
The listener-pane activity would normally be interacting with the user, but you can also emulate user interaction using listener-pane-insert-value. Note also that since listener-pane is a subclass of editor-pane, you can use the full power of the Editor on it.
shell-pane is a pane that runs a sub-process ("shell", "console") and allows the user to interact with it.
CAPI User Guide and Reference Manual (Windows version) - 01 Dec 2021 19:33:48