cerbone@curie.orst.EDU (cerbone giuseppe) (10/23/90)
I am looking for an implementation of a "base" set of classes to handle, in an Object Oriented fashion, a graphical interface for Lisp under X11R4. If you are familiar with it, I am looking for a set of classes that will have the same functionalites that InterView provides for C++. Any suggestions or references are appreciated. Please, e-mail and I shall summarize. Thanks -- Giuseppe Giuseppe CERBONE | Internet: cerbone@cs.orst.edu OREGON STATE UNIVERSITY | CSNET : cerbone%cs.orst.edu@relay.cs.net Computer Science Department | UUCP : {hp-pcd, tektronix}!orstcs!cerbone Corvallis, OR 97331 (USA) | ------------------------------------------ Phone (503) 737 - 5568 (office) ; (503) 753 - 7720 (home)
mayer@hplabsz.HPL.HP.COM (Niels Mayer) (10/23/90)
> I am looking for an implementation of a "base" set of classes to handle, > in an Object Oriented fashion, a graphical interface for Lisp under X11R4. > > If you are familiar with it, I am looking for a set of classes that will have > the same functionalites that InterView provides for C++. The closest thing matching your description is GARNET from Carnegie Mellon University... it provides its own set of UI interaction classes, and its own object system supporting UI construction from the base classes. GARNET is free but requires a licence, and it requires a big lisp system. See the message appended at the end of this posting for details. Since you posted this to comp.lang.lisp.x, you may be interested in WINTERP, which is based on xlisp. It is similar to InterViews insamuch as it provides a set of widget classes defined by OSF/Motif UI toolkit and provides OO access to these widgets. The widgets are similar to InterViews interactors, however they are far less general & generalizable. To compensate for that, there exist a large number of different classes whose instances provide frequently needed UI interaction objects -- e.g. text editors, labels, toggle buttons, push buttons, browsers, etc and simple constraint-based layout manager objects allowing for the creation of UI panels, dialogue boxes, and menus. If you are satisfied with reusing highly flexible-but-standard UI objects rather than custom-making your own UI interactors each time, then Motif will be good enough. If you will be needing special UI objects (e.g. for building graph-editors & drawing programs), then InterViews is the way to go. That's not to say that special UI objects cannot be built in Motif -- they can, but using C + the X toolkit is not as clean as using C++. WINTERP version 1.01 is available free by anon. ftp from expo.lcs.mit.edu. version 1.02 available real soon now, as will be the Motif 1.1 version. Here's more info: ============================================================================== WINTERP: An object-oriented rapid prototyping, development and delivery environment for building user-customizable applications with the OSF/Motif UI Toolkit. ------------------------------------------------------------------------------ WINTERP is a Widget INTERPreter, an application development environment enabling rapid prototyping of graphical user-interfaces (GUI) through the interactive programmatic manipulation of user interface objects and their attached actions. The interpreter, based on David Betz's XLISP, provides an interface to the X11 toolkit Intrinsics (Xtk), the OSF/Motif widget set, primitives for collecting data from UN*X processes, and facilities for interacting with other UN*X processes. WINTERP thus supports rapid prototyping of GUI-based applications by allowing the user to interactively change both the UI appearance and application functionality. These features make WINTERP a good tool for learning and experimenting with the capabilities of the OSF/Motif UI toolkit, allowing UI designers to more easily play "what if" games with different interface styles. WINTERP is also an excellent platform for delivering extensible or customizable applications. By embedding a small, efficient language interpreter with UI primitives within the delivered application, users and system integrators can tailor the static and dynamic layout of the UI, UI-to-application dialogue, and application functionality. WINTERP's use of a real programming language for customization allows WINTERP-based applications to be much more flexible than applications using customization schemes provided by the X resource database or OSF/Motif's UIL (user interface language). An environment similar to WINTERP's already exists in the Gnu-Emacs text editor -- WINTERP was strongly influenced by Gnu-Emacs' successful design. In Gnu-Emacs, a mini-Lisp interpreter is used to extend the editor to provide text-browser style interfaces to a number of UN*X applications (e.g. e-mail user agents, directory browsers, debuggers, etc). Whereas Emacs-Lisp enables the creation of new applications by tying together C-implemented primitives operating on text-buffer UI objects, WINTERP-Lisp ties together operations on graphical UI objects implemented by the Motif widgets. Both achieve a high degree of customizability that is common for systems implemented in Lisp, while still attaining the speed of execution and (relatively) small size associated with C-implemented applications. Other features: * WINTERP is free software -- available via anonymous ftp from expo.lcs.mit.edu:contrib/winterp/winterp-1.01.tar.Z * Portable -- runs without porting on many Unix systems. * Interface to gnuemacs' lisp-mode allows code to be developed and tested without leaving the editor; * Built-in RPC mechanism for inter-application communications; * XLISP provides a simple Smalltalk-like object system. * OSF/Motif widgets are real XLISP objects -- widgets can be specialized via subclassing, methods added or altered, etc. * Automatic storage management of Motif/Xt/X data. * Contains facilities for "direct manipulation" of UI components; You may obtain the current source, documentation, and examples via anonymous ftp from host expo.lcs.mit.edu: in directory contrib/winterp you will find the compress(1)'d tar(1) file winterp.tar.Z. If you do not have Internet access you may request the source code to be mailed to you by sending a message to winterp-source%hplnpm@hplabs.hp.com or hplabs!hplnpm!winterp-source. There is also a mailing list for WINTERP-related announcements and discussions. To get added to the list, send mail to winterp-request%hplnpm@hplabs.hp.com or hplabs!hplnpm!winterp-request. ------------------------------------------------------------------------------- Niels Mayer -- hplabs!mayer -- mayer@hplabs.hp.com Human-Computer Interaction Department Hewlett-Packard Laboratories Palo Alto, CA. * ============================================================================== ============================================================================== Newsgroups: comp.windows.x,comp.lang.lisp,comp.graphics,comp.cog-eng Subject: Lisp, X Toolkit Available for free Keywords: Lisp, X, Toolkit, Garnet, User Interface Message-ID: <8543@pt.cs.cmu.edu> Date: 22 Mar 90 15:40:52 GMT Organization: Carnegie-Mellon University, CS/RI Lines: 87 Xref: hplabsz comp.windows.x:19723 comp.lang.lisp:2811 comp.graphics:10296 comp.cog-eng:1547 Posted: Thu Mar 22 07:40:52 1990 This message contains the announcement of the Garnet toolkit, which was first distributed last December, as well as the announcement of a meeting on Garnet at the SIGCHI Conference in Seattle. -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- Announcing the Availability of Garnet: Generating an Amalgam of Realtime, Novel Editors and Toolkits The Garnet research project in the School of Computer Science at Carnegie Mellon University is happy to announce the release of our toolkit for general use. The Garnet Toolkit helps to implement highly-interactive, graphical, direct manipulation programs for X/11 in CommonLisp. These programs typically have a number of graphical objects (up to about 2500) on the screen that can be manipulated by the mouse and keyboard. Typical applications of the Garnet toolkit include: drawing programs such as Macintosh MacDraw, iconic file manipulation programs such as the Macintosh Finder, box and arrow diagram editors such as graphs and PERT charts, graphical programming languages, board game user interfaces, simulation and process monitoring programs, user interface construction tools, some forms of CAD/CAM programs, etc. The Garnet Toolkit does not help with text editing (except for small labels or property-sheet fields). Important features of the toolkit include: * Coverage of the entire user interface, including the contents of the applications' windows. * Look-and-feel independent, while still providing a high-level of support. A set of "widgets" is provided for those who do not wish to define a look-and-feel. * An object-oriented architecture using a prototype-instance model. * Constraints integrated with the object system, so that any slot (instance variable) of any object can be declared as a "formula" which will be re-evaluated whenever there is a change in any other objects it references. * Automatic graphic object updating. Graphical objects are retained and remember their position on the screen. Whenever any property changes, they erase and redraw themselves, along with any other damaged objects. * Separation of input handling from graphics programming, through the use of "interactor" objects, which encapsulate interactive behaviors. * Hiding all of X/11. The programmer using the Garnet Toolkit never makes Xlib (CLX) calls or receives Xlib events. In the future, high level tools including a sophisticated Interface Builder, called Lapidary, will be released. Garnet is implemented on top of the CLX interface to X/11, and will work for any CommonLisp. So far, we have it working on Allegro, Lucid, and CMU CommonLisps on various hardware. There is very little implementation-specific code, so porting to other platforms should be simple. Garnet does NOT use CLOS or any existing X toolkit (such as Xtk or Motif). The toolkit comes with debugging tools, complete reference manuals, and a tutorial. Garnet is being developed under a grant from DARPA. Papers about Garnet have appeared at OOPSLA (1988), SIGCHI (1989 & 1990), UIST (1989), and the X Conference (1990). Garnet source and binaries are available for free, but you need to have a license from CMU. Already, over 20 sites are licensed and over 100 have expressed interest. Send requests (including a full work or university physical mail address) for additional information or a license to: Brad A. Myers School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213-3890 (412) 268-5150 brad.myers@cs.cmu.edu