Archive-name: motif-faq/part1
Last-modified: 1 FEB 2002
Posting-Frequency: irregular
Organization: Kenton Lee, X/Motif Consultant, http://www.rahul.net/kenton/
URL: http://www.rahul.net/kenton/mfaq.html
Version: 8.1



Subject: Motif FAQ (all parts)
Newsgroups: comp.windows.x.motif,comp.answers,news.answers
Reply-To: kenton@rahul.net (Ken Lee)
Summary: Motif Frequently Asked Questions (with answers).
Posting-Freq.: irregular (re-posted monthly to comp.windows.x.motif)
Organization: Kenton Lee, X/Motif Consultant, http://www.rahul.net/kenton/
URL: http://www.rahul.net/kenton/mfaq.html

Motif FAQ

[Last changed: 1 FEB 2002]

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.
This article includes answers to the questions listed below. Key:
+ questions NEW to this issue;
* CHANGES since last issue.

This FAQ is maintained by Ken Lee (kenton@nojunk.rahul.net)
http://www.rahul.net/kenton/

You can obtain the most recent version of this FAQ via anonymous ftp from
a server which will seldom refuse you access. Try any of these URLs:
ftp://ftp.rahul.net/pub/kenton/faqs/Motif-FAQ or
ftp://ftp.rahul.net/pub/kenton/faqs/Motif-FAQ.gz

or get the HTML version as one big 600KB file from:
ftp://ftp.rahul.net/pub/kenton/faqs/Motif-FAQ.html or
ftp://ftp.rahul.net/pub/kenton/faqs/Motif-FAQ.html.gz

The Motif FAQ is mirrored at several sites around the world.
Sites closer to you should load faster. These sites are listed at:
http://www.rahul.net/kenton/mfaq.html

I also maintain a WWW page of over 700 technical X Window System and OSF/Motif
links at:
http://www.rahul.net/kenton/xsites.framed.html

Send updates and corrections to kenton@nojunk.rahul.net.
Please include the phrase "For Motif FAQ" in your subject line.

*** SUN READERS ***
The Motif FAQ is now included in a different HTML format with Java applets
on the premiere issue of the SunSoft Developer CD-ROM.

*** CAVEAT ***
If an answer does not have a "Last modified" date, it's possible the
information may no longer be accurate. Modification dates go back to
August 1992. More than half the answers have such a modification
date. Note also that the older the "Last modified" date, the more
likely the information may be suspect. Pay close attention to version
information discussed in answers, since the information may pertain
only to that specific release.

This posting is Copyright (c) 1997-2002 by Kenton Lee.
ALL RIGHTS RESERVED. Permission is hereby granted to read and
distribute this posting for non-commercial purposes. Permission to use
this material for any other purpose must first be obtained in writing
from the author.

-----------------------------------------------------------------------------
0) TOPIC: SUBMITTING SUGGESTIONS, CORRECTIONS, NEW ANSWERS
1) TOPIC: WHAT IS MOTIF?
2)* Is the Motif source code publically available?
3)* What is Motif and how does it relate to the X Toolkit and X Window Sys-
tem?
4) Where did the name "Motif" come from?
5) TOPIC: OTHER RELEVANT NEWSGROUPS AND FAQS
6) TOPIC: FAQ and NEWSGROUP FTP ARCHIVES
7) Is the FAQ available via FTP?
8) Can I receive email notification when the Motif FAQ is updated?
9) Is this FAQ accessible via WWW?
10)* Is this newsgroup archived?
11) TOPIC: OSF, MOTIF VERSIONS, CDE, COSE, DCE, The OPEN GROUP
12) How can I contact the Open Group?
13) Where can I find OSF press releases on Motif and DCE?
14)* What versions of Motif are there?
15)* How can I find which version of Motif I have? Xlib or Xt version?
16) Is there a concise features list for Motif 2.0?
17) What are the details about new features in Motif 2.0?
18) Is there a concise features list for Motif 2.1?
19)+ Is there a concise features list for Motif 2.2?
20) Where can I find Motif 2.1 documentation?
21)* Is the official Motif documentation available on-line?
22) I want to use C++ with Motif. Where can I find C++ examples?
23) Is Motif 2.0 backward compatible with Motif 1.2?
24) How compatible are Motif 1.2.* and X11R6?
25) Why aren't the big UNIX vendors shipping Motif 2.0?
26) Where can I get Motif for UNIX, Linux, or Microsoft Windows?
27) Is there a list of Motif bugs?
28) Where can I get a Motif 1.2 Certification Checklist?
29) What is CDE? What is COSE and how does it relate to Motif?
30)* Is there a CDE FAQ or newsgroup?
31) What is the current version of CDE and what are its features?
32) How does Motif relate to X/Open and CDE?
33) What is The Open Group?
34) Is The Open Group assuming responsibility for the X Window System?
35) What are the current correct trademark statements for X and Motif?
36) Will CDE and Motif converge? What is the CDE/Motif JDA?
37)* Has anyone done a public domain Motif lookalike?
38) Does the Open Group have an application compliance validation service?
39) What is the motif-talk mailing list?
40) How does Motif work with X11R5?
41) Where can I find X technical info on the WWW?
42) What is Broadway? I've heard it called "X on the Web".
43) Where's an HTML version of the Motif FAQ on World Wide Web (WWW)?
44) Where can I get the HTML widget used in Mosaic?
45)* What widgets does Netscape use for its bookmarks list and preference
panels?
46) TOPIC: BOOKS and JOURNALS
47) Is there a Motif tutorial? Xt tutorial? X11 tutorial?
48) What books are available for Motif application programmers?
49) What relevant journals are available?
50) TOPIC: MWM and the SHELL WIDGET
51) What is the difference between Motif and mwm?
52) Does anyone have an alternative set of 3-D defaults for a monochrome
screen?
53) What are some useful mwm resources I can control?
54) How can I configure mwm, such as changing or adding to root menus?
55) How can my program determine which window manager is running?
56) How can I modify the mwm's window decorations with a resource file?
57) How can I programatically modify the mwm's window decorations?
58) Is there an ICCCM compliant way of setting window manager decorations?
59) How can I put decorations on transient windows using olwm?
60) How can I turn off the Motif window manager functions from the system
menu?
61) How can I create a multi-colored window manager icon?
62) How can I keep my shell windows fixed in size?
63) Why is XtGetValues of XmNx and XmNy of my toplevel shell wrong?
64) How do I get XmNx and XmNy positions to be honored correctly?
65) How can my application know when the user has quit Mwm?
66) How can I tell if the user has selected "Close" from the system menu? How
do I catch the "Close"?
67) Is there an mwm virtual desktop manager?
68) Why does mwm 1.2 crash on startup?
69) How do I obtain the size of a unmanaged shell widget?
70) How can I create a shell widget with a non-default visual type?
71) Can a non-shell Motif widget have a different visual type from its
parent?
72) Why do I get BadMatch errors from my menus when I use a non-default visu-
al type for my application shell?
73) How do I popup a scrolled list on top of other widgets?
74) How can I keep my application's window always on top of all other appli-
cations' windows?
75) How can I maximize my top level shell?
76) TOPIC: MOTIF DEVELOPMENT TOOLS (GUI BUILDERS and UIMS's)
77)* What GUI tools exist to assist in developing Motif applications?
78) TOPIC: GEOMETRY MANAGEMENT
79) Why is geometry management so important?
80) Why don't my labels resize in a RowColumn widget?
81) Does XmRowColumn support multiple columns with different column widths?
82) Why do composite widgets (including dialogs) that were created after
their parents were realized appear smaller under 1.2.3 and later?
83) How does the ScrolledWindow manage resizing?
84) Does the XmPanedWindow widget support horizontal paning?
85) TOPIC: TEXT WIDGET
86) How do XmTextField and a single line XmText widget differ?
87) Why does pressing RETURN in a text widget do nothing?
88) Can you reuse the return value from XtParseTranslationTable?
89) When I add text to a scrolling text widget, how can I get the new text to
show?
90) How do I scroll text to display the most recently added information?
91) Does the text widget support 16 bit character fonts?
92) How can I stop the text widget from echoing characters typed?
93) How can I replace characters typed with say a `*'?
94) How can I make a text widget insensitive without graying out the text?
95) How can I best add a large piece of text to a scrolled text widget?
96) How can I get the correct colors for scrolled text widget scrollbars (Sun
only)?
97) How can I highlight text in the Text widget?
98) How can I select all of the text in a widget programmatically?
99) Can I customize the pointer cursor or insert position indicator used by
the text widget?
100) How can I change colours of text in the Text widget?
101) How can I change the font of text in the Text widget?
102) Is there an emacs binding for the text widget?
103) What if I have problems with the backspace/delete keys?
104) How can I use a file as the text source for a Text widget?
105) How can put Text in overstrike mode instead of insert?
106) How can I make the Delete key do a Backspace?
107) Can I change the tab stops in the XmText widget?
108) TOPIC: LIST WIDGET
109) Should I create an XmList widget as a child of automatic XmScrolledWin-
dow or use the XmCreateScrolledList() convenience function?
110) How do I best put a new set of items into a list?
111) Can I have strings with different fonts in a list?
112) Can I get a bitmap to show in a list item like I can in a Label?
113) Can I have items with different colors in a list widget?
114) How can I line up columns in a list widget?
115) Can I grey out an item in a list widget?
116) Can I have multi-line items in a list?
117) How can I tell the position of selected items in a list?
118) How can I configure a scrolled list widget to show a horizontal
scrollbar when some list items are wider than the window?
119) How can I programatically select all of the items in an XmList?
120) TOPIC: FILE SELECTION BOX WIDGET
121) What is libPW.a and do I need it?
122) What are these compile errors: Undefined symbol _regcmp and _regex?
123) What's wrong with the Motif 1.0 File Selection Box?
124) How can I keep my file selection boxes from resizing when I change
directories or filters?
125) What's wrong with the FileSelectionBox under Solaris?
126) TOPIC: FORM WIDGET
127) Why don't labels in a Form resize when the label is changed?
128) How can I center a widget in a form?
129) How do I line up two columns of widgets of different types?
130) TOPIC: PUSHBUTTON WIDGET
131) Why doesn't the enter or return key activate the button with focus?
132) Why can't I use accelerators on buttons not in a menu?
133) TOPIC: TOGGLEBUTTON WIDGET
134) What widgets give the look of push buttons, but behavior of toggle but-
tons?
135) Can I customize XmToggleButton to use my own indicator graphic (e.g., a
check mark)?
136) TOPIC: ICON WIDGET and PIXMAPS
137) What is XPM?
138) How do I convert my XPM file into a Pixmap?
139) How can I display a multi-color image in a widget?
140) Can I use XmGetPixmap in Motif 1.2 to create colored images?
141) Why does XpmCreatePixmapFromData fail with a pixmap containing a large
number of colors?
142) How can I convert a Sun/GIF/TIFF image to a pixmap?
143) How can I use Motif's pre-defined pixmaps?
144) TOPIC: SCALE AND SCROLLBAR WIDGET
145) Can the XmScale widget have arrows or tick marks in Motif 2.0?
146) How can I set the color of a XmScale widget's trough?
147) How does Motif implement mouse button auto-repeat on the scrollbar's ar-
row buttons?
148) TOPIC: LABEL WIDGET
149) How can I align the text in a label (button, etc) widget?
150) Why doesn't label alignment work in a XmRowColumn?
151) How can I set a multi-line label?
152) How can I have a vertical label?
153) How can I have a Pixmap in a Label?
154) Why doesn't the XmLabel widget obey the XmNwith and XmNheight that I
give it?
155) How do you set the background color of a label widget using XtVa-
TypedArg?
156) TOPIC: DRAWING AREA WIDGET
157) How can I send an expose event to a Drawing Area widget?
158) How can I know when a DrawingArea has been resized?
159) How can I create a drawing area widget with a visual type different from
its parent?
160) How can I display postscript in a Motif widget, such as XmDrawingArea?
161) TOPIC: MAIN WINDOW WIDGET
162) How can I create a message window in an XmMainWindow?
163) TOPIC: SCROLLED WINDOW WIDGET
164) How do I tell if a scrolled window's scrollbars are visible?
165) How can I programatically scroll a XmScrolledWindow in XmAUTOMATIC mode?
166) What widget does the XmScrolledWindow use for its clip window?
167) How do I create a scrolled window with only one scrollbar?
168) TOPIC: MENUS
169) How can I change the cursor used in Motif menus?
170) How do I put my help menu on the far right of my menubar?
171) Can I change or disable the menu bar accelerator from the default (F10)?
172) How do I set the current choice in a radio box or an option menu?
173) How can I determine the item selected in a a radio box or option menu?
174) How can I change the cascade indicator on an option menu?
175) How do I unset an XmToggleButton in a radio box?
176) Can I place a radio box in a pulldown menu?
177) How do I make a menu choice insensitive if it was created with XmVa-
CreateSimplePulldownMenu?
178) What widgets can I put inside a menubar?
179) Can I have a cascade button without a submenu in a pulldown menu?
180) Should I have a cascade button without a submenu in a pulldown menu?
181) What is the best way to create popup menus?
182) How do popup menus work?
183) How can I disable the button 3 grab if I am not using popup menus?
184) Should I use translation tables or actions for popup menus?
185) What are the known bugs in popup menus?
186) Can I have multiple popup menus on the same widget?
187) How can I change the shell title of a tear-off menu?
188) Can I programmatically tear-off a menu?
189) What widgets are valid within Motif menus?
190) Can I create multi-column popup or pulldown menus?
191) How can I keep my program from hanging if a user activates a popup that
is a child of an insensitive push button?
192) TOPIC: DRAG AND DROP
193) Where can I find info and examples of the Motif drag and drop protocol?
194) How can I disable Drag and Drop in my Motif 1.2 client ?
195) Can I register client data for the Motif XmDropSite drop callback?
196) Can unmanged widgets be valid (drag-and-drop) drop sites?
197) TOPIC: INPUT FOCUS
198) How can I specify the widget that should have the keyboard focus when my
application starts up?
199) How can I specify my own keyboard traversal order?
200) How can I determine which widget has keyboard focus?
201) How can I direct the keyboard input to a particular widget?
202) How can I have a modal dialog which has to be answered before the appli-
cation can continue?
203) TOPIC: MEMORY AND SPEED
204) When can I free data structures passed to or retrieved from Motif?
205) What memory leaks are known? Why does my application grow in size?
206) Why do I get so many uninitilized memory read (UMR) errors when I run
Purify[tm] on my Motif programs?
207) Why does my application take a long time to start up?
208) My application is running too slowly. How can I speed it up?
209) Why is my application so huge?
210) How can I improve performance when creating and deleting hundreds of
text widgets?
211) After I call XtSetValues, when will I see the changes in my GUI?
212) TOPIC: XMSTRING
213) What string functions differ in Motif 1.1 and 1.2?
214)* How can I get the ASCII text out of an XmString?
215) When can XmStrings used as resources be freed?
216) Why doesn't XmStringGetNextSegment() work properly?
217) Why does using XmStringDraw cause a BadFont error?
218) How can I control color of individual strings to show status, etc.?
219) TOPIC: DIALOGS
220) How do I stop my dialog disappearing when I press the help button?
221) How do I make my own dialog?
222) Why do dialog title bars have "_popup" or "<-popup" concatenated onto
the widget name?
223) How can I force a dialog window to display?
224) How can I control placement of a popup widget?
225) How can I set the dialog's default button?
226) How can I create a dialog that behaves like, but looks a little dif-
ferent from, XmMessageBox?
227) How can I use Motif's message dialog bitmaps in my own dialogs?
228) TOPIC: LANGUAGE BINDINGS
229) What is ViewKit? Is there a free version?
230) Is there a C++ binding for Motif?
231) How can I avoid C++ String class and typedef char *String conflicts?
232) How can I have a C++ member function in a callback?
233) Is there a Common Lisp binding for Motif?
234) Is there an Ada binding for Motif? (Part 1 of 2)
235) Is there an Ada binding for Motif? (Part 2 of 2)
236) Is there a Poplog binding for Motif?
237) TOPIC: SPECIFIC PLATFORMS
238) Is it easy to build Motif for a Sun?
239) How do I build Motif 1.2.2 on Solaris 2.1 with Sun C?
240) What compile errors/warnings might I get in both Sun 3 and Sun 4?
241) On a Sun 3, what are the mwm startup error messages about?
242) Are there problems making shared libraries on a Sun?
243) Why does the OpenWindows server hangs when I popup a menu with Button 3?
244) Has anyone made shared libraries on an IBM RS/6000?
245) What is the error "Unaligned access in XmString" under Ultrix?
246) Can bugs in Sun's OpenWindows server cause Motif clients to crash?
247) Why does Motif on Linux crash when I open a file selection box?
248) Are there compatibility problems between some Linux Motif libraries and
libc5 or glibc?
249) How can I install Motif on my PC?
250) TOPIC: KEYSYMS
251) What is causing the messages "unknown keysym name osfDown..."?
252) What happens if I can't install Motif Keysyms?
253) Why has OSF introduced Keysyms into Motif 1.1?
254) Why do accented characters not work with Motif applications linked with
X11R6? What is the Compose file?
255) TOPIC: UIL
256) What is UIL and why is it so popular?
257) What is Mrm?
258) How do I specify a search path for ".uid" files?
259) Can I specify callback functions in resource files?
260) How can I set a multi-line label in UIL?
261) Is there a program that can convert a UIL file to tclMotif?
262) Why does my SCO UIL application fail to open 60 UID files?
263) TOPIC: ICONIFICATION and DE-ICONIFICATION
264) How can I keep track of changes to iconic/normal window state?
265) How can I check if my application has come up iconic?
266) How can I start my application in iconic state?
267) How can an application iconify itself?
268) How can an application de-iconify itself?
269) Why doesn't MWM display an iconify button on my dialog windows?
270) TOPIC: SPECIALIZED WIDGETS
271) Where can I get ComboBox, SpinBox, or Tree graph widgets?
272) How can I create a transparent widget?
273) TOPIC: CREATING WIDGETS
274) What are some good references for creating widgets (subclassing widg-
ets)?
275) How can I achieve binary compatibility using the XmResolvePartOffset
API?
276) TOPIC: MISCELLANEOUS
277) How can an application be informed of signals?
278) How do I control the repeat rate on a SUN keyboard?
279) How can I identify the children of a manager widget?
280) What functions can an application use to change the size or position of
a widget?
281) Can I use XtAddTimeOut, XtAddWorkProc, and XtAddInput with XtAppMain-
Loop?
282) Why does XtGetValues for XmNx and XmNwidth return extremely large
values?
283) Can I use XmGetPixmap() with widgets that have non-default visual types?
284) What is the matter with Frame in Motif 1.2?
285) What is IMUG and how do I join it?
286) How do I set the title of a top level window?
287) How can I disable the color scheme mechanism in CDE or HP VUE?
288) Can I use editres with Motif? Is there an editres tutorial?
289) Where is the editres protocol documented?
290) Why does an augment translation appear to act as replace for some widg-
ets?
291) How do you "grey" out a widget so that it cannot be activated?
292) Can I change the graphics drawn by insensitive widgets?
293) Why doesn't the Help callback work on some widgets?
294)* How can I implement "bubble help" or "tool tips" with Motif?
295) Can I specify a widget in a resource file?
296) Why are only some of my translations are being installed?
297) Can I have separate translations for shifted and unshifted keys?
298) What are these "non-existant passive grab" warnings?
299) How do I have more buttons than three in a MessageBox?
300) How do I create a "busy working cursor"?
301) Can I use the hourglass that mwm uses?
302) What order should the libraries be linked in?
303) How do I use xmkmf for Motif clients?
304) How do I use imake with Motif 2.0?
305) How do I make context sensitive help?
306) How do I debug a modal interaction?
307) Why can't I install my own colormap using XInstallColormap?
308) How do I install a private colormap?
309) How do I get correct shadow colors to match other color changes?
310) What color algorithm does Motif use?
311) How can you access the superclass widget from which Motif convenience
dialogs are subclassed?
312) Can the Motif 2.0 Notebook widget display non-rectangular "file tabs"?
313) How does the clipboard mechanism work?
314) Why does the xyz application core dump when I cut and paste?
315) Why is XtWindow(widget) == 0?
316) How do I debug X protocol errors (e.g., BadWindow, BadMatch) in Motif
applications?
317) Why doesn't XtNameToWidget (widget, "MyName") work?
318) Why does my callback's client data structure contain incorrect values
when the callback is called?
319) How can an application manage events on multiple displays?
320) Can a Motif application create windows on mutiple screens (on a multi-
screen workstation)?
321) Why do I get "Error: attempt to add non-widget child "dsm" to parent"?
322) Why do I get link errors about "XShape" symbols?
323) Why do I get link errors about "ICE" and "SM" symbols?
324) Why does my X11R6 program crash with undefined symbol "LowerCase"?
325) How do I programatically control xwd to dump a specific window?
326) How can I display an xwd in a window (without using xwud)?
327) Can I write a multi-threaded Motif application?
328) How can I dump my widget instance tree in a way that reflects the
hierarchy?
329) How do I get the events for gadgets? Or the name of the gadget?
330) Can I set the foreground and background colors of gadgets (e.g., con-
venience dialog buttons)?
331) Can I use a gadget as the parent of a dialog shell?
332) Which other widget features do gadgets lack?
333) Where can I get the xmon or xscope programs to trace my X protocol?
334) What does the error "Couldn't find per display information" mean?
335) Can I set widget fallback resources after I've called XtAppInitialize()?
336) Can I use the newline character in widget names?
337) Is anybody out there selling Windows95 look-alike widgets?
338) How can I convert my OLIT programs to the Motif look & feel?
339) What does this mean: Warning: Cannot find callback list in XtAddCall-
back?
340) If a single widget has multiple callback functions, are they all execut-
ed? If so, in what order?
341) Why are some widgets still visible after I call XtDestroyWidget() on
them?
342) If I call XtGetValues on a resource that does not exist for a given
widget, what value is returned?
343) Can I reparent a widget (change its parent)?
344) Are there any "year 2000" issues within Motif?
345) Can I suppress or customize Motif warning and error messages?
346) TOPIC: Motif FAQ HISTORY and ACKNOWLEDGEMENTS


-----------------------------------------------------------------------------

Subject: 0) TOPIC: SUBMITTING SUGGESTIONS, CORRECTIONS, NEW ANSWERS
[Last modified: May 97]

Answer: If you want to add to the FAQ, here's the procedure....

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:
kenton@nojunk.rahul.net (Ken Lee)
X/Motif Consultant
http://www.rahul.net/kenton/

o _Please_ put "For Motif FAQ" in the Subject line!
(This is the best way to catch my attention. Really.)

o Please include answers with your FAQ questions.
(If are looking for an answer to your questions, you may
want to hire a consultant. My company can do e-mail consulting.)

o For coding-related issues, I would prefer a short textual
description of the your design rather than a long code sample.

o If you do submit code, make sure it is well tested, portable,
and robust.

o If you _do not_ want your name or email address listed
in the FAQ, explicitly state this.


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.

-----------------------------------------------------------------------------
Subject: 1) TOPIC: WHAT IS MOTIF?

-----------------------------------------------------------------------------
Subject: 2)* Is the Motif source code publically available?
[Last modified: Jan 02]

Answer: On May 15, 2000 the Open Group released the Motif source code for
Motif 2.1, using a public license, to the Open Source community. On January
29, 2002, Open Motif 2.2 was released.

For more information on Open Motif, see:

http://www.opengroup.org/openmotif/

This web site includes the latest announcements, open source license details,
a FAQ and other documentation, and allows you to download the Motif source
code.

Some other web sites dedicated to Open Motif are:

http://www.motifzone.net/
http://www.metrolink.com/openmotif/


-----------------------------------------------------------------------------

Subject: 3)* What is Motif and how does it relate to the X Toolkit and X
Window System?
[Last modified: Jan 02]

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". Motif 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, 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 Open Group
(formerly called the MIT X Consortium), which you can reach at:

http://www.camb.opengroup.org/tech/desktop/x/

In early 1996, OSF merged with X/Open to form the Open Group. At the
beginning of 1997, the X Consortium closed and transfered ownership of its
projects to the Open Group. The Open Group continues development and support
on the X Window System, Motif, CDE, and other technologies.

On May 15, 2000 the Open Group released the Motif source code, using a public
license, to the Open Source community. The current version of Open Motif 2.2,
which was released January 29, 2002. For more information, see:

http://www.opengroup.org/openmotif/
http://www.motifzone.net/


-----------------------------------------------------------------------------
Subject: 4) Where did the name "Motif" come from?
[Last modified: Jun 98]

Answer: We had a contest inside of what was then The Open Software Foundation
to name this thing that we had up to then called the UEC for User Environment
Component. Lots of things were suggested, but Motif was suggested by one of
the employees.

Ken Flowers, k.flowers@opengroup.org

FYI - in the art world, a motif is a recurring artistic symbol or theme. The
meaning obviously carries over to the GUI world.

Ken Lee, http://www.rahul.net/kenton/

-----------------------------------------------------------------------------
Subject: 5) TOPIC: OTHER RELEVANT NEWSGROUPS AND FAQS
[Last modified: Aug 98]

Answer: This newsgroup is "comp.windows.x.motif". The WWW URL is:

news:comp.windows.x.motif

Many other X-related newgroups and FAQs are available. For a full list, see

http://www.rahul.net/kenton/xsites.framed.html


-----------------------------------------------------------------------------
Subject: 6) TOPIC: FAQ and NEWSGROUP FTP ARCHIVES

-----------------------------------------------------------------------------
Subject: 7) Is the FAQ available via FTP?
[Last modified: Apr 98]

Answer: The Motif FAQ is available as a large single file on Kenton Lee's web
site:

ftp://ftp.rahul.net/pub/kenton/faqs/Motif-FAQ
ftp://ftp.rahul.net/pub/kenton/faqs/Motif-FAQ.gz
ftp://ftp.rahul.net/pub/kenton/faqs/Motif-FAQ.html
ftp://ftp.rahul.net/pub/kenton/faqs/Motif-FAQ.html.gz

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 9 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_9).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?")

-----------------------------------------------------------------------------
Subject: 8) Can I receive email notification when the Motif FAQ is updated?
[Last modified: Sept 95]

Answer: Yes! Simply follow this link to "The URL-minder: Your Own Personal Web
Robot!"

http://www.netmind.com/URL-minder/URL-minder.html

and register the following ftp URL:

ftp://ftp.rahul.net/pub/kenton/faqs/Motif-FAQ (text version)
or
ftp://ftp.rahul.net/pub/kenton/faqs/Motif-FAQ.html (HTML version)

This free service is brought to you by Netmind at:

http://www.netmind.com/


-----------------------------------------------------------------------------
Subject: 9) Is this FAQ accessible via WWW?
[Last modified: Apr 98]

Answer: You can access the HTML version of this FAQ from my web site, either
uncompressed (600KB) or compressed (180KB):

ftp://ftp.rahul.net/pub/kenton/faqs/Motif-FAQ.html
ftp://ftp.rahul.net/pub/kenton/faqs/Motif-FAQ.html.gz

A list of other web sites (including mirror sites around the world) carrying
text and HTML versions of this FAQ is available at:

http://www.rahul.net/kenton/mfaq.html

Ken Lee

Thanks to Greg Ercolano (erco@netcom.com) for providing an awk script that
converts my Motif FAQ to HTML.

-----------------------------------------------------------------------------
Subject: 10)* Is this newsgroup archived?
[Last modified: Nov 98]

Answer: http://www.google.com/ archives several years of Usenet traffic.

-----------------------------------------------------------------------------
Subject: 11) TOPIC: OSF, MOTIF VERSIONS, CDE, COSE, DCE, The OPEN GROUP

-----------------------------------------------------------------------------
Subject: 12) How can I contact the Open Group?
[Last modified: Aug 97]

Answer: For more information on the Open Group, including a list of e-mail and
telephone contacts, see their WWW home page:

http://www.opengroup.org/


-----------------------------------------------------------------------------
Subject: 13) Where can I find OSF press releases on Motif and DCE?
[Last modified: May 97]

Answer: The Open Group web page:

http://www.rdg.opengroup.org/press/titles.htm

contains Motif and DCE press releases dating back to August, 1996.

-----------------------------------------------------------------------------
Subject: 14)* What versions of Motif are there?
[Last modified: Jan 02]

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 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.

Motif 1.2.1 was released September, 1992. 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, 1993. 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, 1994. 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, 1994. 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?" Due to binary compatibility problems, this
release was not very popular with UNIX vendors.

Motif 1.2.5 was released June 15, 1995 ONLY to OSF Motif Support Licensees as
part of their maintenance agreement. Motif 1.2.5 includes minor enhancements
to support CDE 1.0. Vendors not supporting CDE generally ignored this release
and continued to use Motif 1.2.4.

Motif 2.1 was released February 5, 1997. For details, see the questions "Is
there a concise features list for Motif 2.1?"

Open Motif 2.2 was released January 29, 2002. For details, see the questions
"Is there a concise features list for Motif 2.2?"

-----------------------------------------------------------------------------
Subject: 15)* How can I find which version of Motif I have? Xlib or Xt
version?
[Last modified: Jan 02]

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. In Motif 1.2, the macro
XmUPDATE_LEVEL was added to give the minor revision number (also known as the
patch level).

To find the version of a compiled Motif library:

grep XmVERSION_STRING libXm.a

To find the Motif version at run-time, use the global variable:

xmUseVersion

Ken Lee adds the following for determining the Xlib and Xt version:

X11/Xlib.h should have macros like this:
#define XlibSpecificationRelease 6
meaning X11R6.

Similarly, X11/Intrinsic.h has this in X11R6:
#define XtSpecificationRelease 6


-----------------------------------------------------------------------------
Subject: 16) Is there a concise features list for Motif 2.0?
[Last modified: Sept 94]

Answer:

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: 17) What are the details about new features in Motif 2.0?
[Last modified: Aug 97]

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).
OSF also published a nice technical overview in the X Journal.
A copy of that report is available on-line at:
http://www.opengroup.org/tech/deskto...f/xjournal.htm

Date: 11 Jul 94 15:49:27 GMT
From: (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: 18) Is there a concise features list for Motif 2.1?
[Last modified: Aug 97]

Answer: The Open Group's press release for Motif 2.1 is available at:
http://www.rdg.opengroup.org/press/5feb97.htm

A technical report is also available at:
http://www.opengroup.org/tech/deskto...data.sheet.htm

The major differences from Motif 2.0 are:

1) The CS text widget from Motif 2.0 is not included.

2) Motif 2.0 word-size independent UID files are no longer supported. Only
the Motif 1.2 word-size dependent format is supported.

3) To promote convergence with dtwm, mwm's panning, virtual screen, and
workspace features have been removed

4) Support was added for the X print server, including a new print dialog
widget

5) The Motif libraries are now thread-safe (if the underlying libraries and
system are also thread-safe)

6) Several internationalization features were added, including an on-the-spot
input method and vertical text writing

7) Motif 2.1 is based on X11R6.2 and will work properly with X11R6.3

-----------------------------------------------------------------------------
Subject: 19)+ Is there a concise features list for Motif 2.2?
[Last modified: Jan 02]

Answer: The Open Group's press release for Open Motif 2.2 is available at:

http://www.opengroup.org/openmotif/openmotif-2.2.html

OpenMotif 2.2 updates OpenMotif 2.1.30. The major change is the addition of
10 new widgets:

1) XmButtonBox
2) XmColorSelector
3) XmColumn
4) XmDataField
5) XmExt18List
6) XmFontSelector
7) XmIconBox
8) XmIconButton
9) XmTabStack
10) XmTree

In addition, a ToolTips feature is implemented within the XmPrimitive and
XmGadget classes.

---------------------------------------------------------------------------
END OF PART ONE