Motif FAQ [Last changed: 01 APR 95] This article contains the answers to some Frequently Asked Questions (FAQ) often seen in comp.windows.x.motif. It is posted to help reduce volume in this newsgroup and to provide hard-to-find information of general interest. Please redistribute this article! This FAQ is maintained by Ken Sall (ksall@cen.com) of Century Computing, Inc. http://www.cen.com/ I also maintain a WWW page called "MW3: Motif on the World Wide Web" at: http://www.cen.com/mw3/ Send FAQ and MW3 updates and corrections to ksall@cen.com. It would help if the subject line contained the phrase "For Motif FAQ". I will be making an HTML version available sometime in the future. In the meantime, World Wide Web'sters are directed to the automatically generated HTML version of this FAQ at the URL: http://www.cis.ohio-state.edu/hypertext/faq/usenet/motif-faq/top.html There is also a WAIS database of FAQs which you can search : http://www.cs.ruu.nl/cgi-bin/faqwais This is particularly useful since it's possible the answer you're looking for is in another FAQ (X, Xt, Widgets FAQ, etc.) *** PLEASE NOTE *** If you don't understand the above "http://" notation, see the subject: "What is an URL?" In some cases, I've repeated information in different contexts to make these details a bit easier to find. This article includes answers to the questions listed below. Key: + questions NEW to this issue; * CHANGES since last issue. 0)* TOPIC: SUBMITTING SUGGESTIONS, CORRECTIONS, NEW ANSWERS 1) TOPIC: WHAT IS MOTIF? 2) What is Motif and how does it relate to the X Toolkit and X Window Sys- tem? 3) TOPIC: OTHER RELEVANT NEWSGROUPS 4) TOPIC: FAQ and NEWSGROUP FTP ARCHIVES 5) Is the FAQ available via FTP? 6) Is this FAQ accessible via WWW? 7) What is an URL? Are "ftp://", "http://", and "gopher://" typos? 8) Where can I find other FAQs related to Motif or X11? 9) Is this newsgroup accessible via email? 10)* Is this newsgroup archived? 11) Is the mail list motif-talk archived? 12) TOPIC: OSF, MOTIF and COSE 13)+ How can I contact OSF? 14) What versions of Motif are there? 15) Is there a concise features list for Motif 2.0? 16) What are the details about new features in Motif 2.0? 17) Where can I find Motif 2.0 documentation? 18) Where can I get Motif? 19) Is there a list of Motif bugs? 20)+ Where can I get a Motif 1.2 Certification Checklist? 21) What is COSE and how does it relate to Motif? 22) Is there a CDE FAQ or newsgroup? 23) What is PST? 24) Does OSF's PST process impact CDE evolution? 25) Because of COSE, is Motif now in the public domain? 26) What is DCE? 27) Where can I get public domain Motif source? 28) Are Motif code examples publically available? 29) Has anyone done a public domain Motif lookalike? 30) Does anyone from OSF pay attention to our questions/suggestions? 31) Does OSF have an application compliance validation service? 32) What is the motif-talk mailing list? 33) What MIT patches do I use, and when do I use fix-osf? 34) How does Motif work with X11R5? 35) How can I find which version of Motif I have? 36) TOPIC: MOTIF and the WORLD WIDE WEB (WWW) 37) Where's an HTML version of the Motif FAQ on World Wide Web (WWW)? 38)* What are other interesting WWW URLs which are related to Motif? 39)+ Is there a central location for Motif information on the WWW? 40)* Which X and Motif developers have their own home page URLs? 41) Where can I get the HTML widget used in Mosaic? 42) TOPIC: BOOKS and JOURNALS 43) Is there a bibliography available? 44)* Is there a Motif tutorial? 45) What books are available for Motif programmers? 46) Which Xt and X books would also be helpful? 47) Are there books for X11R6 yet? 48) What relevant journals are available? 49) TOPIC: MWM and the SHELL WIDGET 50) What is the difference between Motif and mwm? 51) Does anyone have an alternative set of 3-D defaults for a monochrome screen? 52) How can I modify the Motif window manager decorations? 53) Is there an ICCCM compliant way of setting window manager decorations? 54) How can I put decorations on transient windows using olwm? 55) How can I turn off the Motif window manager functions from the system menu? 56)+ How can I keep my shell windows fixed in size? 57) How can my application know when the user has quit Mwm? 58) How can I tell if the user has selected "Close" from the system menu? 59) Is there an mwm virtual desktop manager? 60) Why does mwm 1.2 crash on startup? 61) How do I obtain the size of a unmanaged shell widget? 62) XtGetValues() on XmNx and XmNy of my top level shell don't return the correct root window coordinates. How do I compute these? 63)+ How can I create a shell widget with a non-default visual type? 64) TOPIC: MOTIF DEVELOPMENT TOOLS (GUI BUILDERS and UIMS's) 65) What GUI tools exist to assist in developing Motif applications? 66) TOPIC: GEOMETRY MANAGEMENT 67) Why is geometry management so important? 68) What are good references for reading about geometry management? 69) Why don't my labels resize in a RowColumn widget? 70) Why do dialogs appear smaller under 1.2.3 and later? 71) TOPIC: TEXT WIDGET 72) How do XmTextField and a single line XmText widget differ? 73) Why does pressing in a text widget do nothing? 74) When I add text to a scrolling text widget, how can I get the new text to show? 75) Does the text widget support 16 bit character fonts? 76) How can I stop the text widget from echoing characters typed? 77) How can I replace characters typed with say a `*'? 78) How can I best add a large piece of text to a scrolled text widget? 79) How can I highlight text in the Text widget? 80) How can I select all of the text in a widget programmatically? 81) How can I change colours of text in the Text widget? 82) How can I change the font of text in the Text widget? 83) Is there an emacs binding for the text widget? 84) What if I have problems with the backspace/delete keys? 85) How can I use a file as the text source for a Text widget? 86) How can put Text in overstrike mode instead of insert? 87) How can I make the Delete key do a Backspace? 88) TOPIC: LIST WIDGET 89) Should I create an XmList widget as a child of automatic XmScrolledWindow or use the XmCreateScrolledList() convenience function? 90) How do I best put a new set of items into a list? 91) Can I have strings with different fonts in a list? 92) Can I get a bitmap to show in a list item like I can in a Label? 93) Can I have items with different colours in a list? 94) Can I grey out an item in a list? 95) Can I have multi-line items in a list? 96) How can I tell the position of selected items in a list? 97) TOPIC: FILE SELECTION BOX WIDGET 98) What is libPW.a and do I need it? 99) What are these compile errors: Undefined symbol _regcmp and _regex? 100) What's wrong with the Motif 1.0 File Selection Box? 101)+ What's wrong with the FileSelectionBox under Solaris? 102) TOPIC: FORM WIDGET 103) Why don't labels in a Form resize when the label is changed? 104) How can I center a widget in a form? 105) How do I line up two columns of widgets of different types? 106) TOPIC: PUSHBUTTON WIDGET 107) Why can't I use accelerators on buttons not in a menu? 108) TOPIC: ICON WIDGET 109) How can I add multi-colored icons to my application? 110) How can I convert a Sun/GIF/TIFF image to a pixmap? 111) TOPIC: SCALE WIDGET 112) Can the XmScale widget have arrows or tick marks in Motif 2.0? 113) TOPIC: LABEL WIDGET 114) How can I align the text in a label (button, etc) widget? 115) Why doesn't label alignment work in a RowColumn? 116) How can I set a multiline label? 117) How can I have a vertical label? 118) How can I have a Pixmap in a Label? 119) TOPIC: DRAWING AREA WIDGET 120) How can I send an expose event to a Drawing Area widget? 121) How can I know when a DrawingArea has been resized? 122)+ How can I create a drawing area widget with a non-default visual type? 123) TOPIC: MENUS 124)* How do I set the current choice in a radio box or an option menu? 125) How do I make a menu choice insensitive if it was created with XmVa- CreateSimplePulldownMenu? 126) What can I put inside a menu bar? 127) Can I have a cascade button without a submenu in a pulldown menu? 128) Should I have a cascade button without a submenu in a pulldown menu? 129) What is the best way to create popup menus? 130) How do popup menus work? 131) Should I use translation tables or actions for popup menus? 132) What are the known bugs in popup menus? 133) Can I have multiple popup menus on the same widget? 134) TOPIC: INPUT FOCUS 135) How can I specify the widget that should have the keyboard focus when my application starts up? 136) How can I direct the keyboard input to a particular widget? 137) How can I have a modal dialog which has to be answered before the appli- cation can continue? 138) TOPIC: MEMORY AND SPEED 139) When can I free data structures passed to or retrieved from Motif? 140) Why does my application grow in size? 141) Why does my application take a long time to start up? 142) My application is running too slowly. How can I speed it up? 143) Why is my application so huge? 144) TOPIC: XMSTRING 145) What string functions differ in Motif 1.1 and 1.2? 146) How can I get the Ascii text out of an XmString? 147) When can XmStrings used as resources be freed? 148) Why doesn't XmStringGetNextSegment() work properly? 149) Why does using XmStringDraw cause a Bad Font error? 150) TOPIC: DIALOGS 151) How do I stop my dialog disappearing when I press the help button? 152) How do I make my own dialog? 153) Why do dialog title bars have "_popup" or "<-popup" concatenated onto the widget name? 154) How can I force a dialog window to display? 155) How can I control placement of a popup widget? 156) TOPIC: LANGUAGE BINDINGS 157) Is there a C++ binding for Motif? 158) How can I avoid C++ String class and typedef char *String conflicts? 159) How can I have a C++ member function in a callback? 160) Is there a Common Lisp binding for Motif? 161) Is there an Ada binding for Motif? (Part 1 of 2) 162) Is there an Ada binding for Motif? (Part 2 of 2) 163) Is there a Poplog binding for Motif? 164) TOPIC: SPECIFIC PLATFORMS 165) Is it easy to build Motif for a Sun? 166) How do I build Motif 1.2.2 on Solaris 2.1 with Sun C? 167) What compile errors/warnings might I get in both Sun 3 and Sun 4? 168) On a Sun 3, what are the mwm startup error messages about? 169) Are there problems making shared libraries on a Sun? 170) Why does the OpenWindows server hangs when I popup a menu with Button 3? 171) Has anyone made shared libraries on an IBM RS/6000? 172) What is the error "Unaligned access in XmString" under Ultrix? 173) TOPIC: KEYSYMS 174) What is causing the messages "unknown keysym osfDown..."? 175) What happens if I can't install Motif Keysyms? 176) Why has OSF introduced Keysyms into Motif 1.1? 177) Why do accented characters not work with Motif applications linked with X11R6? What is the Compose file? 178) TOPIC: UIL 179) What is UIL and why is it so popular? 180) What is Mrm? 181) How do I specify a search path for ".uid" files? 182) Can I specify callback functions in resource files? 183) How can I set a multiline label in UIL? 184) Is there a program that can convert a UIL file to tclMotif? 185) TOPIC: ICONIFICATION and DE-ICONIFICATION 186) How can I keep track of changes to iconic/normal window state? 187) How can I check if my application has come up iconic? 188) How can I start my application in iconic state? 189) How can an application iconify itself? 190) How can an application de-iconify itself? 191) TOPIC: SPECIALIZED WIDGETS 192) Where can I get a Table widget? Matrix widget? Spreadsheet widget? 193) Where can I get a bar graph widget? 194) Is there a graph widget in which you can add vertices and edges and get automatic updating? 195) Is there a help system available, such as in Windows 3? 196) Is there a canvas widget or drawing widget for graphical display? 197) TOPIC: CREATING WIDGETS 198) What are some good references for creating widgets (subclassing widg- ets)? 199) TOPIC: MISCELLANEOUS 200) How can an application be informed of signals? 201) How do I control the repeat rate on a SUN keyboard? 202) How can I identify the children of a manager widget? 203) How do I tell if a scrolled window's scrollbars are visible? 204) How can I programatically scroll a XmScrolledWindow in XmAUTOMATIC mode? 205) What functions can an application use to change the size or position of a widget? 206) What widgets give the look of push buttons, but behavior of toggle but- tons? 207) Can I use XtAddTimeOut, XtAddWorkProc, and XtAddInput with XtAppMain- Loop? 208) Why does XtGetValues for XmNx and XmNwidth return extremely large values? 209) Can I use XmGetPixmap() with widgets that have non-default visual types? 210) How can I determine the item selected in a option menu or a RadioBox? 211) What is the matter with Frame in Motif 1.2? 212) What is IMUG and how do I join it? 213) How do I set the title of a top level window? 214) Can I use editres with Motif? 215)+ Where is the editres protocol documented? 216) Why does an augment translation appear to act as replace for some widg- ets? 217) How do you "grey" out a widget so that it cannot be activated? 218) Why doesn't the Help callback work on some widgets? 219) Can I specify a widget in a resource file? 220) Why are only some of my translations are being installed? 221) Where can I get the PanHandler code? 222) What are these passive grab warnings? 223) How do I have more buttons than three in a MessageBox? 224) How do I create a "busy working cursor"? 225) Can I use the hourglass that mwm uses? 226) What order should the libraries be linked in? 227) How do I use xmkmf for Motif clients? 228) How do I make context sensitive help? 229) How do I debug a modal interaction? 230) How can I disable Drag and Drop in my Motif 1.2 client ? 231)* Where can I find info and examples of the Motif drag and drop protocol? 232) Why can't I install my own colormap using XInstallColormap? 233) How do I get correct shadow colors to match other color changes? 234) What color algorithm does Motif use? 235) How can you access the superclass widget from which Motif convenience dialogs are subclassed? 236) Can the Notebook widget display non-rectangular "file tabs"? 237) How does the clipboard mechanism work? 238) Why does the xyz application core dump when I cut and paste? 239)+ Why doesn't XtNameToWidget (widget, "MyName") work? 240)+ Why does my structure contain incorrect data when the callback is called? 241)* TOPIC: HISTORY and ACKNOWLEDGEMENTS ----------------------------------------------------------------------------- Subject: 0)* TOPIC: SUBMITTING SUGGESTIONS, CORRECTIONS, NEW ANSWERS [Last modified: Apr 95] Answer: If you have suggestions or corrections for any of these answers or any additional information, please send them to the e-mail address below. The information will be included in the next revision or two. o Send updates, suggestions, corrections, new answers to: ksall@cen.com (Ken Sall) Century Computing. Inc. http://www.cen.com/ (In general, if you want your info in a particular month's FAQ, send it at least a week before the end of the month.) o _Please_ put "For Motif FAQ" in the Subject line! o Submissions should be of general interest. o Please include answers with questions. o If you _do not_ want your name or email address listed in the FAQ, explicitly state this. NOTE TO BUSINESSES: Please send your announcements/updates/corrections in a brief, ready-to-include form. I'd rather not spend alot of time editing the information. This posting is intended to be distributed at approximately the beginning of each month. The information contained herein has been gathered from a variety of sources. In many cases attribution has been lost; if you would like to claim responsibility for a particular item, please let us know. Conventions used below: telephone numbers tend to be Bell-system unless otherwise noted; prices on items are not included. ----------------------------------------------------------------------------- Subject: 1) TOPIC: WHAT IS MOTIF? ----------------------------------------------------------------------------- Subject: 2) What is Motif and how does it relate to the X Toolkit and X Window System? [Last modified: Feb 95] Answer: Motif is a widely-accepted set of user interface guidelines developed by the Open Software Foundation (OSF) around 1989 which specifies how an X Window System application should "look and feel". OSF/Motif, as it's more formally called, includes the Motif Toolkit (also called "Xm" or the "Motif widgets"), which enforce a policy on top of the X Toolkit Intrinsics ("Xt"). Xt is really a "mechanism not policy" layer, and Xm provides the specific "look and feel". For example, Xt does not insist that windows have titlebars or menus, but it provides hooks for developers of specific toolkits (Motif, OpenLook, Athena widgets) to take advantage of. In addition to widgets, OSF/Motif includes the Motif Style Guide document (as well as several others listed in my FAQ) which details how a Motif user interface should look and behave to be "Motif compliant". The X Toolkit Intrinsics are built upon the lowest programming level API called "Xlib" (X library). Both Xlib and Xt are specified by the X Consortium (formerly called the MIT X Consortium), which you can reach at: http://www.x.org/ or: ftp to ftp.x.org Xlib and Xt source code is free. Motif is not. ----------------------------------------------------------------------------- Subject: 3) TOPIC: OTHER RELEVANT NEWSGROUPS [Last modified: Feb 95] Answer: This newsgroup is comp.windows.x.motif. The WWW URL is: news:comp.windows.x.motif The nearest related group is comp.windows.x. It also maintains an FAQ, which deals in all sorts of X, Xlib and Xt questions. Look there for answers to questions such as "How do I get a screendump of my application?", "where do I get X11R4,X11R5, X11R6", etc. The URLs for other groups which may have relevant information are: news:comp.windows.x.pex news:comp.windows.x.apps news:comp.windows.x.intrinsics news:comp.windows.news news:comp.windows.misc news:comp.windows.open-look news:alt.windows.cde The intrinsics and open-look groups also have an FAQ. The newsgroup news.answers contains *lots* of FAQs (including this one). Look there for lots of info on everything. ----------------------------------------------------------------------------- Subject: 4) TOPIC: FAQ and NEWSGROUP FTP ARCHIVES ----------------------------------------------------------------------------- Subject: 5) Is the FAQ available via FTP? [Last modified: Oct 94] Answer: A number of FAQ's (including this one) are available via anonymous ftp at rtfm.mit.edu under the directory pub/usenet. The Motif FAQ is available in 6 parts via anonymous ftp in any of the following directories at rtfm.mit.edu: /pub/usenet-by-group/comp.windows.x.motif /pub/usenet-by-group/comp.answers/motif-faq /pub/usenet-by-group/news.answers/motif-faq There is also a mail server called mail-server@rtfm.mit.edu. To retrieve a file send mail to the server with a subject or body similar to send usenet/comp.windows.x.motif/Motif_FAQ_(Part_1_of_6).Z The Motif FAQ is also available via anonymous ftp as a single file: /contrib/faqs/Motif-FAQ from ftp.x.org. (See also "Is this FAQ accessible via WWW?") The FAQ is also accessible from WAIS (Wide Area Information System) under UC- Motif-FAQ, allowing keyword-based searches of the FAQ. ----------------------------------------------------------------------------- Subject: 6) Is this FAQ accessible via WWW? [Last modified: Oct 94] Answer: The Motif FAQ is available as a single file via the World Wide Web URL: ftp://ftp.x.org/contrib/faqs/Motif-FAQ and also: ftp://ftp.germany.eu.net/pub/X11/XConsortium/contrib/faqs/Motif-FAQ and as 6 separate parts as: ftp://rtfm.mit.edu/pub/usenet-by-group/comp.windows.x.motif/Motif_FAQ_(Part_n_of_6) ftp://rtfm.mit.edu/pub/usenet-by-group/comp.answers/motif-faq/part[1-6] ftp://rtfm.mit.edu/pub/usenet-by-group/news.answers/motif-faq/part[1-6] In addition, an automatically generated HTML version of this FAQ can be found at: http://www.cis.ohio-state.edu/hypertext/faq/usenet/motif-faq/top.html A more in-depth restructuring using HTML is planned for the future. ----------------------------------------------------------------------------- Subject: 7) What is an URL? Are "ftp://", "http://", and "gopher://" typos? [Last modified: Oct 94] Answer: No, they are not typos. All location references in this FAQ are slowly being replaced with WWW (World Wide Web) URLs (Uniform Resource Locator). Basically, an URL is a unique location of a Web resource (directory, file, image, host, etc.). If you want to read more about URL's, get the PostScript paper from ftp.ncsa.uiuc.edu: Mosaic/mosaic-papers/getting-started.ps If you don't know how to access the Web, you can still access locations via anonymous ftp by dropping the "ftp://" protocol portion and interpreting the next section as the domain name. For example, for an URL of ftp://any.old.place/dirname/filename connect via anonymous ftp to any.old.place and get /dirname/filename. Similarly, if the location begins "gopher://", drop the protocol portion, telnet to the host and login as "gopher". If the location in this FAQ begins with "http://" and you aren't a Web user, simply ignore the reference. Or, you could check out the WWW FAQ (2 or more parts) from rtfm.mit.edu directory: /pub/usenet/news.answers/www/faq (URL: ftp://rtfm.mit.edu/pub/usenet/news.answers/www/faq ) Why are URLs being used? For those who regularly access the Web (via browsers such as Mosaic, WinWeb, Chimera, Lynx, W3, tkWWW, etc.), this notation greatly facilitates access to the cited documents/directories/files. And, for this FAQ maintainer, URLs make it easier to verify whether the pointer is still accurate! Instead of typing: ftp any.old.place logging in as anonymous entering my email address cd /dirname get filename I can simply use the "Open URL" feature of my browser and paste "ftp://any.old.place/dirname/filename" in one step. 'Nuff said! ----------------------------------------------------------------------------- Subject: 8) Where can I find other FAQs related to Motif or X11? [Last modified: Mar 95] Answer: Check out the directory /contrib/faqs on ftp.x.org. As of August, 1994, these FAQs were available: FAQ - X11 FAQ FAQ-X11Games.doc.gz- high priority research projects ;-) FAQ-Xt - X Toolkit Intel-Unix-X-faq.Z - Intel-specific information Motif-FAQ - this FAQ Widget.FAQ - useful list of available widgets (John L. Cwikla) X11R6-on-SUN-FAQ - Sun-specific X11R6 info speedup-x-faq - how to maximize the performance of X x-faq-multipart/ - directory of X FAQ in pieces xapps-fa.z - X applications Web'sters can check out the directory URL: ftp://ftp.x.org/contrib/faqs/ Grab the X FAQ, the Xt FAQ, and the Widget FAQ: ftp://ftp.x.org/contrib/faqs/FAQ ftp://ftp.x.org/contrib/faqs/FAQ-Xt ftp://ftp.x.org/contrib/faqs/Widget.FAQ There is also a CDE FAQ at: http://proper.com:70/0/faqs-link/common-faqs/faqs/cde-cose-faq ----------------------------------------------------------------------------- Subject: 9) Is this newsgroup accessible via email? [Last modified: Nov 94] Answer: The email link, formerly maintained by Brian Dealy (via motif- request@lobo.gsfc.nasa.gov), is no longer being attended. You cannot be added to the list at this time. The mailing list address is no longer valid. NOTE: As of October 31, 1994, Brian was seeking a new maintainer for the mail reflector for people without access to comp.windows.x.motif. If interested, email him at his new address: bdealy@c3i.saic.com. ----------------------------------------------------------------------------- Subject: 10)* Is this newsgroup archived? [Last modified: Apr 95] Answer: The newsgroup files from August 1991 through December 1994 are available from csc.canberra.edu.au (137.92.1.1) by anonymous ftp. They are in the directory /pub/motif/comp.windows.x.motif : ftp://csc.canberra.edu.au/pub/motif/comp.windows.x.motif These files are also accessible from WAIS (Wide Area Information System) under comp.windows.x.motif, allowing keyword-based searches of the newsgroup articles (this time on machine services.canberra.edu.au (137.92.1.12)). ----------------------------------------------------------------------------- Subject: 11) Is the mail list motif-talk archived? Answer: If you have purchased support from OSF then you have access to their archive server for motif-talk. ----------------------------------------------------------------------------- Subject: 12) TOPIC: OSF, MOTIF and COSE ----------------------------------------------------------------------------- Subject: 13)+ How can I contact OSF? [Last modified: Apr 95] Answer: Here are several contact points: Licensing: (617) 621-7300 or direct@osf.org Technical Support: (617) 621-8990 or motif-defect@osf.org Mailing List: motif-talk@osf.org (requires Motif license) Subscribe to List: motif-talk-request@osf.org (ditto) Snail Mail: OSF, 11 Cambridge Center, Cambridge, MA 02142 World Wide Web: http://www.osf.org:8001/ ----------------------------------------------------------------------------- Subject: 14) What versions of Motif are there? [Last modified: Sept 94] Answer: Motif 1.0 is based on the R3 toolkit. There are patch releases to 1.0: 1.0.1, 1.0.A, 1.0.2 and 1.0.3, 1.0.4, 1.0.5. 1.0.A was a fairly major patch, as it involved a complete re-engineering of UIL and Mrm. Almost everyone who has 1.0.x has either 1.0.A or 1.0.3. Motif 1.1 is based on the R4 toolkit. The intial version was Motif 1.1.0. Motif 1.1.1 has been released as a patch to licensees with Full Support or Technical Update service. Motif 1.1.2 is a patch release which contains the necessary changes to fix over 80 bugs reported against Motif. It is available to support contract holders (including both full support and update service). The 1.1.3 release fixed a further 150 bugs and was available from August 1991 to support contract holders (including both full support and update service). 1.1.4 offers X11R5 support, but is not an X11R5 product. 1.1.5 was released in June 92 to licensees who hold a Motif Full Support or Update Support contract Motif 1.2.0 was released in April 1992 and is based on the X11R5 toolkit. It offers increased compatibility with international standards, PC-style behavior and binary compatibility with OSF/Motif 1.1 applications. New features include drag-and-drop, tear- off menus, toolkit enhancements and new documentation. toolkit. The code is totally ANSI C. OSF distributes a 10 pages sheet entitled "OSF/Motif R1.1 to R1.2: detailed overview of changes", which is available from OSF Motif direct channels. (617-621-7300 or email direct@osf.org) Motif 1.2.1 was released September 92. Due to an optimisation from 1.2.0 to 1.2.1 object code compiled under 1.2.1 (that is, using 1.2.1 header files) will not link with 1.2.0 libraries (and, very probably, clients that use shared libraries and are linked against 1.2.1 won't startup against 1.2). Motif 1.2.2 was released March 93. This release contains over 250 bug fixes, improved text, drag-and-drop features and has less than one reported defect per 1000 lines of code. from dbrooks@osf.org Motif 1.2.3 was released on September 13, 1993. The defect density is measured at < 0.8 known reports per thousand lines. In this release, we have paid particular attention to memory leaks, and have improved drag-and-drop performance greatly. Motif 1.2.4 was released April '94. From the OSF README: This patch release contains approximately 240 bug fixes for Motif 1.2. The number of CRs resolved in this release is about 330....Apart from the 64-bit changes, all changes made in this release are fixes for reported bugs. Motif 2.0 was released in August '94. For details, see the questions "Is there a concise features list for Motif 2.0?" and "What are the details about new features in Motif 2.0?" ----------------------------------------------------------------------------- Subject: 15) Is there a concise features list for Motif 2.0? [Last modified: Sept 94] Answer: (See the next question for a more detailed features list.) The following list is the OSF documentation located at the WWW URL: http://www.osf.org:8001/motif/list_features.html "Complete list of 2.0 features" ----------------------------- New widgets ComboBox. Notebook. Container/IconGadget. SpinBox. CSText. New features Thermometer Scale and tic marks. ScrollBar sliding/arrow and snapback modes. ScrolledWindow autoscroll and childType. Toggle indeterminate state and new visual. Colors in Gadgets. XmIm API for I18N. XmNlayoutDirection resource everywhere. Natural UnitType conversion syntax. XPM3 (colored icon) format support. The Uniform Transfer Model. General Rendition attributes in XmString (color, multiple fonts, etc) Several Display resources for CDE visual/behavior compatibility. New FileSelectionBox mode (again from CDE). Quick navigate in List. Oriented PanedWindow. Popup menus support. and much more... Extensibility Traits. C++ foundry. Widget writer doc. Exm widget source examples. Xme API (useful _Xm). Desktop Virtual MWM. Workspace Manager. TearOff menu in MWM. Client Command Interface. Colored icon pixmaps (from Xm). Performance & Quality No known Memory Leaks. XmString sharing. XmList creation/setup speedup. GC usage improved. Malloc/free usage. Bitmap allowed for pixmap resources. XmManager no longer blindly selects for PointerMotion XmFileSelectionBox better stat cache. Broader use of Hash tables. Better link profile (Trait + remodularization). X11R6 unofficial support. Hundreds of bug fixes. ----------------------------------------------------------------------------- Subject: 16) What are the details about new features in Motif 2.0? [Last modified: Sept 94] Answer: (See the previous question for a more compact features list.) NOTE: This is a posting by Douglas Rand that was composed by one of the OSF business managers, Darrell Crow (crow@osf.org). Also, OSF maintains its own Motif 2.0 FAQ: http://www.osf.org:8001/motif/MotifFAQ.html ...ksall@cen.com Date: 11 Jul 94 15:49:27 GMT From: uunet!ucbvax.Berkeley.EDU!agate!howland.reston.ans.net!spool.mu.edu!bloom-beacon.mit.edu!paperboy.osf.org!usenet (Douglas Rand) Organization: Open Software Foundation Subject: Motif 2.0 announcement To: uunet!lobo.gsfc.nasa.gov!motif The following was composed by one of our business managers, Darrell Crow (crow@osf.org), questions may be directed to him. ---------------------------------------- With this posting I hope to answer many questions I've been receiving regarding what is in Motif 2.0 and how does if differ from Release 1.2. This posting contains an overview followed by a bullet item listing of the features and benefits added to Motif in this release. If I didn't answer your questions feel free to direct them to me. At the end, I'll list additional documentation available from OSF. If you're also interested in the licensing and pricing information you can also contact me or the official OSF/Motif channel: direct@osf.org. I hope that this information update is of benefit to you. OSF/Motif has become the major Graphical User Interface (GUI) technology for Open Systems, as well as an IEEE 1295 standard. On Tuesday, June 21, OSF announced its next major release of OSF/Motif, Release 2.0. This release, which is the most extensive and colaborative release of Motif since Motif 1.0 was introduced five years ago, includes new features organized around four major themes: I. Extensibility, 2. Consistency, 3. Improvements and 4. CDE Convergence. Motif 2.0 was a collaborative development effort. Contributors to this release include Lotus Development, IBM, Hewlett-Packard, Digital Equipment, Integrated Computer Solutions, Computer Automation, Groupe Bull, HaL Computer Systems and Unix Systems Laboratories. This release had the goal of allowing developers to easily build new widgets and with support for C++ . This required new extensible features such as subclassing, traits, C++ support and detailed documentation. Like all Xt- based toolkits, subclassing requires detailed knowledge, experience and access to the source code to fully understand Motif's class methods. Motif 2.0 simplified this process by providing extensive documentation and allowing subclassing from the Primitive and Manager classes without requiring access to source code. Documentation of Motif's class methods are included in a new book, The OSF/Motif Widget Writer's Guide. This book provides all necessary information to subclass from Primitive and Manager and numerous examples of subclassing are provided. Traits are a new feature with Motif 2.0 which essentially allow a given behaviour to be associated to a widget irrespective of the widget hierarchial relationships. The number of applications developped in C++ is rapidly growing and C++ programmers are now able to derive new subclasses and still have those C++ widgets usable as regular widgets with the standard API in Motif 2.0 CDE (Common Desktop Environment) convergence. The previous version of OSF/Motif (Release 1.2) introduced major new features such as internationalization, drag-and-drop and tear-off menus. Those features were intended to allow application developers to produce interoperable, easy to use applications for a worldwide market. As a result, this technology was selected to become the basis of the Common Desktop Environment jointly developed by HP, IBM, Novell and SunSoft, proposed to become an X/Open standard. These features as well as the GUI extensions added to the CDE specifications have been added to Release 2.0. PC Consistency has been a major theme of this release. This includes improvements and completions to the toolkit that was begun with Motif 1.2 as well as the addition of seven new widgets (Container, Notebook, icon gadget, spinbox, combobox, CSText and thermometer) common to this environment and finally a new Style Guide. Extensive work has been expended to ensure the convergence of the Windows, CUA, CDE and Motif style both in technology and terminology into a single document. The work for this book will be submitted to the X/Open Fast Track process for incorporation into the X/Open set of specifications. Improvements to the OSF/Motif toolkit are far too numerous to adequately list here. However a brief mention of a few of the major improvements includes the addition of the Unified Transfer Model that simplifies data transfer by all Motif's previous methods, XPM support (ability to read colored icon file for pixmap resources), ScrolledWindow partial scroll and autodrag,Toggle checkmark, indeterminate state, documenting the input methods API for internationalization, upgrading UIL to support 64-bit architecture, platform independence, and support of the new extensibility features and widgets, and finally the Motif Window Manager support of virtual screen, workspace management protocol and root menu additions and etc. This release brings together the most requested features from development community with the single purpose of extending application developers' mission of producing portable, consistent and interoperable applications to the open systems community. Listing of the OSF/MotifR 2.0 Features and Benefits I. MORE EFFICIENT APPLICATION DEVELOPMENT Easier application development to meet new business opportunities and deploy applications faster... Benefit Allows easier extensions to Motif for custom user Features: * New, formal Xme API for integrating custom widgets interfaces, without access to Motif source code * All extensions using Xme API are "full citizens" * Widgets may be added to off-the-shelf Motif products, without recompiling Motif source code * Manager and primitive widget subclassing * C++ base classes provided for C++ widget development * C++ is used for inheritance, but X intrinsics are used for other characteristics * Trait mechanism for OSF/Motif widgets, allowing "multiple inheritance" of C class methods * Extensibility fully documented in Widget Writer's Guide, and Reference documentation * New OSF training: Widget Writing with Motif 2.0 * Examples of custom widgets in C and C++ Feature: Makes it easier for C++ developers to use Motif Benefit: * Motif source code compilable by C++ compiler * Ability to integrate C++ widget extensions (above) Feature: Allows easier exploitation of Motif features for end user benefits Benefit: XmNotebook * Subclass of XmManager * Organizes children into pages, tabs, status area and page scroller XmContainer * Subclass of XmManager * Manages IconGadget children XmIconGadget XmComboBox * Subclass of XmManager * Combines capabilities of a single line XmTextField and XmList XmSpinBox * Subclass of XmManager * Manages multiple traversable children XmScale (thermometer) widget * Subclass of XmManager * New resources added for thermometer behavior XmCSText * Subclass of XmPrimitive * Provides facilities which parallel XmText, but using XmString Uniform transfer model for primary transfer, * secondary transfer, cut and paste, drag and drop Uniform API (with backward compatibility) 2 new callback functions for target identifcation Misc. toolkit enhancements: * Menu system Simplified programming of popup menus Source code reorganization * X pix map (XPM) format, with multicolor icons Misc. toolkit enhancements (continued): * New rendering characteristics for XmString: renditions (fonts, color), tabs, localization components, parsing * List -- Quick navigate * Traversal -- drawing area traversable via keys, virtual key associated with multiple real keys * Visuals (in addition to Toggle Button) * XmScreen resources * Resolution independence -- unit conversion UIL enhancements: * Support for new and custom widgets * UID files -- platform independence * 64-bit architecture support Updates to documentation: Programmer's Guide, Reference Updates to OSF training: * Introduction to Programming * User Interface Design * 2.0 Technical Update Feature: Allows easy integration of applications with Common Desktop Environment (CDE) Benefit: * Contains foundation GUI for CDE * Client-command interface allowing other clients to add commands to MWM menus Feature: Allows easy migration of applications to Motif 2.0 Benefit * Upward binary compatibility of Motif 1.2 toolkit API (Motif 1.2 applications need only re-link) Feature Makes applications easier to troubleshoot & maintain Benefit * Overall quality improvements in Motif * Default density lower than 0.5 DPKLOC EASE OF USE Ease of use by individual computer users... at the application user interface level... Feature: Satisfies rising user expectations for ease of use, leveraging experience with other user interfaces Benefit: User interface capabilities equivalent to those on PCs: * Notebook widget * Container widget * ComboBox widget * SpinBox widget * Scale (thermometer) widget * Availability of formatted editable text Compound String text widget Compound String enhancements to support color, tabs, multiple fonts, etc. * Auto Scrolling * Vertical Paned Window * Update to User Guide Ease of use by individual computer users... at the desktop level... Feature: Allows easier integration with the desktop Benefit: * Contains foundation GUI for Common Desktop Environment (CDE) * Tear-off menu support of mwm's root menu Feature: Allows more natural organization of users' work Benefits: * Virtual screen (desktop panning) support * Workspace management protocol (for third party workspace management solutions that allow users to switch computing context "rooms" for different tasks) EASE OF ENTERPRISE COMPUTING Easier integration of Motif and Motif applications into the enterprise computing environment... Feature: Increases consistency of user interface style across platforms & applications; increases user skill portability Benefits: * Motif 2.0 Style Guide work Technical and terminology convergence among Motif, CDE and CUA * New widget support of converged style * Increased similarity to Windows & CUA behavior: Check marks and crosses in Toggle Button Indeterminate state in Toggle Button Ctrl Button 1 takes focus Menu unpost behavior Quick navigate in list Feature: Increases consistency of a complete user environment across open systems Benefits: * Consistency with the X/Open CDE specification, including virtually all CDE Motif vendor extensions: XmCascadeButton activation via BMenu Enhanced XmFileSelectionBox Default XmNshadowThickness to 1 Thermometer-style XmScale Color pixmaps in XPM format Additional virtual key bindings SpinBox, ComboBox Message catalogs for toolkit error messages Other items controlled by a global resource: ColorObject (standarizes colormap allocation for applications, to enable use of Style Manager application) BSelect and BTransfer integration Dragging non-selectable items disabled Use of TAB key -- XmPushButton navigation Visual additions to XmToggleButton Visual modifications to menus (etched in) Visual modifications to default button in dialogs (focus highlight outside of default visual) Visual modifications to MWM Additional drag icons * Compliance with IEEE 1295 standard * Consistency of Motif vendor implementations: AES Rev D for API stability Validation Test Suite 2.0 for certification Updated Quality Assurance Test Suite for consistency in quality * Continued support of the X Window system (based on * X11R5; tested also with X11R6 ) Feature: Ease of integrating Motif and PC environments Benefits: * Favorable licensing terms to support: PC client-server computing Deployment of PC applications using Motif DLLs * Style convergence to support hybrid user environments WORLD-WIDE ACCEPTANCE Even more acceptable as the preferred user interface for Open Systems, worldwide... Feature Applicable to a wider range of computer users Benefits: * Internationalization enhancements: New API for widget writers to make use of input methods Higher level of internationalization for Middle Eastern languages: Bi-directional layout -- left-to-right/right-to-left geometry management Bi-directional text editing -- left-to-right/right-to-left, single level (unsupported) * 64-bit architecture support * Favorable licensing terms to support: Single user systems Embedded systems Cross-vendor Motif upgrades Shared library distribution with applications * Performance Memory usage Start-up time, for list widget Decreased X resource usage Various optimizations ADDITIONAL AVAILABLE DOCUMENTS FROM OSF. OSF/Motif 2.0 Datasheet OSF/Motif 2.0 Price List OSF/Motif 2.0 Licensing Kit OSF/Motif 2.0 Laymen's Explanation OSF/Motif 2.0 FAQ X/Journal July-August Feature Article on Motif 2.0 FOR MORE INFORMATION ABOUT OSF/MOTIF 2.0, PLEASE CONTACT OSF DIRECT CHANNELS AT: (617)621-7300; email: direct@osf.org OSF and Motif are registered trademarks of the Open Software Foundation, Inc. [end of message from Darrell Crow (crow@osf.org)] ----------------------------------------------------------------------------- Subject: 17) Where can I find Motif 2.0 documentation? [Last modified: Mar 95] Answer: Kevin Till of OSF posted a note saying that the Prentice Hall versions of the Motif 2.0 books are available. Call OSF Direct Channel at (617) 621- 7300 or your neares t bookstore to order. The Motif 2.0 README file says: The complete Motif documentation set is made up of the following documents: o Application Environment Specification - User Environment Volume o OSF/Motif Programmer's Reference o OSF/Motif Programmer's Guide o OSF/Motif Release Notes o OSF/Motif Style Guide o OSF/Motif User's Guide o OSF/Motif Widget Writer's Guide These documents are contained in one of the major subdirectories (./doc) of the Release 2.0 tree. For more Details, see Chapter 7 of the README file at the top level of the Motif 2.0 source tree. ----------------------------------------------------------------------------- Subject: 18) Where can I get Motif? [Last modified: Feb 95] Answer: Various hardware vendors produce developer's toolkits of binaries, header files, and documentation; check your hardware vendor, particularly if that vendor is an OSF member. Systems known to be shipping now: HP, SCO, ICS, Mips (RISCwindows=X11R3 + full Motif), IBM, Data General for AViioNs (includes UIL), Bull (?), Concurrent Computer Corporation 5000, 6000, 8000 series machines, Convex, Sequent. In addition, independent binary vendors produce Motif toolkits . [A FAQ is for "personal opinions" on these toolkits. I don't think it is appropriate to give such opinions through this particular posting, so I haven't included any.] Integrated Computer Solutions, Inc. (ICS) 201 Broadway, Cambridge, MA 02139 USA info@ics.com 617/621-0060 ICS provides binary distributions of Motif for Sun platforms. Other platforms are available as well, call or send mail for current info. ICS also provides in-depth programming support for Motif and additional tools such as Builder Xcessory, a Motif interface builder, and the Widget Databook, a source for third party, commercially available and supported widgets, class libraries, and subsystems. Quest (408-496-1900) sells kits for Suns, as well; IXI offers Motif 1.2.4 for HP-UX, IBM AIX, SunOS and Solaris (SPARC and Intel). You can contact IXI at: IXI Corporation IXI Limited IXI Japan 400 Encinal Street Vision Park 24-3 Oohashi 2 Chome Santa Cruz Cambridge Meguro-ku California CB4 4ZR Tokyo 153 CA 95061-1900 England Japan Tel: (408) 427 7700 +44 (0)1223 518000 +81 3 5486 2155 Fax: (408) 427 5407 +44 (0)1223 518001 +81 3 5486 1833 Advanced User Systems Pty Ltd is an Australian distributor of IXI Limited (X.desktop, Motif, Wintif, Panorama) as a User Pack or Developer Pack, full technical support, and updates: Advanced User Systems Pty Ltd info@aus.oz.au 2 Rudd Street North Ryde NSW 2113 Australia Ph: +61 (0)2 878-4777 Fax: +61 (0)2 878-6951 Sun Microsystems is now shipping IXI Motif 1.2.2. NSL (+33 (1) 43 36 77 50; requests@nsl.fr) offers kits for Sun4. Carsten Hammer Schwindstr (chammer@POST.uni-bielefeld.de) reports that he could not find Motif for a Sun3 from any vendor. In Australia, Information Technology Consultants Pty Ltd has Motif 1.1.2 for Sun Sparc 4.1 ( phone on (02) 360 6999, fax on (02) 360 6695 or e-mail to motif@itcsyd.itc.oz.au) SILOGIC (+33 61.57.95.95), 78 chemin des Sept Deniers - 31200 TOULOUSE FRANCE sells Motif 1.1 and 1.2 on Sun4 machines. They also provide customers with Motif maintenance and support, and do consulting on the X window System at large, including software development. Metro Link Inc., has Motif Runtime and Development packages available for a variety of operating systems: AT&T SVR3.2, ISC, Linux, LynxOS, QNX, SCO, SINIX, Solaris, SunOS, SVR4, UnixWare, and Venix. All versions ship with shared library version of libXm. Metro Link Inc. 4711 N. Powerline Rd., Ft. Lauderdale, Florida 33309 Voice: +1.305.938.0283 Fax: +1.305.938.1982 Email: sales@metrolink.com BIM (Fax : +32(2)759.47.95) offer Motif 1.1 for Sun-3, Sun-4, Sun-386i. Includes shared libraries. An OSF/Motif source license must be obtained from OSF before source can be obtained from the Open Software Foundation. Call the Direct Channel Desk at OSF at 617-621-7300 or email direct@osf.org for ordering information. In addition to the full Motif source, "option C" allows you to purchase source for the window manager mwm to run on X terminals. Bluestone offers Motif for $99. Bluestone's MWM is the compiled version of OSF/ Motif for Sun/SPARC. It is plain vanilla Motif based on X11 and Xt Intrinsics. There is no license manager. Platforms: Sun/OS 4.1+ and Solaris V2.1,2.2. Contact: Bluestone @609-727-4600 ----------------------------------------------------------------------------- Subject: 19) Is there a list of Motif bugs? Answer: With each patch release of Motif shipped, there is a list of known bugs provided. The filename on the tape is "./OPENBUGS". There is also a list of all the issues closed/resolved in that patch. That is found as part of the "./README-1.1.n" (where n is the patch number) file. These are the only OSF published lists. No one else seems to publish a list. ----------------------------------------------------------------------------- Subject: 20)+ Where can I get a Motif 1.2 Certification Checklist? [Last modified: Apr 95] Answer: Kevin Till (kev@osf.org) of OSF wrote: "The Checklist comes with the OSF/Motif 1.2 Style Guide documentation. It's in the Appendix B section." ----------------------------------------------------------------------------- Subject: 21) What is COSE and how does it relate to Motif? [Last modified: Sept 94] Answer: NOTE: This info dates back to a Nov. '93 conference. Most of the words should be credited to the lecturer, Nicholas J. Aiuto (nick@ps.quotron.com) of Cadence Design Systems, Inc. Any mistakes or inaccuracies are mine, however. I would appreciate updates and corrections...ksall@cen.com COSE is Common Open Software Environment, a major interoperability effort started by HP, Sun, Novell/UNIX System Labs (USL), IBM, and SCO, with over 70 other companies pledging their support. The COSE announcement was made in March, 1993 and a "COSE CDE Conference" was held in San Jose in October, 1993. CDE is the Common Desktop Environment component of COSE. CDE is "a specification for components and services to give the UNIX desktop common and consistent capabilities like those found in other widely used environments (Mac, Windows)." [from class notes] CDE is not public domain; it will be provided by major vendors, possibly at extra cost as unbundled s/w approximately mid 1994. CDE will be based on Motif 1.2 and X11R5, although Motif 2.0 and X11R6 are expected around the same time. (CDE will be ported to Motif 2.0 eventually.) A CD-ROM was distributed at the October, 1993 conference, but this was "alpha" s/w, strictly for evaluation purposes, not for development. Another COSE/CDE Snapshot CD-ROM was released in April '94, available for HP, IBM, Novell, and Sun platforms. Overview -------- Standards are to be defined in these areas: - desktop - networking - objects - graphics - system management CDE Functional Groups: High Level: - Desktop Management - Productivity Tools Low Level: - GUI Display and Printing - Application Integration - "Guidelines": a 100+ pg. checklist which is a superset of Motif's CDE Desktop Management ---------------------- - Login Manager: like xdm - Session Manager: saving state based on ICCCM and HP's VUE [vuesession] - Workspace Manager: virtual screens; rooms; virtual win mgr - Front Panel: object and window management; access to favorite apps - File Manager: icon drag and drop - Application Manager - Style Manager: configure Session Mgr (colors, fonts, HOME session) Productivity Tools ------------------ - Text Editor: based on XmText widget; not very fancy - Icon Editor: color pixmaps; based on HP's vueicon; need 16 icons per app - Help Viewer: can access app help without running application - Mailer and Calendar: can talk to each other - Terminal Emulator: improvement on xterm - Calculator - Create "Action": something you tell your system to do and associate with a specific icon (e.g., starting a favorite app); can also tag a specific command line and add to your desktop GUI Display and Printing ------------------------ - Motif 1.2 with extras, X11R5 - New widgets (subclasses of similar widgets to be in Motif 2.0): o ComboBox o SpinButton - dtksh: windowing Korn shell, a robust UNIX shell interface to X, Xlib, and Xm - Application Builder: port of Sun's DevGuide [not yet available] - X Print Server and X Server Print Extension Application Integration ----------------------- - Data Interchange o Drag and Drop (DND): based on Motif 1.2 with improvements o Bento container format: "Japanese lunchbox" compartmented container developed by Apple; stores compound document on disk; apps can find audio compartment, for example 100-page document describes Bento - ToolTalk o messaging/IPC facility developed by Sun o CDE message sets (sample msgsd: iconify yourself, close down, etc.) - Actions o define what can be done with files or arbitrary data (e.g., audio) - Data Typing o define data classes for objects (e.g., PS file, C source code) Guidelines ---------- - Common Fonts (about 16): proportional, monospaced, with or without serif - Internationalization (I18N) compliance - Client/Server o Network execution model o end user model o system admin model: facilitates easy installation of new CDE-compliant apps o ISV model - Certification Checklist: 100 pages; superset of Motif 1.2 Certif. Checklist ----------------------------------------------------------------------------- Subject: 22) Is there a CDE FAQ or newsgroup? [Last modified: Feb 95] Answer: The COSE FAQ is located at: http://proper.com:70/0/faqs-link/common-faqs/faqs/cde-cose-faq or http://www.cis.ohio-state.edu/hypertext/faq/usenet/cde-cose-faq/faq.html There is also a newsgroup called news:alt.windows.cde ----------------------------------------------------------------------------- Subject: 23) What is PST? [Last modified: Dec 94] A. Kristen Knotts writes: PST stands for Pre-structured Technology. This is a new process, which evolved from the 1993 COSE (Common Open Software Environment) initiative, used by the Open Software Foundation (OSF) to procure and deliver technology to the industry more quickly than the existing Request For Technology (RFT) process. For more information on OSF and its acronyms (e.g., PST, RFT, RFC), contact OSF Direct (direct@osf.org) or literature-request@osf.org. ----------------------------------------------------------------------------- Subject: 24) Does OSF's PST process impact CDE evolution? [Last modified: Dec 94] A. In response to some questions from Marc Prokop (prokop@acri.fr), Elizabeth Connolly of Open Software Foundation wrote: You're correct that CDE (1.0) was developed on Motif 1.2. You're also correct that OSF included in Motif 2.0 several extensions to Motif 1.2 that were made by the CDE 1.0 implementors. Despite OSF's inclusion of these extensions, OSF is not involved in CDE 1.0 development. As you may know, OSF has a new process, called the Pre-Structured Technology (PST) process, for joint development projects. Further evolution of both CDE and Motif (that is, beyond CDE 1.0 and Motif 2.0) is expected to be handled under this process. In fact, a group of companies is at work now on a PST proposal for submission to the OSF Board of Directors. Such a PST would provide for management of the "compatibility" between Motif and CDE. You could acquire more information about CDE 1.0 by querying one of the companies involved in CDE 1.0 (HP, IBM, Novell, and Sunsoft.) ----------------------------------------------------------------------------- Subject: 25) Because of COSE, is Motif now in the public domain? Answer: The *specification* for Motif is no longer controlled by OSF, but by X/Open. This does not affect the *implementation*. The implementation is still in the hands of OSF, and will not be released into the public domain. So no, the OSF source code will still only be available to those who buy a source code license from OSF. The specification does not include UIL or obsolete features (ie 1.0 bugs in design), but these will continue to be supported by the OSF code. ----------------------------------------------------------------------------- Subject: 26) What is DCE? [Last modified: Dec 94] A. From "The Free On-line Dictionary of Computing" (http://wombat.doc.ic.ac.uk/) by Denis Howe : (DCE) An architecture consisting of standard programming interfaces, conventions and server functionalities (eg. naming, distributed file system, remote procedure call) for distributing applications transparently across networks of heterogeneous computers. DCE is promoted and controlled by the Open Software Foundation (OSF). From Kristen Knotts : NEWTON, MA, November 1, 1994 -- The Open Software Foundation today announced the general availability of Release 1.1 of the Distributed Computing Environment (DCE). This release includes, - Major new enhancements to system administration, including a consolidated interface for administration throughout DCE, plus a capability allowing for the remote start-up and shut-down of remote services; - Enhancements to security, including a Generic Security Service API (GSSAPI) which allows non-RPC based systems to take advantage of DCE security, extended registry attributes allowing various proprietary systems to be registered in the DCE security registry, as well as security delegation and auditing capabilities; - Enhancements to internationalization which include standardized POSIX and X/Open interfaces and provide character code set interoperability and - General performance enhancements. Contact: Jane Smeloff, Open Software Foundation, (617) 621-8997 ---------------------------------------------------------------------------- END OF PART ONE ----------------------------------------------------------------------------- Subject: 27) Where can I get public domain Motif source? Answer: You cannot. Motif source is not publically available. However, see "Has anyone done a public domain Motif lookalike?" ----------------------------------------------------------------------------- Subject: 28) Are Motif code examples publically available? [Last modified: Mar 95] Answer: OSF has produced a list of which of the example programs can be distributed. Call OSF Direct for a copy of it. Most of the example programs have been freed from distribution limitations so should be available. Source code posted to comp.sources.x often uses Motif. In addition, many Motif programs are available via anonymous ftp from ftp.x.org. The following are listed alphabetically by author. (See the "BOOKS" topic.) If you don't understand the URL notation below, see 'What is an URL?' subject. Thomas Berlages's book: ftp://ftp.x.org/R5contrib/berlage.motif.tar.Z Dan Heller's book: ftp://ftp.x.org/R5contrib/OReilly/motif/examples.tar.Z Donald L. McMinds's book: ftp://ftp.x.org/R5contrib/mastering.motif.tar.Z and ftp://ftp.x.org/R5contrib/master.1.2.tar.Z Jan Newmarch's book: ftp://ftp.x.org/R5contrib/newmarch.tar.Z Jerry Smith's book: ftp://ftp.x.org/R5contrib/smith.ooxt.tar.Z Doug Young's source code for the current editions of his several books: ftp://ftp.x.org/contrib/book_examples/young.cxx.tar.Z ftp://ftp.x.org/contrib/book_examples/young2.motif.tar.Z ftp://ftp.x.org/contrib/book_examples/young.debug.tar.Z Doug Young's examples for OLDER editions of his books: ftp://ftp.x.org/R5contrib/young.cxx.tar.Z ftp://ftp.x.org/R5contrib/young.motif.tar.Z ftp://ftp.x.org/R5contrib/young.motif2.tar.Z ftp://ftp.x.org/R5contrib/young.tar.Z Examples appearing in "The X Resource" (by O'Reilly and Associates) appear organized by issue in the directory: ftp://ora.com/pub/examples/xresource or: ftp://ftp.uu.net/published/oreilly/xresource Examples from O'Reilly and Associates books can be found in subdirectories of: ftp://ora.com/pub/examples/xbook or: ftp://ftp.uu.net/published/oreilly/xbook Also from a list maintained by: qizeng@acsu.buffalo.edu (Qi Y. Zeng) FTP sites for X/MOTIF source code examples: ftp://ftp.uu.net/published/books/brain.motif.tar.Z ftp://ftp.uu.net/published/books/pwm-examples.tar.Z Marshall Brain's Motif tutorials can be found at: http://www.iftech.com/ Does anyone know what this is? ftp://ftp.x.org/R5contrib/pwm-xmpl.tar.Z ----------------------------------------------------------------------------- Subject: 29) Has anyone done a public domain Motif lookalike? [Last modified: Oct 94] Answer: The specification is available (AES), and the validation suite can be bought, but no-one has taken up the challenge. There are some commercial lookalikes (Looking Glass and Neuron Data), but no workalikes. Applications that follow the Style Guide might be certified Motif-compliant through the checklist process, even though they're not using OSF/Motif binaries. Tcl/Tk is available for ftp from allspice.berkeley.edu, and although implemented without Xt, has a "strict Motif" mode. Strom Sytems (18666 Redmond Way o-2118, Redmond, WA 98052-6725) have a Simple Toolkit for X-Windows (sic) that appears to follow the Style Guide even though it doesn't quite look like Motif. MOOLIT is a USL product that can be runtime switched between the Sun Open Look and Motif appearance. It is based on OLIT 4i. Interviews is a C++ based product with appearance similar to Motif. A ftp- able version is on interviews.stanford.edu. A commercial version is available as InterViews Plus. Simon J. Lyall (simon@darkmere.midland.co.nz) reported about a package called: Xu-lib & Widget Set- a library & widget set to "emulate" the look&feel and the programming interface of OSF/Motif. Contact the author Udo Baumgart (U.BAUMGART@ldb.han.de) for details. ----------------------------------------------------------------------------- Subject: 30) Does anyone from OSF pay attention to our questions/suggestions? Answer: Yes, and they quite often post answers too. But they may not respond to *your* problem because they have other things to do as well. This newsgroup is not run by OSF, and has no formal connection with OSF. OSF is a member-driven company. The membership (and anyone can be a member) provides the primary input for future development of Motif. ----------------------------------------------------------------------------- Subject: 31) Does OSF have an application compliance validation service? Answer: They have a checklist and a certification process which you can request from them. Ask for the Level One Certification Checklist. The process is one of self-certification. It tests only the appearance and behavior of the application against Motif style. The product will also be put in the OSF reference listing. There's a one-time fee of $250. According to the master license agreement, you can't use any OSF identifying mark unless you have done a certification. ----------------------------------------------------------------------------- Subject: 32) What is the motif-talk mailing list? Answer: The motif-talk mailing list is only for those who have purchased a Motif source code license. You can be placed on this list by emailing to motif-talk-request@osf.org, citing your Company name and source license number. ----------------------------------------------------------------------------- Subject: 33) What MIT patches do I use, and when do I use fix-osf? Answer: The Motif 1.1.0 tape contains MIT patches 1-14. Apply these and any others you can get. If your MIT patch level only goes up to fix-16, you also need to apply fix-osf. Fix-osf was an emergency patch for a problem that existed when the Motif 1.1 tape was cut, The MIT fix-17 completely superseded osf-fix, so if you have applied fix-17 do not apply fix-osf. The 1.1.1 tape contains MIT fixes 15-18, as well as an OSF-developed fix that deals with a subtle bug in the Selection mechanism of the Intrinsics. Most people will have fix-15 to 18 by now; if you don't have them: Back out fix-osf if you have applied it Apply fix-15 to 18 Apply fix-osf-1.1.1 The Selection fix was submitted to MIT, who came up with a different fix. It will not be made into an R4 fix but should be in R5. The MIT fix was posted to motif-talk. ----------------------------------------------------------------------------- Subject: 34) How does Motif work with X11R5? Answer: Motif 1.1.X is only intended to be built with X11R4. Motif 1.2.X is for X11R5. however, Motif 1.1.4 has been set to also work with X11R5. For Motif 1.1.1, 1.1.2 and 1.1.3 you will need to compile Xlib and Xt with a MOTIFBC flag set to YES (page 8, section 3.3 of the R5 release notes), or you'll also have a link problem (LowerCase) and a fatal run time problem (XContext manager). If your applications come up with "Unknown keysym name: osfActivate" errors, check the variable ProjectRoot. The name /$PROJECTROOT/lib/XKeysymDB will have been wired into your Xlib. In Motif 1.1.0, XtCallCallback uses NULL as the first argument instead of a widget ID. This was ok under R4, but must be changed in the source for R5. It was changed by OSF from Motif 1.1.1 onward. Mrm won't work at all (can't link since it uses an X private variable that has disappeared in R5). There is an MIT patch that may fix this?? ----------------------------------------------------------------------------- Subject: 35) How can I find which version of Motif I have? [Last modified: October 93] Answer: The macro XmVERSION gives you the version number. The macro XmREVISION gives you the major revision number. The macro XmVersion combines these e.g. a value of 1002 is Motif 1.2. To find the minor revision number is not easy. From Motif 1.1.3 onwards, try this: 'strings `which mwm` | grep OSF'. to get the full version number e.g. 1.1.3. In Motif 1.2, the macro XmUPDATE_LEVEL was added to give the minor revision number. + ( above also known as the patch level). + In addition there was a macro string added, XmVERSION_STRING which has all + the above info in a char string. + grepping through a strings of libXm.a for OSF can also sometime give + something useful. Version X11R6 is due out in spring of 1994 (april 15?) thanks to hops@x.co.uk Mike Hopkirk ----------------------------------------------------------------------------- Subject: 36) TOPIC: MOTIF and the WORLD WIDE WEB (WWW) ----------------------------------------------------------------------------- Subject: 37) Where's an HTML version of the Motif FAQ on World Wide Web (WWW)? [Last modified: Feb 95] Answer: An automatically generated HTML version of this Motif FAQ can be found at WWW URL: http://www.cis.ohio-state.edu/hypertext/faq/usenet/motif-faq/top.html For a searchable version of the Motif FAQ and other FAQs (via WAIS), see: http://www.cs.ruu.nl/cgi-bin/faqwais The WAIS search is great way to find a topic which may appear in several FAQs (Motif, X, Xt, Widget FAQ, etc.) ----------------------------------------------------------------------------- Subject: 38)* What are other interesting WWW URLs which are related to Motif? [Last modified: Apr 95] Answer: NOTE: In subsequent postings of this FAQ, this answer will either not be updated or will be removed. Instead, I have created a Web page called "MW3: Motif on the World Wide Web" ( http://www.cen.com/mw3/ ). See the next subject! Thanks to Sonja Kowalewski for several updates. See http://www.x.org/ for the X Consortium welcome document (which contains links to getting X source code, intro to the X Consortium, X Technical Conference, the public ftp file server (ftp.x.org), and more. See http://www.nads.de/EXUG/EXUG.html for the EXUG (European X User Group) home page. See http://www.osf.org:8001 for the OSF Home Page. See http://www.osf.org:8001/general/members.html for links to several OSF Sponsor and Member Web Servers. See http://www.osf.org:8001/motif/list_features.html for a "Complete list of 2.0 features". See http://www.osf.org:8001/membserv/ OSF End User Forum and OSF Member Services. See http://www.osf.org:8001/motif/MotifFAQ.html for "OSF ANSWERS FREQUENTLY-ASKED OSF/MOTIF(R) QUESTIONS", including OSF/Motif Release 2.0 Questions, OSF/Motif Licensing. and OSF/Motif and the Common Desktop Environment. See http://riwww.osf.org:8001/ for the OSF Research Institute home page. See http://www.let.rug.nl/FWF/ for the Free Widget Foundation (FWF) Home Page. See http://www.ora.com/ for O'Reilly & Associates, Inc. Home Page See http://freedom.lm.com/freedom.html for Freedom Software ("Everything under the Sun regarding Motif"). See http://freedom.lm.com/review.html for Freedom Software's page with links to a review of Motif builders, list of Motif interface builders, commerical widgets, etc. See http://www.nads.de/EXUG/FAQ.html EXUG's FAQ list (X, Xt, Widgets, Motif, InterViews, Fresco, etc.) See file://134.130.161.30/arc/pub/unix/html/motifcorner.html for Harry's Motif Programming Corner (tips and tricks, including code). See http://www.wri.com/~cwikla/widget/ for John L. Cwikla's Widget FAQ Home Page (Composite Widgets, Non-Composite Widgets, Motif 1.1 Compatible, Motif 1.2 Compatible, Athena Compatible, FWF Widget Set, By Author, Shareware Widgets, Commercial Widgets). See http://www.wri.com/~cwikla/xlopedia/ for Xlopedia (by John L. Cwikla) to become the "definitive source on X information." See http://www.cs.cmu.edu:8001/afs/cs.cmu.edu/user/bam/www/toolnames.html for Brad A. Myers' `User Interface Software Tools' list (which is not limited to Motif tools). See http://www.eit.com/software/winterp/winterp.html for WINTERP 2.0 Home Page (Niels Mayer). See http://www.ics.com/ for information about products sold by Integrated Computer Solutions. Included are product descriptions and lots of Frequently Asked questions (and answers!). See http://akebono.stanford.edu/yahoo/Computers/Operating_Systems/Windowing_Systems/X_Window_System/Motif/ for a collection of links to Motif info (including some of the above). See http://www.cm.cf.ac.uk/Dave/X_lecture/X_lecture.html for David Marshall's Motif tutorial with source code and illustrations. See http://www.aiai.ed.ac.uk/~jacs/wxwin.html for wxWindows information (toolkit for platform-independent GUI programming in C++). See http://landru.unx.com/SIGS/TXJ/docs/txjhome.html for TXJ (The X Journal) ONLINE". This page has a number of interesting links including one to the X Bibliography. See http://landru.unx.com/SIGS/TXJ/docs/bib/ for the X Bibliography. ----------------------------------------------------------------------------- Subject: 39)+ Is there a central location for Motif information on the WWW? [Last modified: Apr 95] Answer: ksall@cen.com has created a Web page called "MW3: Motif on the World Wide Web" http://www.cen.com/mw3/ which contains numerous URL links to Motif and X11 topics such as: o FAQs: Motif, COSE, Widget, Xt, X11, Xapps, etc. o Widgets, Toolkits, Libraries, and GUIs o Code Examples and Tutorials o Organizations o Tips and Pointers o Publications and References o Usenet Newsgroups o Personal Home Pages MW3 will be updated very frequently; the "Last updated" timestamp appears at the bottom of the page. There is also a feedback form for submitting corrections and suggestions for additions. Both MW3 and the Motif FAQ are sponsored by Century Computing, Inc. http://www.cen.com/ ----------------------------------------------------------------------------- Subject: 40)* Which X and Motif developers have their own home page URLs? [Last modified: Apr 95] Answer: This subject provides an opportunity for me to thank some of you for your invaluable contributions (direct or indirect) to this FAQ and, at the same time, to make it easy for the X and Motif community to contact you. Contributions and corrections appreciated. It is also a way to keep a current contact list for some of you who have moved to other companies. Requirements for inclusion in this list: (a) have at least 2 contributions in the Motif, X, or Xt FAQ; or work directly for OSF or the X Consortium; (b) have your own home page (not just their company's home page); (c) submit the following info in this 4-line format: First_name Last_name Your_home_page_URL mailto:email_address which FAQ your name/address appears (Motif, X, or Xt) NOTE: Be sure to put "For Motif FAQ" as your email subject. Send it to ksall@cen.com mailto:ksall@cen.com X and Motif developer home pages listed in alphabetical order by last name: John L. Cwikla http://www.wri.com:80/~cwikla/ mailto:cwikla@wri.com Daniel Dardailler http://www.x.org:80/people/daniel/ mailto:daniel@x.org Kaleb S. Keithley http://www.x.org/people/kaleb/kaleb.html mailto:kaleb@x.org Ken Lee http://www.rahul.net/kenton/ mailto:kenton@rahul.net Doug Rand http://reality.sgi.com/employees/drand/ mailto:drand@sgi.com Ralph R. Swick http://www.x.org/people/swick.html mailto:swick@x.org ----------------------------------------------------------------------------- Subject: 41) Where can I get the HTML widget used in Mosaic? [Last modified: Oct 94] Answer: From Ken Sall (ksall@cen.com): The HTML (HyperText Markup Language) widget is part of the NCSA Mosaic source code, located in the directory: Mosaic/Mosaic- source at ftp.ncsa.uiuc.edu (URL: ftp://ftp.ncsa.uiuc.edu/Mosaic/Mosaic- source/ ) For example, one version is: Mosaic-2.4.tar.gz. When you uncompress (gunzip) and untar the source, look in the directory libhtmlw for HTML.c, HTML.h, HTMLP.h, etc. For documentation, see http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/htmlwidget.html . For information on using Mosaic by remote control, see http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/remote-control.html Here are more details from ah627@FreeNet.Carleton.CA (Samuel Effah): To the numerous request for the NCSA HTML widget information. Everything not already copyrighted by CERN is copyrighted by NCSA (including the contents of the libhtmlw, libnet, libXmx, and src directories, but not including the contents of libdtm, which is entirely public domain). ... * The UI grants you (hereafter, Licensee) a license to use the Software * * for academic, research and internal business purposes only, without a * * fee. Licensee may distribute the binary and source code (if released) * * to third parties provided that the copyright notice and this statement * * appears on all copies and that no charge is associated with such * * copies. * * * ( you can read more about the copyright in the Mosaic source code ). Documentation on the HTML widget can be located at: http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/htmlwidget.html ( it's on the older version, I think Mosaic1.x ) For starters, you can compile directory Mosaic2.4/libhtmlw for the widget. Using: To create widget: htlmWid = XtCreateManagedWidget( "htlmWid", htmlWidgetClass, parent, htlmArgs, XtNumber( htlmArgs )); Callback for anchors: XtAddCallback(htlmWid, WbNanchorCallback, htmlRef, NULL); where htmlRef() looks like: static void htmlRef(widget, client_data, call_data) Widget widget; XtPointer client_data; WbAnchorCallbackData* call_data; { buffer = readHTMLFile( call_data->href ); XtVaSetValues( widget, WbNtext, buffer, NULL ); } where readHTMLFile() is char * readHTMLFile( in_file ) char *in_flie; { /* function to read a file and return its content, given the file's name */ } I think this is enough to start you off. Thanks to: Samuel Effah ----------------------------------------------------------------------------- Subject: 42) TOPIC: BOOKS and JOURNALS ----------------------------------------------------------------------------- Subject: 43) Is there a bibliography available? [Last modified: Mar 95] Answer: The X Bibliography, originally maintained by Ken Lee ( http://www.rahul.net/kenton/ ), is now maintained by the editor of "The X Journal" ( http://landru.unx.com/SIGS/TXJ/docs/txjhome.html ) Steve Mikes, uunet.uu.net!topgun!smikes. Steve regularly posts to comp.windows.x and ba.windows.x a list of reference books and articles on X and X programming. The X FAQ from comp.windows.x reproduces part of this list. The complete X bibliography is available from these directory URLs: ftp://ftp.x.org/contrib/docs/ (several suffixes) http://landru.unx.com/SIGS/TXJ/docs/bib/ (several suffixes) ----------------------------------------------------------------------------- Subject: 44)* Is there a Motif tutorial? [Last modified: Apr 95] Answer: See http://www.cm.cf.ac.uk/Dave/X_lecture/X_lecture.html for a hypertext Motif tutorial (by David Marshall) with source code and illustrations. Marshall Brain at brain@adm.csc.ncsu.edu posted a set of simple and useful Motif tutorials at http://www.iftech.com/ . Jan Borchers writes about his Xmtutor: A free version of "Xmtutor", a menu-driven Motif application that contains an interactive tutorial about programming with Motif with many executable examples, is available via anonymous ftp from ftp.uni-stuttgart.de, in: /pub/X11/programming/xmtutor-1.2/. Xmtutor is very useful to learn Motif easier than with a book, and it is a convenient Quick Reference and resource-settings testbed for Motif application developers. It has been tested on SUN Sparcs (SunOS 4.1) and DEC Alphas (OSF/1 1.3a), but should be working OK on most other Unix / X11R4/R5 / Motif 1.1/1.2 systems. The demo version contains all the information to get you started with Motif, and upon registration, which costs 49 DM, you get the complete tutorial, describing all widgets, other topics such as inter-client communication, Compound Strings, etc., as well as a formatted TeX file of the tutorial to print out, which gives you a complete book about Motif. ----------------------------------------------------------------------------- Subject: 45) What books are available for Motif programmers? [Last modified: Feb 95] Answer: NOTE: This answer is always "under construction". If you are the author of, or an avid fan of, a book not listed here, send mail to ksall@cen.com. Corrections especially regarding new editions and ISBN's would be greatly appreciated. Anyone have ISBNs on the Motif 2.0 editions of the Prentice Hall books? For Motif 2.0, see also the subject "Where can I find Motif 2.0 documentation?" as Prentice Hall has published the Motif 2.0 documentation. Please send ksall@cen.com the ISBNs if you know them. Thanks! First, we present the official books from OSF. Then we include an alphabetical listing of selected books. (See the following question for Xt and Xlib books.) The "official" OSF/Motif books are: OSF/Motif Programmers Guide, Prentice-Hall ISBN 13-640525-8 (Motif 1.0), ISBN 0-13-640681-5 (Motif 1.1), ISBN 0-13-643107-0 (Motif 1.2) (NB: This makes use of the demo programs that you get with a Motif source license. The programs are not included and may or may not be available on your system.) OSF/Motif Programmers Reference Manual, Prentice-Hall ISBN 13-640517-17 (Motif 1.0), ISBN 0-13-640616-5 (Motif 1.1), ISBN 0-13-643115-1 (Motif 1.2) You will need this for the system calls. OSF/Motif Style Guide, Prentice-Hall 13-640491-X (Motif 1.0), ISBN 0-13- 640673-4 (Motif 1.1), ISBN 13-643123-2 (Motif 1.2) You will need this to get some idea of how to write programs with the correct `look and feel'. Next is an alphabetical listing (by author) of a number of essential books not by OSF but in wide use. I will attempt to keep this list current if the authors (or their readers) send me updates as new editions become available. Barkakati, Nabajyoti, X Window System Programming, SAMS. ISBN 0-672-22750-9. This contains a section on Motif. Berlage, Thomas Berlage, OSF/Motif: Concepts and Programming, Addison-Wesley, UK, 1991. ISBN 0-201-55792-4. Ferguson, Paula & Brennan, David, Motif Reference Manual, Volume 6B, O'Reilly & Associates, 1st Edition June 1993, 920 pages, ISBN: 1-56592-038-4. "Dan Heller's Motif Programming Manual [Volume 6A, below] has long been considered the most authoritative and insightful work on Motif. Now, with the addition of this companion reference manual, programmers can dispense completely with the original OSF documentation. In addition to covering the entire Motif toolkit, this book also covers OSF's "User Interface Language" or UIL, and the Motif Resource Manager (MRM) functions used to tie together applications with user interfaces defined in UIL." Flanagan, David, Motif Tools: Streamlined GUI Design and Programming with the Xmt Library, O'Reilly & Associates, 1st Edition August 1994, 1024 pages, ISBN: 1-56592-044-9. "Motif Tools and the Xmt programming library that accompanies it on CD-ROM offer resources to empower Motif programmers and dramatically speed up application development with the X Toolkit and Motif. The Xmt library contains nine custom widgets and over 250 convenience routines that handle many tricky aspects of GUI programming. The Layout widget, for example, is an incredibly flexible manager widget that makes the confusing and awkward Motif Form widget a thing of the past. And a single Menu widget will create an entire pulldown menu system for your application by reading a special menu description from a resource file or your C code. Other features of the library dramatically simplify the use of Motif XmStrings, automate the transfer of data between the fields of an application's data structures and the widgets of its dialog boxes, and make it possible to automatically create a widget hierarchy completely described in a resource file." Heller, Dan, Ferguson, Paula M. & Brennan, David, Motif Programming Manual, Volume 6A, O'Reilly & Associates, 2nd Edition February 1994, ISBN: 1-56592- 016-3. "The Motif Programming Manual describes how to write applications using the Motif toolkit from the Open Software Foundation (OSF). The book goes into detail on every Motif widget class, with useful examples that will help programmers to develop their own code. Anyone doing Motif programming who doesn't want to have to figure it out on their own needs this book." Although updated for Motif 1.2, it is still usable with Motif 1.1. Johnson, Eric F. and Kevin Reichard, Power Programming Motif, second edition, MIS: Press, New York, NY, 1993. ISBN 1-55828-322-6. Johnson, Eric F. and Kevin Reichard, Professional Graphics Programming in the X Window System, MIS: Press, New York, NY, 1993. ISBN 1-55828-255-6. This book covers difficult topics such as combining non-default visuals and color overlay planes with Motif applications. Newmarch, Jan, The X Window System and Motif - A Fast Track Approach. Addison-Wesley, ISBN 0-201-53931-4. As the long-time maintainer of this Motif FAQ, Jan's book is bound to contain unusual and useful insights. O'Reilly and Associates publishes an entire series of books concerning different aspects of the X Window System, including a number of books about Motif, as well as books on Xlib, Xt, and PEX. In this FAQ, we list O'Reilly books by the authors' names. For a summary of all of O'Reilly's X11 series, see: ftp://ftp.x.org/contrib/docs/Xbibliography.OReilly As of this writing, however, the above list was somewhat out-dated. Therefore, telnet to gopher.ora.com, login as "gopher", select "Detailed Product Descriptions", and then select from the menu. WWW users can open this URL: gopher://gopher.ora.com/11/descriptions/ Sebern, Mark "Building OSF/Motif Applications: A Practical Introduction". The ISBN is 0-13-122409-3. Prentice-Hall. The book uses a large, realistic Motif application (a program to make slides for presentations) to demonstrate the use of Motif features. Both UIL and toolkit calls are discussed, though UIL is featured, both in the examples and in a reference chapter. Smith, Jerry, Designing X Clients with Xt/Motif, ISBN 1-55860-255-0 Morgan Kaufmann Publishers This adopts a higher-level approach to many of the objects that commonly occur in Motif but are not in the Motif API. Young, Douglas, "Object-Oriented Programming with C++ and OSF/Motif", Prentice Hall, 1992. ISBN 0-13-630252-1. Source code is ftp://ftp.x.org/contrib/book_examples/young.cxx.tar.Z Young, Douglas, "The X Window System: Programming and Applications with Xt, Motif Edition", Prentice Hall, 1994. ISBN 0-13-123803-5. This is the classic tutorial from 1989 updated for Motif 1.2. Source code is ftp://ftp.x.org/contrib/book_examples/young2.motif.tar.Z Young, Douglas, "Motif Debugging and Performance Tuning", Prentice Hall, 1995. ISBN 0-13-147984-9. Source code is ftp://ftp.x.org/contrib/book_examples/young.debug.tar.Z If you want to learn about UIL, one source is the "Motif Programmers's Guide" from Prentice-Hall. However, excellent UIL coverage appears in the O'Reilly and Associates books "Motif Programming Manual, Volume 6A" by Dan Heller and Paula M. Ferguson and in "Motif Reference Manual, Volume 6B" by Paula M. Perguson with UIL Material by David Brennan. (Yes, 6A and 6B were worth the wait!) ----------------------------------------------------------------------------- Subject: 46) Which Xt and X books would also be helpful? [Last modified: Feb 95] Answer: You will also need books and references on Xt and Xlib, such as: Asente, Paul J., and Swick, Ralph R., X Window System Toolkit, The Complete Programmer's Guide and Specification, Digital Press, 1990. The Xt bible. A treasury of information, excellent and invaluable. Distributed by Digital Press, ISBN 1-55558-051-3, Digital Press order number EY-E757E-DP; and by Prentice-Hall, ISBN 0-13-972191-6. Cutler, Ellie, Gilly Daniel, and O'Reilly, Tim, The X Window System in a Nutshell, O'Reilly & Associates, 2nd Edition April 1992, 424 pages, ISBN: 1- 56592-017-1. A quick reference guide to Xlib functions datatypes and events, Xt functions and datatypes, and the standard X clients. The second edition is expanded and covers X11R4 and X11R5. Flanagan, David, Programmer's Supplement for R5 of the X Window System, O'Reilly & Associates, 1991, ISBN: 0-937175-86-2. A programmer's guide to all the new features in X11R5, with reference pages for the new functions. [NOTE: Out-of-print; material incorporated in recent editions of Volumes 1, 2, 4 and 5. X11R6 supplement is in the works.] Flanagan, David, Editor, X Toolkit Intrinsics Reference Manual, Volume 5, O'Reilly & Associates, 3rd Edition April 1992, 916 pages, ISBN: 1-56592-007-4. "The X Toolkit Intrinsics Reference Manual is a complete programmer's reference for the X Toolkit. It provides reference pages for each of the Xt functions as well as the widget classes defined by Xt and the Athena widgets. This volume is based on Xt documentation from the X Consortium and has been re-edited, reorganized, and expanded... The third edition of Volume 5 has been completely revised. In addition to covering Release 4 and Release 5 of X, all the man pages have been completely rewritten for clarity and ease of use, and new examples and descriptions have been added throughout the book." Mui, Linda and Pearce, Eric, X Window System Administrator's Guide, Volume 8, O'Reilly & Associates, 1st Edition October 1992, CD-ROM Released May 1993, ISBN: 1-56592-052-X (with CD-ROM) "This book is the first and only book devoted to the issues of system administration for X and X-based networks, written not just for UNIX system administrators but for anyone faced with the job of administering X (including those running X on stand-alone workstations)..." A book for X system administrators, covering XDM, security, font management, X terminals, building X, etc. Available with a CD-ROM containing the complete X source code. Nye, Adrian, Xlib Programming Manual, Volume 1, O'Reilly and Associates, 3rd Edition July 1992, 824 pages, ISBN: 1-56592-002-3. "Updated to cover X11 Release 5, the Xlib Programming Manual is a complete guide to programming the X library (Xlib), the lowest level of programming interface to X. It includes introductions to internationalization, device-independent color, font service, and scalable fonts. Includes chapters on: X Window System concepts, A simple client application, Window attributes, The graphics context, Graphics in practice, Color, Events, Interclient communication, Internationalization, The Resource Manager, A complete client application, Window management, and Other programming techniques." Nye, Adrian, Editor, Xlib Reference Manual, Volume 2, O'Reilly & Associates, 3rd Edition June 1992, ISBN 1-56592-006-6. Contains reference pages, derived from the MIT specification, for all Xlib functions. The third edition covers X11R4 and X11R5, including all the new internationalization and Xcms (Color Management System) functions. Nye, Adrian & O'Reilly, Tim, X Toolkit Intrinsics Programming Manual, Motif Edition, Volume 4M, O'Reilly and Associates, 2nd Edition August 1992, 674 pages, ISBN: 1-56592-013-9. "Volume 4 is a complete guide to programming with the X Toolkit Intrinsics, the library of C language routines that facilitates the design of user interfaces with reusable components called widgets. It provides concepts and examples that show how to use the various X Toolkit routines. The first few chapters are devoted to using widgets; the remainder of the book covers the more complex task of writing new widgets. Volume 4 is available in two editions. The Motif Edition uses the Motif 1.2 widget set in examples, and covers X11 Release 5." Quercia, Valerie & O'Reilly, Tim, X Window System User's Guide, Motif Edition, Volume 3M, O'Reilly and Associates, 2nd Edition January 1993, 956 pages, ISBN: 1-56592-015-5. "The X Window System User's Guide, Motif Edition orients the new user to window system concepts and provides detailed tutorials for many client programs, including the xterm terminal emulator and the window manager. Building on this basic knowledge, later chapters explain how to customize the X environment and provide sample configurations. This alternative edition of the User's Guide highlights the Motif window manager, for users of the Motif graphical user interface. Revised for Motif 1.2 and X11 Release 5." Scheifler, Robert W., and Gettys, James, X Window System, The Complete Reference to Xlib, X Protocl, ICCCM, XLFD. Digital Press, 1992. The Xlib bible. Third edition covers X11R5. ISBN 1-55558-088-2, Digital Press order number EY-J802E-DP. For those interested in PHIGS and PEXlib, O'Reilly & Associates also publishes several books on these topics. See: gopher://gopher.ora.com/11/descriptions/prox ----------------------------------------------------------------------------- Subject: 47) Are there books for X11R6 yet? [Last modified: Feb 95] Answer: Check the X FAQ at: ftp://ftp.x.org/contrib/faqs/FAQ or http://www.cis.ohio-state.edu/hypertext/faq/usenet/x-faq/top.html Also O'Reilly and Associates have a mini-FAQ regarding their plans for X11 Release 6 books: http://nearnet.gnn.com/gnn/bus/ora/news/r6.html ----------------------------------------------------------------------------- Subject: 48) What relevant journals are available? [Last modified: Mar 95] Answer: "The X Journal" is published bimonthly by SIGS Publications, 212-274-0640. Editorial information: editors%topgun@uunet.uu.net, editors@unx.com. The WWW URL for "TXJ ONLINE" is: http://landru.unx.com/SIGS/TXJ/docs/txjhome.html "The X Resource: A Practical Journal of the X Window System" is published quarterly by O'Reilly and Associates, 800-998-9938. Editorial information: Paula Ferguson (paula@ora.com). In addition to the valuable articles which appear in regular issues, the January issue of each year (issues 1, 5, 9, 13, etc.) contains the proceedings of the Annual X Technical Conference (from 1992, 1993, 1994, and 1995, respectively) sponsored by the X Consortium. An on-line Table of Contents per issue can be accessed via gopher. Telnet to gopher.ora.com, login as "gopher", select "Detailed Product Descriptions", and then "X Resource". Alternatively, the WWW URL is: gopher://gopher.ora.com/11/descriptions/xres/ Source code examples published in "The X Resource" appear organized by issue in the directory: ftp://ftp.ora.com/pub/examples/xresource/ See the index file: ftp://ftp.ora.com/pub/examples/xresource/Index ----------------------------------------------------------------------------- Subject: 49) TOPIC: MWM and the SHELL WIDGET ----------------------------------------------------------------------------- Subject: 50) What is the difference between Motif and mwm? Answer: mwm is a window manager. Motif itself is made up of four parts: a User-Interface Guideline, an API toolkit of `C' routines which helps in the building of applications which conform to the Guideline, the window manager mwm, and a language UIL which is designed to ease user interface development. In general mwm will run an application built with any X-windows API, and in general an application built using the Motif toolkit will run under any window manager. ----------------------------------------------------------------------------- Subject: 51) Does anyone have an alternative set of 3-D defaults for a monochrome screen? Answer: This is obviously a matter of taste. Some alternatives suggested include !Benjamin Schreiber, bs@osf.osf.org, bs@cs.brandeis.edu Mwm*foreground: black ! Actually, when a window is Mwm*background: white ! deactivated, the background Mwm*backgroundPixmap: 50_foreground ! becomes white, insted of Mwm*topShadowPixmap: white ! 50% foreground (grey) Mwm*activeForeground: black Mwm*activeBackground: white Mwm*activeBackgroundPixmap: 50_foreground Mwm*activeTopShadowPixmap: white Mwm*menu*backgroundPixmap: background Mwm*menu*topShadowPixmap: 50_foreground Mwm*title*foreground: black Mwm*title*background: white Mwm*title*backgroundPixmap: white Mwm*title*topShadowPixmap: 50_foreground Mwm*title*activeForeground: white Mwm*title*activeBackground: black Mwm*title*activeBackgroundPixmap: black Mwm*title*activeBottomShadowPixmap: 50_foreground Mwm*feedback*backgroundPixmap: white or ! From: tsang@isi.com (Kam C. Tsang) Mwm*background: White Mwm*activeBackground: White Mwm*activeBackgroundPixmap: 25_foreground Mwm*foreground: Black Mwm*activeForeground: Black Mwm*menu*background: white Mwm*menu*foreground: black xterm*Foreground: black xterm*Background: white or ! From: ucsd.edu!usc!snorkelwacker!paperboy!yee (Michael K. Yee) Mwm*cleanText: True Mwm*activeBackground: white Mwm*activeForeground: black Mwm*background: white Mwm*foreground: black Mwm*client*activeBackgroundPixmap: 50_foreground Mwm*client*activeTopShadowPixmap: foreground Mwm*client*activeBottomShadowPixmap: background !Mwm*client*background: white !Mwm*client*foreground: black Mwm*client*backgroundPixmap: 75_foreground Mwm*client*topShadowPixmap: foreground Mwm*client*bottomShadowPixmap: background !Mwm*feedback*background: white !Mwm*feedback*foreground: black Mwm*feedback*backgroundPixmap: 50_foreground !Mwm*feedback*topShadowPixmap: 25_foreground !Mwm*feedback*bottomShadowPixmap: background !Mwm*menu*background: white !Mwm*menu*foreground: black Mwm*menu*backgroundPixmap: foreground !Mwm*menu*topShadowPixmap: foreground !Mwm*menu*bottomShadowPixmap: background !Mwm*icon*background: white !Mwm*icon*foreground: black Mwm*icon*activeBackgroundPixmap: 50_foreground Mwm*icon*activeBottomShadowPixmap: foreground Mwm*icon*backgroundPixmap: 75_foreground ----------------------------------------------------------------------------- Subject: 52) How can I modify the Motif window manager decorations? Answer: In resource files, use the window manager's client resource (which is the application) and the resource clientDecoration: Mwm*XClock.clientDecoration: none turns off all clock decorations. See the mwm(1) entry for other possibilities. Programmatically, set the VendorShell resource XmNmwmDecorations to appropriate values: MWM_DECOR_NONE (or a bitwise or of values). ----------------------------------------------------------------------------- Subject: 53) Is there an ICCCM compliant way of setting window manager decorations? Answer: Tom LaStrange (toml@LaStrange.COM) writes: "No, there is no ICCCM portable way to alter decorations." ----------------------------------------------------------------------------- Subject: 54) How can I put decorations on transient windows using olwm? Answer: From Jean-Philippe Martin-Flatin /********************************************************************** ** WindowDecorations.c ** ** Manages window decorations under the OpenLook window manager (OLWM). ** ** Adapted from a C++ program posted to comp.windows.x.motif by: ** ** +--------------------------------------------------------------+ ** | Ron Edmark User Interface Group | ** | Tel: (408) 980-1500 x282 Integrated Systems, Inc. | ** | Internet: edmark@isi.com 3260 Jay St. | ** | Voice mail: (408) 980-1590 x282 Santa Clara, CA 95054 | ** +--------------------------------------------------------------+ ***********************************************************************/ #include #include #include #include #include #include #include #include /* ** Decorations for OpenLook: ** The caller can OR different mask options to change the frame decoration. */ #define OLWM_Header (long)(1<<0) #define OLWM_Resize (long)(1<<1) #define OLWM_Close (long)(1<<2) /* ** Prototypes */ static void InstallOLWMAtoms (Widget w); static void AddOLWMDialogFrame(Widget widget, long decorationMask); /* ** Global variables */ static Atom AtomWinAttr; static Atom AtomWTOther; static Atom AtomDecor; static Atom AtomResize; static Atom AtomHeader; static Atom AtomClose; static int not_installed_yet = TRUE; static void InstallOLWMAtoms(Widget w) { AtomWinAttr = XInternAtom(XtDisplay(w), "_OL_WIN_ATTR" , FALSE); AtomWTOther = XInternAtom(XtDisplay(w), "_OL_WT_OTHER", FALSE); AtomDecor = XInternAtom(XtDisplay(w), "_OL_DECOR_ADD", FALSE); AtomResize = XInternAtom(XtDisplay(w), "_OL_DECOR_RESIZE", FALSE); AtomHeader = XInternAtom(XtDisplay(w), "_OL_DECOR_HEADER", FALSE); AtomClose = XInternAtom(XtDisplay(w), "_OL_DECOR_CLOSE", FALSE); not_installed_yet = FALSE; } static void AddOLWMDialogFrame(Widget widget, long decorationMask) { Atom winAttrs[2]; Atom winDecor[3]; Widget shell = widget; Window win; int numberOfDecorations = 0; /* ** Make sure atoms for OpenLook are installed only once */ if (not_installed_yet) InstallOLWMAtoms(widget); while (!XtIsShell(shell)) shell = XtParent(shell); win = XtWindow(shell); /* ** Tell Open Look that our window is not one of the standard OLWM window ** types. See OLIT Widget Set Programmer's Guide pp.70-73. */ winAttrs[0] = AtomWTOther; XChangeProperty(XtDisplay(shell), win, AtomWinAttr, XA_ATOM, 32, PropModeReplace, (unsigned char*)winAttrs, 1); /* ** Tell Open Look to add some decorations to our window */ numberOfDecorations = 0; if (decorationMask & OLWM_Header) winDecor[numberOfDecorations++] = AtomHeader; if (decorationMask & OLWM_Resize) winDecor[numberOfDecorations++] = AtomResize; if (decorationMask & OLWM_Close) { winDecor[numberOfDecorations++] = AtomClose; /* ** If the close button is specified, the header must be ** specified. If the header bit is not set, set it. */ if (!(decorationMask & OLWM_Header)) winDecor[numberOfDecorations++] = AtomHeader; } XChangeProperty(XtDisplay(shell), win, AtomDecor, XA_ATOM, 32, PropModeReplace, (unsigned char*)winDecor, numberOfDecorations); } /* ** Example of use of AddOLWMDialogFrame, with a bit of extra stuff */ void register_dialog_to_WM(Widget shell, XtCallbackProc Cbk_func) { Atom atom; /* ** Alias the "Close" item in system menu attached to dialog shell ** to the activate callback of "Exit" in the menubar */ if (Cbk_func) { atom = XmInternAtom(XtDisplay(shell),"WM_DELETE_WINDOW",TRUE); XmAddWMProtocolCallback(shell,atom, Cbk_func,NULL); } /* ** If Motif is the window manager, skip OpenLook specific stuff */ if (XmIsMotifWMRunning(shell)) return; /* ** Register dialog shell to OpenLook. ** ** WARNING: on some systems, adding the "Close" button allows the title ** to be properly centered in the title bar. On others, activating ** "Close" crashes OpenLook. The reason is not clear yet, but it seems ** the first case occurs with OpenWindows 2 while the second occurs with ** Openwindows 3. Thus, comment out one of the two following lines as ** suitable for your site, and send e-mail to syj@ecmwf.co.uk if you ** find out what is going on ! */ AddOLWMDialogFrame(shell,(OLWM_Header | OLWM_Resize)); /* AddOLWMDialogFrame(shell,(OLWM_Header | OLWM_Resize | OLWM_Close)); */ } ----------------------------------------------------------------------------- Subject: 55) How can I turn off the Motif window manager functions from the system menu? [Last modified: October 92] Answer: The user of an application can control functions in the system menu for an application using the mwm resource clientFunctions: mwm.application_name.clientFunctions: -resize -close Note that mwm will have to be restarted after putting this in their resource database. Answer: The writer of an application can only remove items. Be warned that your users will probably gnash their teeth, swear furiously at your product and stop using it if they discover that you have done this. (Especially if you have removed the Close button, your application has hung and it has taken up all of memory and swap so it can't be killed.) Much better is to catch the action gracefully as in the next question. #include XtVaGetValues(shell, XmNmwmFunctions, &int_val, NULL); int_val &= ~(MWM_FUNC_CLOSE | MWM_FUNC_ALL); XtVaSetValues(shell, XmNmwmFunctions, int_val, NULL); ----------------------------------------------------------------------------- Subject: 56)+ How can I keep my shell windows fixed in size? [Last modified: Apr 95] Answer: In addition to the decoration controls mentioned in the previous few subjects of this FAQ, you can also specify size hints for your shell widget's windows with these resources: XmNminWidth, XmNmaxWidth, XmNminHeight, XmNmaxHeight. If you set the min and max values to the same size, most window managers will not allow the user to resize the window. Thanks to Ken Lee, kenton@rahul.net ----------------------------------------------------------------------------- Subject: 57) How can my application know when the user has quit Mwm? [Last modified: Feb 95] Answer: Looking for an answer to this one. ANY TAKERS? (Still looking.) ----------------------------------------------------------------------------- Subject: 58) How can I tell if the user has selected "Close" from the system menu? I need to do some clean up before exiting. [Last modified: Feb 95] Answer: This works with R4 Intrinsics #include void FinalCleanupCB(w, client_data, call_data) Widget w; caddr_t client_data, call_data; { /* tidy up stuff here */ ... /* exit if you want to */ exit (0); } main() { Atom wm_delete_window; ... XtRealizeWidget(toplevel); ... wm_delete_window = XmInternAtom(XtDisplay(toplevel), "WM_DELETE_WINDOW", False); XmAddWMProtocolCallback(toplevel, wm_delete_window, FinalCleanupCB, NULL); XtMainLoop(); } This will still kill the application. To turn this behaviour off so that the application is not killed, set the shell resource XmNdeleteResponse to XmDO_NOTHING. This means that users cannot kill your application via the system menu, and may be a bad thing. If you are running R3, Bob Hays (bobhays@spss.com) has suggested this: "Trapping on the delete window atom does not work as I cannot force my action routine to the top of the action list for the activity desired, so the window manager kills my window anyway BEFORE I can do anything about it. And, to make matters worse, the window manager (Motif in this case) tacks its atoms and handlers onto the window at some unknown point down the line after the creation of the shell widget as far as I can tell. So.... I have a procedure as an action routine for ClientMessage. Then, if I get a property change event on the window manager protocols, I then tack on WM_SAVE_YOURSELF. If I get this request, I clean up (it seems to happen on WM_DELETE_WINDOW, BTW, if you remove WM_DELETE_WINDOW from the WM protocols atom) and exit. Works great and is less filling overall:-)." The following similar code fragment is from Dave Mink (mink@cadcam.pms.ford.com): void setupCloseCallback(Widget shell, XtCallbackProc closeProc) { /* get window manager delete protocol atom */ Atom deletewin_protocol = XmInternAtom( XtDisplay(shell), "WM_DELETE_WINDOW", True ); /* turn off default delete response */ XtVaSetValues( shell, XmNdeleteResponse, XmDO_NOTHING, NULL); /* add callback for window manager delete protocol */ XmAddWMProtocolCallback(shell, deletewin_protocol, closeProc, NULL); } ----------------------------------------------------------------------------- Subject: 59) Is there an mwm virtual desktop manager? [Last modified: Nov 94] Answer: David Kaelbling (drk@x.org) reports: In OSF/Motif 2.0, mwm supports both workspaces (see the f.cci function and the wsm demo for a sample interface) and a virtual root window. To manipulate the virtual screen f.goto, f.pan, and f.track_pan were added, as were iconPinned and clientPinned client resources. Peter E. Wagner (pew@cs.brown.edu): Imagine that your "desktop" extends beyond the view provided by your monitor. A virtual window manager gives you access to the space beyond your viewport (i.e. your screen) by allowing you to move the viewport to other areas of the extended desktop. The first one is Solbourne's swm, which spawned vtwm/tvtwm/olvwm. David B. Lewis created one. suresh@unipalm.co.uk has further developed it into the UniPalm product DOORS, which is only available as a source code extension to the MOTIF window manager. The price of the source and unlimited right to distribute binaries is 10,000 pounds Sterling. Alternately, source and right to use within one company is 2,000 pounds Sterling. Contact Peter Dawe Unipalm Limited Voice: +44 (0) 223 420002 216 The Science Park Fax: +44 (0) 223 426868 CAMBRIDGE CB4 4WA An enhancement request for such an object has been filed with OSF. Tim Failes (tim@aus.oz.au) of Advanced User Systems Pty Ltd writes: IXI has a fully supported product called Panorama which provides this facility. Panorama allows the user to pan around the virtual work space, dynamically change the size of the virtual workspace, and also access windows via an icon box. Panorama also includes a point-and-click tool for setting resources such as colours, focus policy, etc. [IXI contact information appears in the "Where can I get Motif?" subject. -ed] ----------------------------------------------------------------------------- Subject: 60) Why does mwm 1.2 crash on startup? [Last modified: March 93] Answer: From David Brooks: The commonest cause of early mwm demise is as follows: - You, or someone, built Xlib in the default way using the Xsi internationalization functions. - Your Xlib wasn't installed completely (or at all). - Early on, mwm calls the function XmbTextListToTextProperty, which calls _XConvertMBToCT, which looks for the Xsi locale database, finds it missing, ignores this fact and tries to dereference zero. The workaround is to find the database *somewhere*, and point the environment variable XNLSPATH at it. For example, in my personal X source tree: setenv XNLSPATH /home/X11r5src/mit/lib/nls/Xsi ----------------------------------------------------------------------------- Subject: 61) How do I obtain the size of a unmanaged shell widget? Answer: In the code below, use getsize() for widgets which have been managed, and getsize2() for newly created shell widgets which have not yet been managed. getsize2() takes two widget parameters because popup dialogs etc. _consist_ of two separate widgets - the parent shell and the child bulletin board, form, whatever. This important distinction (somewhat glossed over in the Motif manuals) is the cause of a large number of queries in comp.windows.x.motif. XmCreate...Dialog() functions return the (bulletin board, form, whatever) _child_ of the pair, not the parent shell. getsize2() takes the _shell_ widget as it's first parameter, and the shell's _child_ (the bulletin board, form, whatever) as it's second. Thus, if you are using code like widget = XmCreate...Dialog() to create your popup dialogs, use code like getsize2(XtParent(widget),widget,&width,&height) to get the width and height. If you use e.g. XmCreateDialogShell() or XtCreatePopupShell(), then you are creating the the shell widget and it's child explicitly, and can just pass them into getsize2() with no problem. Note: getsize2() calls getsize(). /* getsize(widget,width,height); * Widget widget; * int *width,*height; * * returns the width and height of a managed widget */ void getsize(l,w,h) Widget l; int *w,*h; { Dimension w_,h_,b_; static Arg size_args[] = { { XmNwidth,0 }, { XmNheight,0 }, { XmNborderWidth,0 }, }; size_args[0].value = (XtArgVal)&w_; size_args[1].value = (XtArgVal)&h_; size_args[2].value = (XtArgVal)&b_; XtGetValues(l,size_args,3); if (w) *w = w_ + b_; if (h) *h = h_ + b_; } /* getsize2(shell,child,width,height); * Widget shell,child; * int *width,*height; * * returns the width, height of an unmanaged shell widget */ void getsize2(p,c,w,h) Widget p,c; int *w,*h; { XtSetMappedWhenManaged(p,0); XtManageChild(c); getsize(p,w,h); XtUnmanageChild(c); XtSetMappedWhenManaged(p,-1); } submitted by: [ Huw Rogers Communications Software Engineer, NEC Corporation, Tokyo, Japan ] [ Email: rogersh@ccs.mt.nec.co.jp Fax: +81-3-5476-1005 Tel: +81-3-5476-1096 ] ----------------------------------------------------------------------------- Subject: 62) XtGetValues() on XmNx and XmNy of my top level shell don't return the correct root window coordinates. How do I compute these? Answer: XmNx and XmNy are the coordinates relative to your shell's parent window, which is usually a window manager's frame window. To translate to the root coordinate space, use XtTranslateCoords() or XTranslateCoordinates(). Thanks to Ken Lee, kenton@rahul.net ----------------------------------------------------------------------------- Subject: 63)+ How can I create a shell widget with a non-default visual type? [Last modified: Apr 95] Answer: You must specify the colormap, visual type, and depth for the shell before it is realized. If you don't specify all three resources (or specify them incorrectly), you will probably get BadMatch protocol errors from your X server. Thanks to Ken Lee, kenton@rahul.net ----------------------------------------------------------------------------- END OF PART TWO ----------------------------------------------------------------------------- Subject: 64) TOPIC: MOTIF DEVELOPMENT TOOLS (GUI BUILDERS and UIMS's) ----------------------------------------------------------------------------- Subject: 65) What GUI tools exist to assist in developing Motif applications? [Last modified: Mar 95 ] Answer: [A FAQ is not for "personal opinions" on these tools. I don't think it is appropriate to give such opinions through this particular posting, so I haven't included any. I will include vendor-provided descriptions provided they are concise and informative. See Subject 0 for contribution details.] `Prototyping tools' and `code generation tools' come in two forms: GUI (Graphical User Interface) builder - those that can be used to design (and perhaps rehearse) the interface only ; and UIMS (User Interface Management Systems) - those that are a system supporting the development and execution of user interfaces. However, this distinction can be somewhat arbitrary when specific tools are categorized as either one or the other. (Therefore, the classification below should be taken with a kilogram of salt. :-) A number of commercial and non-commercial tools of both kinds that will support Motif are listed below. [NOTE: Vendors or individuals wishing to add their product or tool to this list, or to change their entry, should email to the maintainer of this FAQ.] GUI builders: Builder Xcessory (bx) Druid ExoCODE/xm iXBUILD (formerly X Build) MOTIFATION WKSH (Windowing Korn Shell) X-Designer UIMS: ALEX ezX User Interface Management System Galaxy MetaCard Serpent TAE Plus TeleUse UIMX VXP (Visual X windows Programming Interface) Widget Creation Library (Wcl) WINTERP XFaceMaker2 For users of the WWW, see also Brad A. Myers' `User Interface Software Tools' list (which is not limited to Motif tools): http://www.cs.cmu.edu:8001/afs/cs.cmu.edu/user/bam/www/toolnames.html Some contact addresses, presented in alphabetical order (without regard to GUI or UIMS categorization), follow: o ALEX: For more information contact Michael Karliner on (+44) 81 566 2307 or E-mail to alex@s-strat.co.uk. ALEX Technologies, Waterman's Yard, 32a The Mall, Ealing, London W5, UK. o Builder Xcessory (bx): is from ICS. More details are available by sending a request to info@ics.com. Address: ICS Inc., 201 Broadway, Cambridge MA 02139, Tel. (617) 621-0060, Fax. (617) 621-9555 http://www.ics.com/ o Druid: is a commercial product. It currently supports Motif1.1 and 4 unix platforms: SPARC, HP 9000, RS6000, and SGI. For further information contact: Mr. Fred Lee, Automated Systems (Pte) Limited, 203 Henderson Road, #12-07/14, Henderson Industrial Park, Singapore 0315. FAX: (65)272-2029 Or: Dr. Gurminder Singh (gsingh@iss.nus.sg), Institute of Systems Science, National University of Singapore o ExoCODE/xm: From Expert Object Corp., 7250 Cicero Avenue, Lincolnwood, IL 60646 (708)676-5555. Also: ExoCODE, EXOC, 500 Hyacinth Place, Highland Park, IL, 60035, (708) 926-8500, $1,500, Motif or OpenLook or SunView. o ezX: Contact information: ezX User Interface Management System Sunrise Software, International 170 Enterprise Center Middletown, RI 02840 401-847-7868 email: support@sunrise.com o Galaxy, Visix Software Inc., 11440 Commerce Park Drive, Reston, VA, 22091, (800) 832-8668, $9,600, Mac, Windows, Motif, OpenLook; very complete, Virtual Toolkit, UIMS o iXBUILD (formerly X Build): iXOS Software GmbH, Bretonischer Ring 12, 8011 Grasbrunn/Munich, Germany, email support@ixos.de or office@ixos.de, phone ++49-89-46005 0 or in the US: UniPress Software, 2025 Lincoln Hwy., Edison, NJ 08817, phone 1-800-222-0550 o MetaCard: MetaCard 1.0 is supported on five popular UNIX/X11 platforms: SPARC, Sun3, DECstation, HP-9000/300, and SCO ODT. An HP-9000/700 port is underway and should be available by the end of July. [They] plan to support IBM RS/6000, SGI Iris, and DG AViiON sometime fall '92. For more information, or to receive a free save-disabled but licensable copy of MetaCard, email to info@metacard.com or call 303- 447-3936. If you have anonymous FTP access to the Internet, you can download the current engines, documentation, and an unlicensed Home stack from ftp.metacard.com (128.138.213.21), directory MetaCard. Commercial users can get MetaCard from world.std.com (192.74.137.5), directory pub/Metacard. If you don't have an anonymous ftp access, you can also download MetaCard from The World using kermit or xmodem from the ~ftp/pub/MetaCard directory. Sign up by calling 617-739-0202 (voice) or via modem by dialing 617-739-9753 (7 bits even parity) and logging in as new. MetaCard 1.2 Beta 5 is now available for anonymous FTP from ftp.metacard.com (directory MetaCard/1.2B5), and ftp.uu.net (directory vendor/MetaCard/1.2B5). There is also a MetaCard mailing list. To subscribe to the metacard-list, send mail to listserv@grot.starconn.com with the following commands in the body of the message: subscribe metacard-list firstname lastname quit Replace "firstname lastname" with your name, not your e-mail address. o MOTIFATION: PEM GmbH, Vaihinger Strasse 49, 7000 Stuttgart 80, Germany, Tel: +49 (0) 711 713045, Fax: +49 (0) 711 713047 Email: basien@pem- stuttgart.de. Available for (Motif 1.2/1.1) on SunOS, Solaris 2.1, HP, Interactive, ODT 3.0, Silicon Graphics, PCS, ... o Serpent: The S/W is free (anonymous ftp) from ftp.sei.cmu.edu. For more info contact erik/robert at serpent-info@sei.cmu.edu. NOTE: This is no longer supported, and is apparently replaced by a commercial product called Alpha. o TAE Plus: TAE Plus is a mature, portable software development environment that supports rapid prototyping, tailoring, and management of Motif-based graphical user interfaces. It particularly supports GUI development by non- programmers and by programmers who are not well-versed in the details of X and Motif. Its code generator can produce C, C++, and Ada code and allows for automatic merging of regenerated code with previously modified parts of the interface code. It supports generation of a UIL/Mrm representation of the interface. Scripting capabilities are provided to facilitate automatic testing, on-line demos, and tutorials. A record and playback feature lets you build scripts simply by interacting with your GUI. Dynamic Data Objects allow the developer to create pictorial objects (e.g., a thermometer to show temperature), whose dynamic portions (e.g., the mercury in the themometer) can change to reflect changing data or be directly manipulated by the end-user. TAE Plus is available on Sun, HP, IBM, SGI, and SCO Unix platforms. Evaluation software is available via anonymous ftp. TAE Plus contact information: Century Computing, Inc. 1014 West Street Laurel, MD 20707 1-800-823-3228 tae-info@cen.com o TeleUSE: Built around X Windows and OSF/Motif, TeleUSE's comprehensive toolset gives you maximum control over every phase of graphical user interface development, including static screen layout and design, automatic implementation of callbacks, building the executable, and the interactive test, debug, and maintenance cycles. For more information, please contact: In North America and countries not specified below: Alsys (formerly TeleSoft) 10251 Vista Sorrento Parkway Suite 300 San Diego, CA 92121 USA (619) 457-2700 X244 (619) 452-1334 (fax) leigh@alsys.com In France: +33 1 47 66 21 83 In the UK: +49 491 579 090 In Scandinavia: +46 8 520 69010 In the Benelux: +31 15 62 21 21 In Germany: +49 7531 65022 In Italy: +39 6 5045 1 In Japan: +81 3 522 85620 In South Korea: +82 2 577 2044 o UIMX: Visual Edge Software Limited 3870 Cote Vertu St Laurent, Quebec H4R 1V4 Phone: (514) 332-6430 Fax: (514) 332-5914 or: Visual Edge Software Ltd. 101 First Street, Suite 443 Los Altos, CA 94022 Phone: (415) 948-0753 Fax: (415) 948-0843 o VXP (Visual X windows Programming Interface): Yong Chen (stdyxc05@pip.shsu.edu) developed a Motif GUI builder called VXP -- Visual X windows Programming Interface. VXP has some UIMS capabilities. VXP is now distributed as a freeware, and has been ported to SGI irix, HP hp-ux, Sun OS4 and Solaris 2.x, DEC OSF/1, IBM AIX, Linux, SCO, NetBSD. For more information, visit VXP's WWW home page at http://www.shsu.edu/~stdyxc05/VXP/ or ftp at ftp.shsu.edu /pub/VXP/ o Widget Creation Library (Wcl): The distribution is available in several ways. The preferred approach it for you to get the compressed tar file using anonymous ftp from: ftp.x.org /R5contrib/Wcl-2.5.tar.Z WWW URL: ftp://ftp.x.org/R5contrib/Wcl-2.5.tar.Z o WINTERP: (Widget INTERPreter) An object-oriented rapid prototyping, development and delivery environment for building extensible applications with the OSF/Motif UI Toolkit and Xtango-based graphics/animation. By Niels Mayer (mayer@netcom.com). Mailing list: winterp-request@netcom.com. Available via ftp from ftp.x.org:/contrib/devel_tools/winterp-2.xx.tar.gz (where 'xx' is currently '03'). Key WINTERP Features: * High-level, Object-oriented interface to OSF/Motif and Xtoolkit. * High-level object-oriented 2.5D graphics&animation widget based on Xtango path transition animation system. * Ability to easily create new widget classes w/ complex graphical behavior using Xtango animation/graphics. * Automatic storeage management of all X/Xt/Motif data, Pixmaps, animations. Automatic resource conversion and management. * Asynchronous communications w/ other unix programs via expect-based subprocess facility. * Includes XmGraph to display graphs (both cyclic, acyclic, directed, undirected); graph nodes can be arbitrary widgets created by WINTERP; supports direct manipulation editing of graph. * GIF image support. * Lisp-eval server architecture supports inter-application communication. * Interactive programming via Gnu-Emacs or Motif-Text-widget interface. * Portable, small, fast, and free. o WKSH (Windowing Korn Shell): EXtensible Korn Shell (C language calling interface, dynamic library loading, etc.) Motif or OpenLook API X Toolkit Intrinsics WKSH Convenience Functions Fast Learning and Prototyping Feature (ksh interpreter) Contact: Acacia Computer, PO Box 4376, Warren, NJ 07059, Phone: 908 548 6955, Email: uunet!aca1 or: Computer Aid Inc, 1-(800)-444-WKSH, or: Consensys Corp, Europe: +(44)-734-833241 (Roger Chalke), +(44)0734-835391 (Fax), US: (416)-940-2903, (416)-940-2903 (Fax). WKSH was developed by USL. Binaries are available through Acacia Computer for SUNOS, Solaris, SCO ODT, Intel SVR4.0 o X-Designer: From Imperial Software Technology in the UK. Email address is sales@ist.co.uk. (+44) 743 587055 V.I. Corporation have become the distributor for the X-Designer product in the United States. In addition, IST and V.I. Corporation have developed a product called DVX-Designer that merges X-Designer with their GUI product called DataViews. Other merged products are in the works. For more information, people can contact: V.I. Corporation 47 Pleasant Street Northampton, MA 01060 Phone: (413) 586-4144 Fax: (413) 586-3805 Email: vi@vicorp.com o XFaceMaker2: NSL - Non Standard Logics S.A., 57-59, rue Lhomond, 75005 Paris - France, Phone: +33 (1) 43.36.77.50, Fax: +33 (1) 43.36.59.78 email: requests@nsl.fr or requests%nsl.fr@inria.fr for information. Their North American office: Non Standard Logics, Inc., 4141 State Street, Suite B-11, Santa Barbara CA 93110, Tel: 805 964 9599, Fax: 805 964 4367 ----------------------------------------------------------------------------- Subject: 66) TOPIC: GEOMETRY MANAGEMENT [NOTE: As you can see, this is a new topic area. Send me your ideas for answered questions pertaining to this topic.] ----------------------------------------------------------------------------- Subject: 67) Why is geometry management so important? [Last modified: Sept 94] Answer: Geometry management is a key element of Motif applications for reasons which include, but are not limited to, the following: The user should be able to re-size the shell and get some reasonable geometry response (other than clipping). The user should be able to tailor fonts and have the widgets adjust accordingly. (Many people over 40 simply can't read small fonts without serious eye strain.) When the designers decide to change a label, the widgets should re-adjust accordingly. Some labels must be set dynamically and the widgets should re-layout accordingly. An internationalized application must work with several resource files, one for each supported natural language. The labels in each file have different lengths and the application should adjust accordingly. ----------------------------------------------------------------------------- Subject: 68) What are good references for reading about geometry management? [Last modified: Oct 94] Answer: See the BOOKS topics for detailed reference information. "X Toolkit Intrinsics Programming Manual" (Nye & O'Reilly) contains an entire chapter on geometry management, as does "X Window System Toolkit" (Asente & Swick) on which the O'Reilly book is based. Another good reference is the discussion of the "geometry_manager" and "query_geometry" methods in "X Toolkit Intrinsics Reference Manual". "Motif Programming Manual" (Heller & Ferguson) has a chapter devoted to Motif Manager widgets. Finally, the