Newsgroups: comp.archives Path: utzoo!utgpu!news-server.csri.toronto.edu!ox.com!emv From: berlage@gmdzi.gmd.de (Thomas Berlage) Subject: [xpert...] CLM2.0 and GINA app framework avail for CLOS (C++ soon) Message-ID: <1991Feb27.050553.25087@ox.com> Followup-To: comp.windows.x,comp.windows.x.motif,comp.object,comp.lang.lisp Keywords: Motif, CLM, GINA, CLOS, C++, generic application Sender: emv@ox.com (Edward Vielmetti) Reply-To: berlage@gmdzi.gmd.de (Thomas Berlage) Organization: GMD, Sankt Augustin, F. R. Germany References: <4149@gmdzi.gmd.de> Date: Wed, 27 Feb 1991 05:05:53 GMT Approved: emv@ox.com (Edward Vielmetti) X-Original-Newsgroups: comp.windows.x,comp.windows.x.motif,comp.object,comp.lang.lisp Archive-name: x11/common-lisp/clm/1991-02-26 Archive: expo.lcs.mit.edu:/contrib/CLM2.0.tar.Z [18.30.0.212] Original-posting-by: berlage@gmdzi.gmd.de (Thomas Berlage) Original-subject: CLM2.0 and GINA app framework avail for CLOS (C++ soon) Reposted-by: emv@ox.com (Edward Vielmetti) CLM 2.0 and GINA application framework for CLOS (C++ soon) ========================================================== An improved version of the CommonLisp/Motif binding CLM (CLM 2.0) and the first fully documented version of the GINA application framework (GINA 1.0) are now publicly available. GINA is implemented in CLOS on top of CLM. A GINA version for C++ will also be available soon. It will be demonstrated at the CeBIT fair in Hannover in March 91 (GMD booth in hall 3 C51-C55). The concepts of both GINA versions are identical, so the documentation might be interesting for C++ users as well. The software is available via anonymous ftp. It is stored in the ~ftp/contrib directory on expo.lcs.mit.edu (18.30.0.212). The distribution consists of the three files CLM+GINA.README, CLM2.0.tar.Z and GINA.tar.Z. The README file is also appended to this message. For people in Europe: We can also provide the software on Sun streamer tapes in tar format. Please send us a tape if you want to get the distribution. We can also provide CLM on Sun floppy disks. Mike Spenke, Project GINA GMD (German National Research Center for Computer Science) P.O. Box 1240 5205 Sankt Augustin 1 Germany email: spenke@gmdzi.gmd.de =============================================================================== CLM+GINA.README =============================================================================== This distribution contains: 1. CLM - A language binding for OSF/Motif and Common Lisp, Version 2.0 About 15 simple demo applications for CLM. 2. GINA - A User Interface Management System, Version 1.0. About 10 demos for GINA including a simple Finder. 3. An Interface Builder (IB) for GINA and OSF/Motif. This software is publicly available. See the COPYRIGHT files for details. Please read the abstracts below for a short description of what this software does. Full documentation (Postscript and LaTeX source) for CLM and GINA is contained in the distribution. CLM is a stand-alone package. GINA requires CLM. The IB requires GINA. REQUIREMENTS: ============= To run this software, the following software is required: - To run CLM: 1. UNIX, X11R3 or X11R4 server, X11R4 Xlib and Xt libraries (patch level 18), OSF/Motif 1.1 libraries and header files. 2. Allegro Common Lisp 3.1 or later or Sun Common Lisp 3.0 or later + CLX (optional) or A Symbolics machine with Genera OS and CLX (optional) - To run GINA and the IB: 1. All the stuff for CLM 2. CLX X11R3 or later 3. PCL (At least Victoria day PCL 5/22/89) This software has been tested on the following configurations: - Sun 4 (Sparc) with SunOS 4.0, X11R3/4 server, X11R4 Xlib, Motif 1.1, Allegro CL 3.1 and Sun CL (Lucid) 3.0 - Symbolics machines (ask spenke@gmdzi for details) with the Motif server and X server running on a SparcStation. It should not be too difficult to port the software to another environment if the following requirements are fulfilled: - X11R4 must be supported. - OSF/Motif 1.1 must be supported. - A Common Lisp with CLX and PCL/CLOS must be available. The Lisp should support multiple processes inside the Lisp world. INSTALLATION: ================= 1. Create a directory for the sources and cd to this directory. 2. uncompress and unpack the GINA tar file. 3. make a directory for CLM 4. uncompress and unpack CLM in this directory 5. Follow the directions in clm/INSTALL and gina/INSTALL. 6. In case of trouble: email baecker@gmdzi.gmd.de or spenke@gmdzi.gmd.de phone +2241 14-2078 or -2642 ============================================================================== CLM -- A Language Binding for Common Lisp and OSF/Motif Author: Andreas Baecker (baecker@gmdzi.gmd.de) CLM is a language binding for Common Lisp and OSF/Motif. It provides access to the functionality of the X Toolkit Intrinsics and the Motif convenience functions for Common Lisp. Client programs can use the OSF/Motif widget classes for their graphical user interface. Additionally, client programs can use the CLX graphics functions to draw into Motif widgets, especially into widgets of classes XmDrawingArea and XmDrawnButton. This functionality is only available when the CLX package was loaded before compiling CLM. CLM consists of three components: A Motif daemon, a Motif server, and a package of Common Lisp functions. Both the Motif daemon and server are implemented in ``C''. The Motif daemon runs on an arbitrary machine in the network and listens for Lisp processes requesting to use CLM. The Motif daemon forks Motif server processes which communicate with their Lisp processes over a network-transparent TCP/IP connection. The Motif server offers the X toolkit and the Motif functionality as remote procedure calls. The package of Common Lisp functions provides a high-level interface to these remote procedures. From the X server's point of view, the Motif server is an ordinary X client. The Motif server's functionality is to operate as a gateway between Motif and Common Lisp. The CLM functions send commands to the Motif server to create and modify widgets. The Motif server sends callbacks to the CLM application as a reaction to user actions suchs as moving a scrollbar's slider or pressing a push-button. In the context of this manual, the term CLM application is a single (lightweight) process which runs inside a Lisp process and uses CLM. The Motif daemon can serve an arbitrary number of Lisp processes. There may be an arbitrary number of concurrent CLM applications in a single Lisp process. The Motif daemon forks a Motif server process for each CLM application. This architecture protects concurrent processes from getting in trouble with the non-reentrant Motif code. The multiprocessing facility is an extension to Common Lisp and may not be available in all Lisp systems. In this case, it is only possible to run one CLM application per Lisp process. Lisp processes must not necessarily run on the same host as the Motif daemon. This allows CLM applications to run on hardware which is not capable of running X and Motif. CLM automatically chooses the right communication media for local and remote Lisp processes. The Motif server solution is very efficient and results in good performance at the user interface level. Redraw operations and geometry management operations are performed by the X Toolkit Intrinsics and the Motif widgets and are handled locally in the Motif server. User interaction like browsing through menu items is also handled by the Motif widgets and requires only the execution of C code. Interactions like clicking a push-button lead to the execution of callbacks and cause an interaction with Lisp. Communication time is typically small and doesn't cause any substantial delays. =============================================================================== GINA - the Generic Interactive Application Author: Mike Spenke (spenke@gmdzi.gmd.de) GINA is an object-oriented application framework written in CommonLisp and CLOS. It is based on CLM. The generic interactive application is executable and has a complete graphical user interface, but lacks any application-specific behaviour. New applications are created by defining subclasses of GINA classes and adding or overriding methods. The standard functionality of a typical application is already implemented in GINA. Only the differences to the standard application have to be coded. For example, commands for opening, closing, saving and creating new documents are already available in GINA. The programmer only has to write a method to translate the document contents into a stream of characters and vice versa. Motif widgets are encapsulated in CLOS objects. Instantiating an object implicitly creates a widget within OSF/Motif. Graphical output and direct manipulation with individual graphical feedback are also supported. The combination of framework concepts, the flexible Motif toolkit, and the interactive Lisp environment lead to an extremely powerful user interface development environment (UIDE). There are already a dozen demo applications including a Finder to start applications and documents, a simple text editor and a simple graphic editor, each consisting of only a few pages of code. GINA consists of three parts: the basic application framework (directory "gina"), a set of demo applications for the framework (directory "gina-demos") and an Interface Builder (directory "ib"). The GINA documentation is contained in the directory "documentation". The concepts of GINA are described in the file "introduction.ps". Further instructions and a roadmap to the available documentation can be found in the User Manual ("gina-manual.ps"). Both documents are PostScript files created on an Apple Macintosh. If you can't print them, you can use the unformatted ASCII versions of the files. To compile and load GINA, follow the instructions in gina/INSTALL. Testing instructions can be found in the User Manual. =============================================================================== An Interface Builder for GINA and OSF/Motif Author: Thomas Berlage (berlage@gmdzi.gmd.de) The IB can be used to design windows constructed from OSF/Motif components. It generates Lisp code to be used with GINA. Features: ========= - Nearly all widget classes of GINA can be used in windows. - Dialog boxes are constructed bottom-up by first creating the basic widgets like buttons and labels etc. and then grouping them together into RowColumns, forms etc. - All relevant widget resources can be set interactively - The output of the IB is a definition of a new composite widget class with a fixed structure. - Code for new dialog classes and constructor functions can be generated, saved, loaded and compiled. This code can be used with GINA applications. - Unlimited Undo/Redo for most commands (Create, Grouping, Clear ...) Future Development: =================== The IB is a usable tool to design the window layout. A future version will improve the handling, and will allow the specification of a large part of the connection between the interface and the application. Brought to you by Super Global Mega Corp .com