[Comp.Sci.Dept, Utrecht] Note from archiver<at>cs.uu.nl: This page is part of a big collection of Usenet postings, archived here for your convenience. For matters concerning the content of this page, please contact its author(s); use the source, if all else fails. For matters concerning the archive as a whole, please refer to the archive description or contact the archiver.

Subject: Motif FAQ (Part 7 of 9)

This article was archived around: 23 May 2006 04:24:20 GMT

All FAQs in Directory: motif-faq
All FAQs posted in: comp.windows.x.motif
Source: Usenet Version

Archive-name: motif-faq/part7 Last-modified: 1 FEB 2002 Posting-Frequency: irregular Organization: Kenton Lee, X/Motif Consultant, http://www.rahul.net/kenton/ URL: http://www.rahul.net/kenton/mfaq.html Version: 8.1
----------------------------------------------------------------------------- Subject: 228) TOPIC: LANGUAGE BINDINGS ----------------------------------------------------------------------------- Subject: 229) What is ViewKit? Is there a free version? [Last modified: Jun 98] Answer: ViewKit is an enhanced version of the C++/Motif framework that Doug Young describes in his book *Object-Oriented Programming with C++ and OSF/Motif* (Prentice-Hall). Viewkit is now available for a variety of platforms from ICS. The Linux version is free. Their web site include free technical papers and ordering information: http://www.viewkit.com/ There is also a inexpensive ViewKit clone from the Hungry Programmers: http://www.hungry.com/cgi-bin/unjava/products/viewkit/ ftp://ftp.hungry.com/pub/hungry/viewkit Allen Fogleson (foggie@dtx.net) writes: I have compiled [the Hungry Programmers' version] on my linux system using RedHat Motif 2.0, There is no documentation, but the technical paper on the SGI site should be enough to get most people going. There is very little in the way of documentation either, so I should note that if you are using Motif2.0 you must either #define USE_MOTIF20 in a header file, or add it to the CXXFLAGS, and CFLAGS line of the makefile or you will get many errors when compiling the combo box bindings. Also for some reason the viewkit did not install correctly for me and I ended up hand installing it myself. I have compiled some simple applications with it, and it seems to be working fine. It is intended to follow the SGI API. They are working on a programmers guide and a reference manual for the product. All in All this is a very affordable (spelled cheap) answer to C++ development of OSF/Motif Apps. ----------------------------------------------------------------------------- Subject: 230) Is there a C++ binding for Motif? [Last modified: Nov 98] Answer: This answer is out-of-date and will probably be dropped in the near future. I recommend that you study other sources, such as trade magazines, for more current information on products. See also the previous answer concerning ViewKit (from Doug Young and the Hungry Programmers. (Added Oct. 95) YACL is a freely available C++ class library that includes GUI classes based on the Model-View-Controller paradigm. The class protocols are designed in a platform independent manner, and are implemented under Motif 1.2 as well as under Microsoft Windows and OS/2. This makes it possible to maintain a single code base for an application that runs on all three platforms. YACL also includes a suite of container and data storage classes for general-purpose programming. YACL is available from ftp.cs.sc.edu in pub/yacl. For more information, see the web page: http://www.cs.sc.edu/~sridhar/yacl.html. Thanks to M. A. Sridhar, sridhar@usceast.cs.sc.edu. (Added Sept. 95; URL updated Jan. 96) Amulet User Interface Toolkit from Brad A. Myers, Rich McDaniel, Andrew Mickish, Alex Klimovitski, Carnegie Mellon University. Amulet is a user interface software environment for C++ to support future user interface software research. This environment, which will be portable across X/11, Microsoft Windows, and the Macintosh, is designed to be very flexible: parts can be replaced and new technologies and widgets can be easily created and evaluated. Built-in support will be provided for direct manipulation, multi-font text editing, gesture recognition, speech recognition, 2-D and 3-D animations, visualizations including maps and large data sets, world-wide-web browsing and editing, and multiple people interacting with the system at the same time (CSCW). Another goal is to be useful for students, which means that Amulet must be easy to learn. Finally, the system will provide sufficient performance, robustness and documentation so it will be useful for general user interface developers. See: http://www.cs.cmu.edu/Web/Groups/amulet/amulet-home.html Answer: ObjectBuilder by Openware Technologies, Inc. is a complete C++ implementation of Motif. Kris Gottschalk (kris@boulder.openware.com) wrote [I've condensed his features list and a few others details...ksall@cen.com]: Since Solbourne began developing OI around 1988, it was purchased by ParcPlace Systems (at which time ObjectBuilder was developed) and as of Oct. '94, ObjectBuilder/OI was purchased by Openware Technologies, Inc from ParcPlace. OI is now on release 4.6 and has a customer base of about 3,000 seats. [ObjectBuilder's features include: Visual Subclassing, Dynamic Reparenting, Customizable Main Window, Xt Kit, Resource Editors, Flexible Geometry Management, Customizable palattes and attribute editors, 16 Bit Internationalization, Mnemonics and Accelerator Editor, Motif or OPEN LOOK look-and-feel switch, Help Editor.] ObjectBuilder is currently available on Sun/Solaris, HP 9000/700 and IBM AIX RS6000. We will also be supporting SGI, DEC Alpha, Sco UNIX, Unysis Unixware and NCR SVR4 throughout the first half of 1995. And our anxiously awaited Windows NT platform will be available in late 1995. In addition, Openware will be launching a full array of C++ development tools including an Object Repository, Debugger, OI Table Widget and Adapter. Also anticipate an ObjectBuilder upgrade 2.6/4.6 in April and a new ObjectBuilder release 3.0/5.0 in the summer. If you have any more interests or questions or would like to set up a evaluation of ObjectBuilder, please contact: Kris Gottschalk Account Manager Openware Technologies, Inc. Object Technologies Business Unit 4909 East Pearl Circle Suite 200 Boulder, CO 80301 Phone: 303-440-9991 x4224 Fax: 303-440-9934 email: kris@boulder.openware.com Answer: Wind/U implements MFC (Microsoft Foundation Classes) on Unix using Motif. Bristol Technology, Inc. (203) 438-6969, info@bristol.com. Microsoft Visual C++ together with Wind/U can be used to create Motif applications. According to J. Daniel Smith <dan@bristol.com>, here's how it works: you create the application on the PC using MSVC++ and then port it to Unix (or VMS) using Wind/U. Since Wind/U uses X and Motif to implement the Windows API, you end up with a true Motif application running native on the target platform. Answer: WWL is a library which defines C++ classes around X Toolkit Widgets. It is intended to simplify the task of C++ code writers when using the Toolkit by providing them with C++ objects, methods, type checking and several utility functions and classes. WWL has been tested under SunOs4.0.3 on sun3 and sun4, HPUX version 6.5 and 7.0 and Ultrix 4.0 on DECstation 3100 and 5000. It is expected to work on most other UNIX systems without too many problems. WWL is distributed as a tar file with all the source, documentation and example. The file is available using anonymous ftp from ftp.x.org /R5contrib/WWW-1.2.tar.Z ( ftp://ftp.x.org/R5contrib/WWW-1.2.tar.Z ) Answer: Rogue Wave Software has a C++ binding for Motif called View.h++. "View.h++ is a complete C++ interface to OSF/Motif. It doesn't just encapsulate it, but also includes a set of classes that provide a level of abstraction above Motif, thus simplifying menu and dialog creation, XmStrings, XmFontLists, etc. View.h++ supports a Model- View-Controller architecture, allowing for an even more object-oriented interface design. Includes a copy of Rogue Wave's Tools.h++ (foundation class library)" Rogue Wave also offers full support for View.h++. It is currently available for Sun Sparc, IBM RS/6000, HP 9000/700 series, SCO, Intel SVR4 ESIX. Please call for Silicon Graphics and DEC Ultrix status. For additional information, please contact: Matt Steinauer Rogue Wave Software, Inc. P.O. Box 2328 Corvallis, OR 97339 Phone: (503)754-3010 Fax: (503)757-6650 email: matts@roguewave.com Answer: Builder Xcessory 3.0, an interface builder from ICS, allows the user to visually build C++ classes from Motif and user-written widgets. C++ code is generated in the "Doug Young" fashion. (Doug actually worked on this project with ICS.) C and UIL can also be generated. Integrated Computer Solutions, Inc. (ICS) 201 Broadway, Cambridge, MA 02139 USA info@ics.com 617/621-0060 Answer: Andreas.Baecker@gmd.de wrote: The GINA++ application framework contains an encapsulation of the OSF/Motif widg et classes and the Xt functionality into C++ classes. Its functionality is comparab le to that of the ULowell binding and the WWL. Additionally, it provides an easy-to -use framework for modeling new composite and primitive widget classes, plus an application framework similar to ET++ or MacApp build on top of it. The binding may be used independently from the framework classes. GINA++ is available through anonymous ftp from ftp.gmd.de in the directory /gmd/ginaplus. Documentation about the Motif binding has been published in the X Resource Journal, Number 2, 1992, Pages 106-130. The binding compiles with AT&T C++ 2.1 and GNU G+ + 2.1 and has been tested on SunOS 4.1.[12], X11R4 and Motif 1.1.3. Answer: Motif++ is a library that defines C++ class "wrappers" for the widgets defined in the X11R5 OSF/Motif-1.2 widget library. It also supports X11R4/Motif-1.1 as well. Motif++ is also an application toolkit that provides other tools in conjunction with the widget wrapper classes. It has support for the Xbae widget set, plus other widgets. It has Imake support, and lots of test files. Motif++ also has alot of contributed software. Motif++ is very similar to other public domain widget libraries such as The Widget Wrapper Library (WWL) and the C++ Binding for OSF/Motif developed at the University of Lowell. The two latter libraries are the result of much larger efforts. Available via anonymous ftp: ftp://src.doc.ic.ac.uk/packages/motif++/motif++.30.jul.94.tar.gz The /packages/motif++ also contains documentation. For more information, contact Ronald van Loon (rvloon@motif.xs4all.nl). There is also mailing list for Motif++: motif++@motif.xs4all.nl To join, send email to the administrative address: motif++-request@motif.xs4all.nl Answer: C++ Report, a magazine published by SIGS Publications, now regularly publishes articles on X, Xt and Motif vs. C++ written by Ronald van Loon. Answer: Xm++ is a user interface framework for the C++ language built upon X11 and the X-Toolkit. It is designed to be a simple and intuitive programming interface to access the functionality of commonly used widgets. Xm++ was initially created for the Motif widget set, now support for the Athena widgets was added. Applications created with Xm++ run in both environments without changes, although many nice features are only available when using Motif. Xm++ is available on: ftp.x.org as: /R5contrib/Xm++.0.53.tar.Z ( ftp://ftp.x.org/R5contrib/Xm++.0.53.tar.Z ). Answer: (updated November. 98) wxWindows is a toolkit for platform-independent GUI programming in C++. It consists of several class libraries and tools. wxWindows has been made freely available with no commercial restrictions. For more information, see http://wxwin.home.ml.org Answer: (updated Sept. 95) Intersolv now markets, maintains, and enhances C++/Views (formerly from Liant). The C++/Views solution provides an extensible object class library with visual development environment. See http://www.intersolv.com/cpls.html. Thanks to Uwe Baemayr (uwe@liant.com) for the correction. Answer: Quest has ObjectViews. Answer: Doug Young has written a book "Object Oriented Programming with C++ and Motif", Prentice-Hall ISBN 0-13-630252-1 about using C++ without requiring one of these toolkits. Unfortunately, this library (last released in 9/92) has the same name as the one by Ronald van Loon (rvloon@motif.hacktic.nl). Motif++1.2 is a library that defines C++ class "wrappers" for the widgets defined in the OSF/Motif-1.1 widget library. Motif++1.2 is also an application toolkit that provides other tools in conjunction with the widget wrapper classes. One enhancement of Motif++1.2 beyond its wrapper classes are the addition of an "application" class which takes care of the low-level tasks including initializing X, creating and managing one or more top-level shells, and entering the main event loop. Another feature of Motif++1.2 is its integration with The Widget Creation Library (Wcl). Motif++1.2 makes it easy to initialize Wcl and create C++ wrappers for desired widgets in the widget tree. Availability: anonymous FTP at ftp.arc.umn.edu (, file pub/Motif++1.2.tar.Z. Contact Paul Felix, felix@ahpcrc.umn.edu or pfelix@vx.cis.umn.edu. submitted by: mvc!biggers@duke.cs.duke.edu ( Mark R. Biggers ) ----------------------------------------------------------------------------- Subject: 231) How can I avoid C++ String class and typedef char *String conflicts? We're using the USL C++ Standard Components which has the String class. This, however, conflicts with the typedef char *String found in <X11/Intrinsic.h> [Last modified: Oct 94] Answer: This is very simple to workaround. I agree that it is "wrong" but all you need to do is: #define String XtStringType #include "all the X files" #undef String This will translate the offending symbol. Thanks to Doug Rand <drand@sgi.com> ----------------------------------------------------------------------------- Subject: 232) How can I have a C++ member function in a callback? [Last modified: Oct 94] Answer: There are three common user problems with C++ callbacks. First, make sure you use the correct function prototype for the function declarations. Second, the callback function must be declared as a static member of the class. Third, when registering it with XtAddCallback(), you must use its full signature. For example: (from Ken Lee, http://www.rahul.net/kenton/) class MyClass { void createWidgets(); static void myButtonCB(Widget, XtPointer, XtPointer); }; void MyClass::createWidgets() { w = XmCreatePushButton(...); XtAddCallback(w, XmNactivateCallback, &MyClass::myButtonCB, (XtPointer) this); } void myButtonCB(Widget w, XtPointer clientData, XtPointer callData) { MyClass *myclass = (MyClass *) clientData; } Note that the "this" pointer is used as the client data. This technique is popular, but not required. Motif++ has a nice tutorial summarizing mechanisms (Ronald van Loon, rvloon@motif.xs4all.nl). See his articles in the September, 1994 and Nov/December, 1994 issues of C++ Report. Doug Young's book deals extensively with one of these. The problem is that you don't get the object when you just use the function as a callback. You need to pass the object as a pointer through as the client_data. (use "this" as the client_data.) Then you can retrieve the object's address, and dereference from there. For example (Leo O'Donnell, Email: leo@avs.com), class MyButton { public: MyButton (Widget parent, const char *name) { _button = XtVaCreateManagedWidget ( name, xmPushButtonWidgetClass, parent, NULL, 0); XtAddCallback ( _button, XmNactivateCallback, &MyButton::activateCB, (XtPointer) this); } ~MyButton () { XtDestroyWidget (_button); } private: Widget _button; static void activateCB (Widget, XtPointer, XtPointer); }; void MyButton::activateCB (Widget, XtPointer thisBtn, XtPointer) { MyButton *btn = (MyButton *) thisBtn; // OK you've got the button instance now. Do some stuff with it! } ----------------------------------------------------------------------------- Subject: 233) Is there a Common Lisp binding for Motif? [Last modified: Oct 94] Answer: Try CLM. This includes a toolkit demon (in C) that takes a widget description (with callbacks), and forks a new process for each Motif application (which can be just a single menu, or whatever). Lisp can then continue running, with a separate lightweight lisp process handling the connection & callbacks. In North America & net environs, CLM-2.3.tar.Z is available from ftp.x.org. There is also CLIM, the Common Lisp Interface Manager. It provides access to motif and other toolkits and window systems. Here is some blurb: "Version 2.0 of the Common Lisp Interface Manager (CLIM) provides access to Motif. CLIM is the emerging standard for GUI development in Common Lisp. It offers a set of high-level facilities that enable rapid construction of user interfaces. Applications written using CLIM are portable across a variety of window systems and toolkits. For example, on the X window System, both Motif (OSF/Motif) and Openlook (OLIT) are supported. CLIM accesses the toolkit directly rather than emulating the look and feel." CLIM is available from a variety of Common Lisp vendors including Symbolics and Franz Inc. (info@franz.com). ----------------------------------------------------------------------------- Subject: 234) Is there an Ada binding for Motif? (Part 1 of 2) [Last modified: Jan 96] Answer: Most of the information in this answer (parts 1 and 2) is probably very dated by now. If anyone wants to provide updates, I'll include them. In the meantime, Ada users are encouraged to visit the Ada Information Clearinghouse (AdaIC) at: http://sw-eng.falls-church.va.us/AdaIC/ (The Jan. 96 change updates the information provided by Thomson Software Products.) Answer: Integrated Computer Solutions, Inc. (ICS) supplies Ada bindings to Motif for a number of platforms and Ada compilers. ICS also provides Builder Xcessory, a Motif interface builder, which outputs Ada code usable with the Ada bindings. The product family is known collectively as the Ada Xcessories. Integrated Computer Solutions, Inc. (ICS) 201 Broadway, Cambridge, MA 02139 USA info@ics.com 617/621-0060 Information on Ada bindings to Motif and other services (such as SQL and POSIX) can be found in a document maintained by the Ada Information Clearinghouse. The report can be found at host: ajpo.sei.cmu.edu loc: /public/ada-info/bindings.hlp.* access: anonymous ftp The suffix to the file (indicated above with an asterix) is the date of the latest update to the document. For example, the full name of the report updated on 14 June 1993 would be /public/ada-info/bindings.hlp.14Jun93. The file is ASCII. ------ Included File [...Excerpted from the AdaIC report bindings.hlp.14Jun93...] [...Updates can be found on ajpo.sei.cmu.edu, in the ...] [...file /public/ada-info/bindings.hlp.* The suffix ...] [...is always the date of the lastest version to the ...] [...report. ...] SECTION 12 X-Window System: OSF Motif and Open Look Available Ada Bindings 12.1 Description and Standardization Efforts The X-Window System is a network-transparent window system. It supports one or more screens containing overlapping windows or subwindows. X display servers distribute user input to and accept output requests from various client programs located either on the same machine or elsewhere in the network. OSF Motif (Open Software Foundation/Motif) is a graphical user interface from OSF that provides a Presentation Manager look and feel for applications running on any system with X Window version 11. It conforms to POSIX, ANSI C and X/Open's XPG3 standards. 12.2 Resources Available from Software Reuse Libraries/Repositories ASSET (Updated: November 1992) The following information was taken in its entirety from the ASSET Library Repository Catalog, October 9, 1992. For more information on ASSET, see Appendix C. INTERFACE TO THE X WINDOW SYSTEM VERSION_NUMBER : 1.1 DEVELOPED_BY : SAIC RELEASE_DATE : 29-SEP-88 UNIQUE_IDENTIFIER : ASSET_A_240 ALTERNATE_NAME : SAICX2 ASSET_TYPE : SOFTWARE CODE FUNCTIONS : INTERFACE, BIND OBJECTS : ADA, X WINDOWS KEYWORDS : STANDARDS, BINDINGS COLLECTION : STARS FOUNDATIONS DISTRIBUTION : UNLIMITED DESCRIPTION : Interface to the X Window System An expression of the various concepts in Ada that provides a full, working Ada specification of the X Window system. Approved for public release; distribution is unlimited. 12.3 Products Available from Vendors Advanced Technology Center (Updated: November 1992) The Advanced Technology Center (ATC) has an Ada binding to OSF Motif for their AXI~ product. AXI is currently available for most UNIX-based platforms, and is supported by Verdix, Meridian, and TeleSoft compilers. AXI is an Ada-to-X-Window System interface that provides the Ada programmer access to the 500+ functions, libraries, and procedures contained in the X library (Xlib), the X Toolkit (Xt), the X Extensible Library, the X Miscellaneous Utilities, the Motif widget set and the Motif Resource Manager. ATC is planning to develop an Ada binding to Open Look for AXI. For more information, contact: Larry Paulson, Advanced Technology Center, 22982 Mill Creek Drive, Laguna Hills, CA 92653, USA; Phone: 714-583-9119 Thomson Software Products (formerly Alsys) (Updated: Jan 1996) Thomson Software Products markets the following Ada products: ObjectAda, AdaWorld for Cross Development, ActivAda, ActivAda Real-Time, and perfoRMAx, each described below. (Contact Thomson for pricing info.) Product Name: ObjectAda Hardware SPARC-based systems OS Solaris ObjectAda is a complete object-oriented environment which is based on the new standard for the Ada language, Ada 95. ObjectAda gathers in a single integrated environment all the tools needed for the development of Object Oriented Ada applications and allows developers to increase productivity by simplifying the repetitive tasks of the programming process. ObjectAda includes an Ada compiler which emphasizes compile-time error checking to reduce mistakes and fully optimized code for compact, high-performance applications. A comprehensive, integrated toolset that is easy to use via an OSF/Motif-based graphical user interface is included in the ObjectAda environment, allowing programmers to reap the full power of all the tools with minimum training. The environment also includes an Ada sensitive editor, source-level symbolic debugger, profiler, and additional tools and bindings. Product Name: AdaWorld for Cross Development Hardware Hosts: SPARC- based systems, HP-RT, IBM, Targets: 680x0, 80x86, MIPS, PowerPC OS Solaris, SunOS, UNIX, DOS, LynxOS For developing embedded, real-time applications, Thomson Software Products+ offers Ada development environments to assure maximum programmer productivity while generating highly-optimized Ada applications. Hosted on a broad range of platforms, each environment includes a powerful Ada compiler and runtime system, as well as a comprehensive, integrated toolset that is easy to use via an OSF/Motif-based graphical user interface. The environment also includes an Ada sensitive editor, multi-library system, source-level symbolic debugger, profiler, and additional tools and bindings. Ada development environments are available for cross development targeting the Motorola 680x0, Intel 386/486, MIPS, and PowerPC. Product Name: ActivAda Hardware 386, 486, or Pentium system OS Windows, Windows NT, Windows 95 ActivAda is an Ada Integrated Development Environment (IDE) delivering the combined power of 32-bit architecture, the Windows operating system and Ada in one comprehensive product. ActivAda+s robust functionality assures reliable, high-quality code with dramatically reduced development time. ActivAda is geared to the entire development cycle, providing a Windows Graphical User Interface (GUI) with full point-and-click access to all development tools. Development of Win32 applications is possible for both Windows, Windows NT and Windows 95. In addition, a GUI Builder that generates Ada code, Ada bindings to the Win32s API, a Win32s CodeView Debugger, and an interface to Microsoft Visual C++ are all included. All of these features are bundled together with a validated Ada compiler and comprehensive toolset, providing a solid technology base that has been in use in major development projects for over 10 years. Product Name: ActivAda Real-Time Hardware Hosts: 386/486/Pentium Targets: 386/486/Pentium OS Windows, Windows 95 Finally, developers can create tight, fast code for Intel targets from an easy-to-use Windows environment, while enjoying the full benefits of the Ada language. We+ve merged two powerful technologies: our award-winning ActivAda development environment, and our highly-optimized Intel cross compilation system to produce a uniquely powerful and economical real-time development platform. ActivAda provides real-time and embedded developers with everything they need to create cutting-edge, highly reliable Intel target code, all in one package. Product Name: perfoRMAx Hardware Hosts: PC OS Windows, Windows 95, Windows NT perfoRMAx is a unique, easy-to-use graphical tool suite that applies the mathematical principles of Rate Monotonic Analyst and other scheduling techniques to your real-time system. Used during proposal, specification, design, implementation, and maintenance phases, perfoRMAx can save months or years of wasted effort, millions of wasted dollars, and can even save lives and assets. perfoRMAx is an advanced engineering tool that enables real-time developers and engineers to focus on the temporal aspects of real-time system development and maintenance. Through its unique analysis process, perfoRMAx provides a framework for analyzing system timing behavior. For more information, contact: Marianne Worley Thomson Software Products (formerly Alsys) 10251 Vista Sorrento Parkway Suite 300 San Diego, CA 92121 Tel: (619) 457-2700 x244 Toll Free: (800) 833-0085 x244 Fax: (619) 452-2117 Email: adainfo@thomsoft.com WWW: http://www.thomsoft.com/ Digital Equipment Corporation (Updated: November 1992) Digital Equipment Corporation has bindings available for GKS, PHIGS, SQL, and OSF Motif for VAX Ada/VMS. The Ada bindings are provided either as part of a compiler product or the services/facilities that are provided by Digital and its suppliers. Host/Target:DEC VAX under VMS For more information, contact: Mary Anne Cacciola, Digital Equipment Corporation, 110 Spit Brook Road, Nashua, NH 03062, USA; Phone: (603) 881-1028 IBM (Updated: November 1992) IBM's AIX Ada/6000 product provides a binding to GPEF and IBM AIXWindows (X- Windows ... not Motif). It runs on all models of the IBM RISC System/6000 under the IBM AIX Version 3.2 operating system. See also entries for Systems Engineering Research Corporation (SERC) and Advanced Technology Center (ATC) for Motif, GKS or PHIGS bindings for use with IBM AIX Ada/6000 products. The AIX Ada/6000 licensed programs (5706-291 and 5706-294) consist of an optimizing compiler, a run-time environment, a symbolic debugger, an Ada "makefile" generator for use in automating and minimizing recompilation, Ada library management tools and Ada language bindings to some key AIX subsystems. With the exception of some system-specific aspects of the language, the Ada language for the AIX operating system is source compatible with the Ada language supported by IBM licensed programs in VM/CMS and MVS. Host/Target:IBM RISC System/6000 under the IBM AIX Version 3.2 operating system This product conforms to the following standards: ANSI/MIL-STD-1815A - Ada at current level (1.11) of the ACVC test suite. For more information, contact: Barry Lee, IBM Corporation, 844 Don Mills Road, North York, Ontario, Canada M3C 1V7; Phone: (416) 448-3174; Fax: (416) 448-4810 Objective Interface Systems, Inc. (Updated: November 1992) Objective Interface Systems, Inc., has an Ada binding to X-windows (OSF Motif) for its Screen Machine~ product. The Screen Machine binding to Motif includes a WYSIWYG drawing tool and an Ada code generator. Host/Target: Sun SPARC/SunOS Rational R1000/Delta HP 9000/7XX; 8X7 IBM RISC System/6000/AIXPC 386/486/ISC UNIX HFSI WIS Workstation PC 286/386/486/MS-DOS PC 386/486/SCO UNIX DEC Ultrix; DEC VMS For more information, contact: Phil Carrasco, Object Interface Systems, Inc. 1895 Preston White Drive, Suite 250, Reston, VA 22091-5448, USA; Phone: (703) 264-1900; Fax: 703-264-1721; email info@ois.com (internet) SL Corporation (Updated: November 1992) SL Corporation's SL-GMS toolkit includes Ada bindings to GPEF, GPPF, POSIX, SQL, TCP/IP, OSF/Motif, and Open Look. SL-GMS is a toolkit for developing dynamic graphics screens for real-time or highly interactive applications. Non-programmers can design application screens in a standard drawing-tool mode, connect them to real-time data sources and animate screen objects to visualize changing data values. SL-GMS allows the design of custom "GISMOs" to input values or control the application and supports MOTIF, OPEN LOOK and other X toolkit widgets. SL-GMS is used extensively to provide real-time graphics for applications in the fields of manufacturing, process control, network management, avionics and financial tracking. Host/Target:Validated Verdix and DEC compilers support SL-GMS for the following machines as both host and target: DEC-DECstation/ULTRIX 4.0DEC-VAXstation/ULTRIX 4.0 DEC-VAXstation/VMS 5.4 DEC-VAXstation/VMS 5.5 IBM-RS6000/AIX HP-9000/300/UNIX HP-9000/400/UNIX HP-9000/800/UNIX HP-9000/700/UNIX PC-386/IX UNIX PC-386/SCO UNIX PC-386/Lynx PC-386/0S2 PC-386/System 5.4 SGI-4D/IRIX 3.3 Sun-3/SunOS 4.1 SunSPARC/SunOS 4.1 88 Open/BCS Compliant For more information, contact: Mike Meagher, SL Corporation, 240 Tamal Vista Boulevard, Corte Madera, CA 94926, USA Phone: (415) 927-1724; Fax: (415) 927-2931 Sunrise Software International (Updated: May 1992) Sunrise Software International's product, ezx, is a rapid application development tool that automates the creation of graphical user interfaces for OSF/MOTIF and generates C, UIL, or Ada. ezx provides WYSIWYG screen layout; color, font and pixmap editors; presentation tools and dialog management. A prototype can be developed in hours and using a script language similar to Hypertalk, demonstrated to end-users before the first line of code is written. Then portable C, UIL or Ada can be generated automatically. Ada bindings are provided. The total code required to develop a GUI is reduced by approximately 75%. The appearance and behavior of the GUI is defined in an X resource file which the application loads at run time. This provides explicit separation between the GUI and the computational core of the application. Thus the GUI can be revised without recompiling (and retesting) the application. ezx provides cost savings throughout the software development cycle, from requirements analysis through design, code, test and maintenance. Host/Target:DEC RISC under ULTRIX, DEC VAX under VMS, IBM 386 under UNIX, IBM RS 6000 under AIX, SGI under, SUN SPARC under UNIX For more information, contact: Frederick Sells, Sunrise Software International, 170 Enterprise Center, Middletown, RI 02840, USA; Phone: 401-847-7868 Systems Engineering Research Corporation (SERC) (Updated: November 1992) ----------------------------------------------------------------------------- Subject: 235) Is there an Ada binding for Motif? (Part 2 of 2) [Last modified: Apr 94 ] Answer: (This answer hasn't changed since the date given, but I needed to break it into 2 parts.) SERC's Ada/MOTIF is a complete binding to X Window and OSF/Motif for the Ada programming language that was based in part upon the SAIC/Unisys (STARS) public domain bindings. That work was leveraged as a starting point for this development; many of the bug fixes and additional capabilities beyond the public domain releases in Ada/MOTIF have been incorporated. Most noteworthy are the capabilities included in Ada/Motif for Ada tasking, callback registration, memory leak detection/prevention and capabilities for developing customized widgets. Paramax/STARS considers Ada/Motif to be the commercial version of their STARS bindings, according to SERC. Ada/MOTIF is supported by the ALSYS, VERDIX, SUNAda, IBM Ada, and SGI Ada compilers. Host/Target:SUN 4, HP 300/400, HP 700, IBM RS 6000, SGI, 386 SUN OS 4.1.1, SOLARIS 2.0 (coming), HPUX 8.0, SGI 3.2 & 4.0, IBM ATX 3.2, SCO 3.2 For more information, contact: Theo Kusiolek or Scott Cleveland, Systems Engineering Research Corporation (SERC), 2555 Charleston Road, Mountain View, CA 94043, USA; Phone: 800-ADA- SERC or 415/962-9092; Fax: 415/962-0330; E-mail: Well!sercmail@apple.com. TeleSoft (Updated: November 1992) TeleSoft's TeleUSE/Ada automates the creation of OSF/Motif graphical user interfaces for Ada applications. It includes a special version of the TeleUse User Interface Management System -- which generates Ada source code -- and Ada bindings to the TeleUSE run-time routines. TeleUse/Ada tools allow a GUI to be prototyped and designed using a WYSIWYG editor and a PDL, and also includes tools for debugging, generating production code and maintaining the GUI. TeleUse/Ada can save the developer up to 90 percent of the time required to hand code X Window System GUIs. Host/Target:SPARC under UNIX, Sun-4 under UNIX TeleSoft's TeleWindows is a set of Ada bindings to the X Window System and OSF/Motif. This includes Xlib, XT, X extensions Library, XT+, X miscellaneous utilities, Motif widget set, XM, MWM, Motif resource manager. It supports X- 11 R4 and is not based on the public domain version. It closely follows the C Xlib syntax and allows Ada applications to co-exist with C applications. Host/Target:IBM System/370 under VM/CMS For more information, contact: Karen Johnson, TeleSoft, 5959 Cornerstone Court West, San Diego, CA 92121-9891, USA; Phone: (619) 457-2700 Verdix (Updated: May 1992) The Verdix Ada Development System (VADS), is a complete Ada Compiler System offering a fully validated Ada compiler with chapter 13 support. Verdix supplies VADSself and VADScross. VADSself provides a complete toolset for self-targeted applications. It easily interfaces to databases, windowing systems and program management tools. VADScross provides real-time support for host-to-target system development. VADScross produces small and fast object code. VADS is hosted on the largest number of platforms and targets the greatest number of microprocessors. Host/Target:88000 BCS under UNIX, DEC VAX under VMS / ULTRIX / UNIX, DECStation (RISC) under UNIX, DECSystem (RISC) under UNIX, HP 9000 Series 300 under HP-UX (UNIX), IBM PS/2 under AIX (UNIX), IBM RISC System/6000 under AIX, SCO Systems V/386 (ABI) under UNIX, Sun SPARC systems under UNIX, Sun-3 systems under UNIX Verdix AXI provides an Ada binding to the full Motif, Xt, and Xlib libraries. The product works with user-supplied Motif 1.1 and X11R4 libraries regardless of source. Host/Target:DEC RISC under Ultrix, IBM RS6000 under AIX, MIPS under MIPSos, Sun-4 under SunOS, Sys V386 under ISC UNIX, Sys V386 under SCO UNIX For more information, contact: Tim Ruhe, Verdix Corporation, 205 Van Buren, Herndon, VA 22070, USA; Phone: (703) 318-5800 Answer: Integrated Computer Solutions, Inc. (ICS) supplies Ada bindings to Motif for a number of platforms and Ada compilers. ICS also provides Builder Xcessory, a Motif interface builder, which outputs Ada code usable with the Ada bindings. The product family is known collectively as the Ada Xcessories. Integrated Computer Solutions, Inc. (ICS) 201 Broadway, Cambridge, MA 02139 USA info@ics.com 617/621-0060 ----------------------------------------------------------------------------- Subject: 236) Is there a Poplog binding for Motif? [Last modified: May 93] Answer: A integrated programming environment consisting of the programming languages Pop-11, Prolog, Standard ML, and Lisp which are compiled to machine code via a common virtual machine. Pop-11 provides a rich interface to the X Toolkit which can be accessed from all other Poplog languages. The OLIT, Motif, and Athena widget sets are supported, in addition to the custom Poplog (Xpw) widget set. XVed provides a sophisticated, customisable multi-window editor. Under OPEN LOOK and Motif the Poplog User Interface (PUI) provides a graphical interface to the Poplog system. High-level Pop-11 libraries allow graph drawing, turtle graphics, and the simple creation of basic button/menu based interfaces. Contact: UK EDUCATION SITES: Poplog Sales. School of Cognitive and Computing Sciences. Brighton. BN1 9QN. England. Phone: +44 (0)273 678188 Email: popsales@cogs.susx.ac.uk USA AND CANADIAN EDUCATION SITES: Computable Functions Inc. 35 South Orchard Drive. Amherst. MA 01002. USA. Phone: (413) 253-7637 ALL OTHER SALES: Integral Solutions Ltd. Unit 3, Campbell Court. Bramley. Basingstoke. Hampshire. RG26 5EG. England. Phone: +44 (0)256 882028 Fax: +44 (0)256 882182 Email: isl@integ.uucp ----------------------------------------------------------------------------- Subject: 237) TOPIC: SPECIFIC PLATFORMS ----------------------------------------------------------------------------- Subject: 238) Is it easy to build Motif for a Sun? Answer: See next question for Solaris 2. No pattern has emerged to problems about compiling Motif on the Sun (although people seem to have a lot of different minor problems), and many reports are that it is straightforward. Read the Motif install instructions (which often have specific reference to Sun installation), light the blue touch paper and just standback. [My experience was that I had to add -D_NO_PROTO for 1.1 on a Sparc OS 4.1, and that was all. Others have added STRINGS_ALIGNED and NO_REGEXP]. ----------------------------------------------------------------------------- Subject: 239) How do I build Motif 1.2.2 on Solaris 2.1 with Sun C? [Last modified: Oct 94] Prepared by Ric Steinberger. ric@updike.sri.com 4/09/93 What follows is a description of the steps I used to build Motif 1.2.2 on a SUN IPX running Solaris 2.1. Sun's C compiler (2.0.1) was used. Many thanks go to Kaleb Keithley (kaleb@devvax.jpl.nasa.gov) for several useful suggestions. Other people, including OSF staff, especially David Brooks (dbrooks@osf.org), helped as well. My thanks to you all. 1. Build X11R5 from the mit distribution. You need to retrieve the sources from ftp.x.org (in pub/R5) and patches 1 - 22 (or fixes 1-26) pub/R5/fixes). There are several other sites that contain the X11R5 sources. After installing patch 19, apply PEXlib.tar.Z, also available from ftp.x.org in pub/R5/fixes. You can apply also R5.Xsun.multi-screen and R5.SunOS5.patch. There are .README files that explain how to patch. Be SURE to read R5.SunOS5.patch.README for details on how to BUILD X11. You probably want to use the ProjectRoot feature in the site.def file in the mit/config directory. You will NEED to edit that file to do that. 2. Obtain the Motif 1.2.2 distribution from OSF (617-621-7300). You may need to first install the 1.2 tape, then the 1.2.1 and finally the 1.2.2 tape. You might want to do a "chmod -R u+w ." after unloading each tape. 3. In the config directory, there are several changes. Some of the changes are based on R5.SunOS5.patch files. A complete set of config files relevant to Solaris have been placed in the anon-ftp account of updike.sri.com in pub/motif/solaris21-motif122-config.tar.Z. They are also available from OSF on their mail response server (available to support contract holders) and they will send them directly to full support contract holders. Decompress and untar this file in your Motif config subdirectory. Copy site.def.sample to site.def, then edit site.def. You will probably want to uncomment the ProjectRoot section and use the same value used in your X11R5 build. Also, you will probably want to use /usr/ucb/install in you installed the UCB compatibility suite. Otherwise you might want to use the install supplied at the end of this memo. [I used the UCB version and can't swear that this works. Bit it should. Put it someplace like /usr/local/bin and chmod +x it.] There are two patches to consider. One fixes a cursor problem in ./lib/Xm/TextF.c. The other removes a Berkeleyism. These patches should probably be consider unofficial at present. Failure to deal with the Berkeleyism (bzero) means you will need to link with -lucb -lelf. This will probably work, but why bother? Furthermore, if you move the Motif binaries to a machine without the ucb compatability suite, you won't have the sharable libs you need. [The actual patches have been censored because they contain OSF source code] Patch 1: In TextF.c there are several places _XmTextFieldDrawInsertionPoint is called. These should be moved two or three lines further down *after* the "if (!XtIsRealized(tf)) return True;" statement. patch 2: The call to bzero in lib/Xm/Visual.c should be replaced by the equivalent call to memset Both these patches can be applied in the ./lib/Xm directory. If you don't have the patch program (how did you build X11?), you can get it in the vendor/cygnus directory of ftp.uu.net, or you can build it from source. Be sure to get the latest version (2.0.12.u8). 4) Use the README-1.2.1 file as a guideline for building motif. I followed directions in the section called, "Using X11R5 Installed Libraries and Header Files." If you make a mistake after your first build attempt, copy Makefile.ini to Makefile before retrying. You may need to do this in the config subdirectory too, depending on what went wrong. 5) After make Makefiles, do make includes, make depend, then make (or as OSF recommends, make -k). This gets as far as motifshell in the demos, which fails to build because O_RDONLY and L_XTND are not defined. O_RDONLY is in fcntl.h (actually <sys/fcntl.h>, but fcntl.h includes this.) L_XTND can be replaced by SEEK_END. SEEK_END is in stdio.h. These two fixes will allow motifshell to build. Note: many MANY compiler warning messages will be generated during the build process. 6) You can go to the demos/xmsamplers directory and do a make there. Other demos may build, or not depending on whatever. . . . 7) make install will do the install. [It will fail at motifshell if you don't fix it, as mentioned above.] You can do a make install in demos/xmsamplers if you want these. 8) If running on a SUN (as opposed to an X term), you will (probably) need to start openwin with something like: openwin -server /usr/X11R5/bin/Xsun [You might want to use an alias for this.] This fixes an annoying problem: The mouse keys stop working after you click on an icon to get the icon menu (on SUNs only, not X terms). The ALT keys still work, if you get stuck. I don't know whether this is a bug in SUN's server or whether it is Motif related. Here is a copy of my .xinitrc: It's not elegant. Sun's default openwin startup file is in: /usr/openwin/lib/Xinitrc. You can copy this to ~/.xinitrc and customize as desired. Obviously, the default behavior is to start the OpenLook environment (boo!). #!/bin/sh # # .xinitrc - OpenWindows startup script. # if [ -f $HOME/.Xdefaults ]; then xrdb $HOME/.Xdefaults # Load Users X11 resource database fi if [ -f $HOME/.Xdefaults.sun ]; then xrdb -merge $HOME/.Xdefaults.sun fi DISPLAY=`hostname`:0.0 export DISPLAY xhost + > /dev/null #xterm -sb -sl 512 -T `hostname` -ls -n `hostname` & xterm -sb -sl 512 -T `hostname` -n `hostname` & mwm & xclock -geometry +1010+0 & xload -geometry +710+5 -fg red & xsetroot -solid salmon & xterm -sb -sl 100 -T CONSOLE_DO_NOT_LOGOUT -C -n console -iconic #wait Here's .Xdefaults.sun, which gives me a more readable font for use with motif on Sun monitors: !Some additional .Xdefaults values specifically for SUN ! ! After loading .Xdefaults, xrdb -merge .Xdefaults.sun ! Mwm*fontList: 8x16 !Mwm*fontList: vtbold !Change as desired. You will probably want to maintain LD_LIBRARY_PATH to something like: /opt/SUNWspro/lib:/usr/ccs/lib:/usr/ucblib:/usr/X11R5/lib:/usr/lib: /usr/openwin/lib. If you use emacs, you will need to leave /usr/openwin/lib there. [This is because you probably, like me, used the distributed version of s-sol2.h, which explicitly refers to windowing libraries as being in the /usr/openwin locations. Yes, I know that emacs/Solaris ought to allow LibXt.so.N.M to be "picked up" from elsewhere, like /usr/X11R5/lib, but the one emacs links with is LibXt.so.4.something, and the mit one is LibXt.so.5.something. So it seems to want the .4 one. Any comments? I'd prefer not to rebuild emacs based on the X11R5 libs because I occassionally need to move the emacs binaries to machines without the mit files.] ----------------------------------------------------------------------------- Subject: 240) What compile errors/warnings might I get in both Sun 3 and Sun 4? Answer: make: Warning: Too many rules defined for target make: Warning: Too many rules defined for target "callbacks.c", line 1530: warning: illegal combination of pointer and integer, op = "callbacks.c", line 1531: warning: illegal combination of pointer and integer, op = "callbacks.c", line 1532: warning: illegal combination of pointer and integer, op = "utils.c", line 73: warning: illegal combination of pointer and integer, op = "utils.c", line 74: warning: illegal combination of pointer and integer, op = "utils.c", line 122: warning: illegal combination of pointer and integer, op = "utils.c", line 123: warning: illegal combination of pointer and integer, op = "utils.c", line 191: warning: illegal combination of pointer and integer, op = "utils.c", line 194: warning: illegal combination of pointer and integer, op = "utils.c", line 195: warning: illegal combination of pointer and integer, op = "utils.c", line 196: warning: illegal combination of pointer and integer, op = "utils.c", line 316: warning: illegal combination of pointer and integer, op = "utils.c", line 334: warning: illegal combination of pointer and integer, op = "utils.c", line 338: warning: illegal combination of pointer and integer, op = "utils.c", line 341: warning: illegal combination of pointer and integer, op = "xmdialogs.c", line 838: warning: illegal combination of pointer and integer, op = "xmeditor.c", line 1152: warning: illegal combination of pointer and integer, op = These warning messages can be ignored. OSF is aware of these warnings. ----------------------------------------------------------------------------- Subject: 241) On a Sun 3, what are the mwm startup error messages about? I get mwm: Invalid accelerator specification on line 7 of specification string mwm: Invalid accelerator specification on line 31 of configuration file Answer: This is because some Sun keyboards do not have an F10 key and some sun workstations which have an F10 key do not have X-servers which recognize it. The F10 key is used by mwm. If the machine does have an F10 key, the user should use xmodmap to tell the server it exists. Otherwise, change the definition of the DefaultWindowMenu in /usr/lib/X11/system.mwmrc (after installation) or in /lib/clients/mwm/system.mwmrc (before installation). Change the accelerator of "Maximize" (it is "Alt<Key>F10)" to something else. Also, you should change the definition of DEFAULTSYSTEMMENU in the file /clients/mwm/WmResource.c in a similar fashion. There is as yet no standard redefinition for F10. ----------------------------------------------------------------------------- Subject: 242) Are there problems making shared libraries on a Sun? Answer: If you use the -pic option you may run out of offset table space. use the -PIC option instead. You may get the message "ld.so: Undefined symbol: __XtInherit" when executing UIL. There is a problem in shared library build when you compare a function variable to a routine name, but don't call the routine. Either, you can build the Xt library nonshared, or you can put a reference to XtToolkitInitialize in the UIL main program (or even include a module that references it). The routine doesn't even have to be called; it just has to be there. ----------------------------------------------------------------------------- Subject: 243) Why does the OpenWindows server hangs when I popup a menu with Button 3? [Last modified: August 92] Answer: This is an OpenWindows problem, but if you have Motif source you can fix your own applications. From Steve Sistare of Thinking Machines Corp.: "Change the 2 calls to XtGrabButton in RowColumn.c such that ButtonReleaseMask | ButtonPressMask is passed for the event mask. Currently, only ButtonReleaseMask is passed. Also, change the owner_event argument to FALSE. " This has not been fixed in Motif as at 1.1.5. ----------------------------------------------------------------------------- Subject: 244) Has anyone made shared libraries on an IBM RS/6000? Answer: [NOTE: This may not a problem any longer; I believe that AIX is now delivered with shared Xm libraries. If you know the status of this, email kenton@nojunk.rahul.net.] Sakari Jalovaara wrote: There is a problem: Xm redefines VendorShell and the AIX linker put _both_ Xm's and Xt's VendorShell into programs. When an AIX shared library is created as many references inside the library are resolved as possible. If the symbol vendorShellClassRec is defined in libXt and referenced, say, from a function XtFoo() also in libXt, the "ld" run that creates the shared library resolves the reference: XtFoo() -> vendorShellClassRec Then I create the Motif library that has its own vendorShellClassRec and an XmBar() function that uses it; libXm will also contain a resolved reference to vendorShellClassRec: XmBar() -> vendorShellClassRec Finally, I link a program that uses both XtFoo() and XmBar() and the program will end up with _two_ independent "vendorShellClassRec"s: XtFoo() -> vendorShellClassRec [Xt version] XmBar() -> vendorShellClassRec [Xm version] Instant schizo zaphod mode. In reality, vendorShellClassRec is not referenced from functions but from other widget class records. I can't just pull Vendor.o out from the shared Xt (Vendor.o appears to define the only external symbols redefined by libXm) because AIX shared libraries apparently can't contain unresolved external references. If I take out Vendor.o I have to take out every other file that uses symbols defined there - and then files that need those files, etc. I tried it and ended up with three or four object files in libXt and the res non-sharable. I kludged around this by putting all of libXt (minus Vendor.o) into the shared libXm. It isn't a pretty solution but it works - and beats having a statically linked two-megabyte "periodic" demo... ----------------------------------------------------------------------------- Subject: 245) What is the error "Unaligned access in XmString" under Ultrix? Answer: Compile XmString.c with STRINGS_ALIGNED. ----------------------------------------------------------------------------- Subject: 246) Can bugs in Sun's OpenWindows server cause Motif clients to crash? [Last modified: Oct 95] Answer: Yes. Patch 100444-73 (or later) from Sun fixes most of these bugs. Alternatively, you can compile and run the X11R6 sample server from MIT. See the SunSolve web page: http://sunsolve1.sun.com/pub-cgi/patchpage.pl Ken Lee and Bob Cox, rwcox@mcw.edu. ----------------------------------------------------------------------------- Subject: 247) Why does Motif on Linux crash when I open a file selection box? [Last modified: Oct 98] Answer: Make sure you use a libc that is compatible with your Motif. Unfortunately, Linux libc is not binary compatible from release to release. Older versions of Motif require libc 4.6.27. Some newer Motifs need libc5; others need glibc. Ken Lee, http://www.rahul.net/kenton/ ----------------------------------------------------------------------------- Subject: 248) Are there compatibility problems between some Linux Motif libraries and libc5 or glibc? [Last modified: Oct 98] Answer: Yes. People have reported problems with the file selection box and also with the OSF keysyms. The problem is that some newer Linux packages (e.g., Red Hat 5.0) use glibc (library and associated header files), which is not binary compatible with the older libc5. Some newer Motif libraries use glibc, while older ones will use libc5. Similarly the XFree and other libraries will be based on either libc5 or glibc. You must make sure you use one other the other consistently for all your applications and libraries. The better Motif vendors should have an upgrade strategy in place to help you with the transition. This is a general problem that the Linux community is dealing with. If you can't get the correct version information from your Motif vendor, the Linux Usenet newgroups should be able to help you out. Ken Lee, http://www.rahul.net/kenton/ ----------------------------------------------------------------------------- Subject: 249) How can I install Motif on my PC? [Last modified: Jun 98] Answer: There's a paper on this in the September, 1995 issue of *The X Advisor*: http://www.rahul.net/kenton/txa/sep95.html A 1996 update to this article is available at: http://www.rahul.net/kenton/xlinux_update.html Ken Lee ----------------------------------------------------------------------------- END OF PART SEVEN