baecker@gmdzi.UUCP (Andreas Baecker) (03/12/90)
Following is a short description of our interface between Common Lisp and OSF/Motif and our application framework GINA. If your interested in more info about it, please send a request including your postal address to baecker@gmdzi. ============================================================================== Andreas Baecker GMD (Gesellschaft fuer Mathemathik und Datenverarbeitung mbH) (The German National Research Center for Computer Science) Schloss Birlinghoven D-5205 Sankt Augustin 1 West Germany email: baecker@gmdzi phone: (022 41) 14 20 78 ============================================================================== CLM -- An Interface between Common Lisp and OSF/Motif CLM is an interface solution between Common Lisp and OSF/Motif. It offers the full functionality of the X toolkit to the Lisp programmer. All widget classes of OSF/Motif are integrated into CLM. CLM is designed to be easily portable across different hardware platforms and Lisp systems. New widget classes can be easily integrated into the interface. CLM consists of a Motif server implemented in C which contains the Motif widgets and offers its services on a network-transparent TCP/IP protocol. A library of Lisp functions provides a high level interface to the protocol. Client programs can use CLM functions for creating and manipulating widgets as well as CLX functions for drawing into widgets (XmDrawingAreaWidgetClass and XmDrawnButtonWidgetClass). Multiple Lisp processes using OSF/Motif can run in a single Lisp environment. The Motif server, the X server and the Lisp environment can run on distinct machines in a network. CLM currently runs with Lucid Common Lisp on Sun-3 and Sun-4, Allegro Common Lisp on Sun-4 and A/UX and on Symbolics machines with a remote UNIX host for the X server and the Motif server. CLM is already used in various research projects at the GMD as well as for the user interface of the BABYLON expert system product. ============================================================================== An Overview of GINA - the Generic Interactive Application Michael Spenke and Christian Beilken Gesellschaft fuer Mathematik und Datenverarbeitung mbH (German National Research Center for Computer Science) P.O. Box 1240 D-5205 Sankt Augustin 1 Federal Republic of Germany Email: spenke@gmdzi.uucp and cici@gmdzi.uucp Abstract ======= GINA is an object-oriented application framework written in CommonLisp and CLOS. It is based on an interface between CommonLisp and the OSF/Motif software. 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. Graphic 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 leads to an extremely powerful user interface development environment (UIDE). There is 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. Even the first version of an interface builder, which treats Motif widgets like MacDraw objects, could be completed within a few days. The interface builder is not just a demo, but an important component of our UIDE: The resources of each widget can be modified by a dialog box, and Lisp code to be used in connection with GINA can be generated. A version of GINA for C++ is currently under development. Keywords: Object-oriented application framework, generic application, OSF/Motif, X Window System, CommonLisp, CLOS, interface builder, user interface development environment.