[To reply replace "Aaron.Sloman.XX" with "A.Sloman"]
I've added a draft incomplete experimental library with support for
dials with moving pointers to the existing RCLIB GUI package in Poplog.
The new library has been added to the Free Poplog web/ftp site, in a
draft experimental form, inviting comments.
Although RCLIB is implemented in Pop-11, its utilities can be
accessed via other Poplog languages through their interfaces to
Pop-11, e.g. Prolog, Common Lisp, Standard ML. I will not have time
to develop specific RCLIB interface libraries for those other
languages, but I welcome offers from anyone who wishes to.
The new dials have the unusual(?) feature that they behave a little like
sliders (also available in RCLIB). The dial will not only display
changes in some internal state: it is also possible to use the mouse to
change the dial and that will change an internal state, e.g. the value
of a variable, that a program can react to.
BACKGROUND
As previously announced, the Poplog system, with incremental compilers
for Pop-11, Prolog, Common Lisp and Standard ML is available free of
charge with full system sources and masses of documentation and
AI teaching material here:
http://www.cs.bham.ac.uk/research/poplog/freepoplog.html
or
ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/freepoplog.html
(By courtesy of the University of Sussex and ISL/SPSS)
(There's also a Scheme in Poplog developed by Robin Popplestone and used
for teaching at Umass.)
The Poplog system comes with a comprehensive collection of libraries for
interfacing to the X window system at various levels, including support
for Motif widgets. It also includes the Poplog Widget set, a collection
of C libraries that can be invoked from Pop-11 and therefore also from
the other Poplog languages. These provide access to X facilities
independent of motif. There's a Pop-11 library called rc_graphic
providing graphical tools using "relative coordinates".
RCLIB
For several years I have been adding to rc_graphic and the X
utilities an object oriented package called RCLIB which provides a
wide variety of tools for building graphical interfaces (including
tools used in my sim_agent toolkit for exploring agent
architectures). This package is also available from the free poplog
site. It does not make any use of motif and therefore can be used
with linux poplog without requiring motif or lesstif.
RCLIB makes heavy use of the Objectlass extension to Pop-11,
designed by Steve Leach, which makes it easy to design classes and
mixins, with sub-classes, sub-mixins etc. that are combinable with
various kinds of functionality using inherited methods. An overview
is in
http://www.cs.bham.ac.uk/research/poplog/rclib/help/rclib
RCLIB News
http://www.cs.bham.ac.uk/research/poplog/rclib/help/rclib_news
DIALS WITH MOVING POINTERS
RCLIB has recently been extended in various ways, including a draft
mechanism for creating dials with movable pointers where program
changes can cause the pointer to move and using the mouse to move
the pointer can cause program changes. A first draft implementation
of this is now available as part of the rclib package, and I welcome
comments and suggestions for improvements.
If you fetch and install the package as $poplocal/local/rclib, then
compile $poplocal/local/rclib/rclib.p you can do, in VED
ENTER teach rc_constrained_pointer
which introduces this creator procedure
rc_constrained_pointer(
x, y, orient, minang, maxang, len, width colour, bg) -> pointer;
The pointer (moving coloured pointer on a coloured background which
is a sector of a circle) can be given procedures for converting
between the stored angle and some stored value, as it inherits from
rc_informant described in HELP rclib.
It can also have an associated Pop-11 word or identifier whose value
is set whenever the pointer changes, and it can have reactor
procedures that link it to other GUI devices, e.g. rc_sliders, and
other user programs.
A dial can have any orientation and the background is not restricted
to being circular or semi-circular: any sector of a circle can be
used, as required to accommodate minang and maxang.
Planned extensions will include improved syntax for defining dials
conveniently (e.g. with converters and associated identifiers
specified), support for putting labels and tick marks on the dials
(which users can do now anyway using rc_graphic facilities) and also
extending the rc_control_panel library, described in
http://www.cs.bham.ac.uk/research/poplog/rclib/help/rc_control_panel
which takes a high level description of a control panel with
buttons, sliders, etc. and generates one that is automatically
formatted, subject to (simple) constraints provided in the
specification. This does not yet support the new dials, but will do
fairly soon.
Another recent change is a new class of "opaque" movable picture
object which overcome some of the oddities associated with using Xor
(or Equiv) for displaying movable objects. The new movable objects
are suitable for use where it is known that the background over
which they move is all of one colour.
These and other changes are recorded in
http://www.cs.bham.ac.uk/research/poplog/rclib/help/rclib_news
the new facilities are introduced briefly in
http://www.cs.bham.ac.uk/research/poplog/rclib/teach/rc_constrained_pointer
An overview of RCLIB is in
http://www.cs.bham.ac.uk/research/poplog/rclib/help/rclib
with code examples in
http://www.cs.bham.ac.uk/research/poplog/rclib/teach/rclib_demo.p
and various other help and teach files in the rclib library
The whole package, with lots of documentation, can be fetched in
http://www.cs.bham.ac.uk/research/poplog/rclib.tar.gz
ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/rclib.tar.gz
There is also a package, built on top of rclib, and also motif-free,
which provides a collection of pre-built extendable autoloadable
menu panels for driving the editor and Pop-11 available in
http://www.cs.bham.ac.uk/research/poplog/rcmenu.tar.gz
ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/rcmenu.tar.gz
RCLIB provides the graphical interface tools for the sim_agent
toolkit. described in this postscript/pdf slide presentation
http://www.cs.bham.ac.uk/~axs/misc/draft/toolkit.ps
http://www.cs.bham.ac.uk/~axs/misc/draft/toolkit.pdf
or here
http://www.cs.bham.ac.uk/~axs/cog_affect/sim_agent.html
I particularly welcome criticisms, comments suggestions. I am going
away to a conference and will not be back till Sunday night.
Aaron
===
Aaron Sloman, ( http://www.cs.bham.ac.uk/~axs/ )
School of Computer Science, The University of Birmingham, B15 2TT, UK
EMAIL A.Sloman AT cs.bham.ac.uk (ReadATas@please !)
PAPERS: http://www.cs.bham.ac.uk/research/cogaff/
TOOLS: http://www.cs.bham.ac.uk/research/poplog/freepoplog.html
|