MOTIF Frequently Asked Questions


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/desktop/motif/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/desktop/motif/motif.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

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

Subject: 20) Where can I find Motif 2.1 documentation?
[Last modified: Mar 98]

Answer: A full listing of current Motif and CDE manuals in book form is
available at http://www.opengroup.org/pubs/catalog/mo.htm

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

Subject: 21)* Is the official Motif documentation available on-line?
[Last modified: Jan 02]

Answer: Open Motif documentation in PDF and PostScript formats is available
at:

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

The O'Reilly Motif tutorial books are available at:

http://www.ist.co.uk/NEWS/archive/motifbooks.html
http://www.oreilly.com/openbook/motif/

Here are some Russian translations of the Motif manuals:

http://motif.hut.ru/

For other on-line Motif documentation, please see:

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


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

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

Subject: 22) I want to use C++ with Motif. Where can I find C++ examples?
Motif 2.0 supports native C++ classes but I can't find documentation.
[Last modified: Sept 95]

Answer: Doug Rand <drand@sgi.com> writes: "There are some examples in the
demos tree, look under demos/lib/ExmCxx for widget examples.  The C++ support
was only a widget writer's tool.  When the widget writer's guide is out, you
can also look in that for documentation."

Scott W. Sadler <sws@iti-oh.com> replied to a related question about combining
Motif with C++: "There are two books available (that I know of):

    Object-Oriented Programming with C++ and OSF/Motif - Second Edition
    Doug Young 0-13-209255-7 (c) 1995

    Using Motif with C++
    Daniel Bernstein 0-13-207390-0 or 1-884842-06-2 (c) 1995"

See also the subject: "Is there a C++ binding for Motif?"

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

Subject: 23) Is Motif 2.0 backward compatible with Motif 1.2? Does a program
written for Motif 1.2 compile and run with Motif 2.0?
[Last modified: Jan 96]

Answer: (See also the next subject.) Doug Rand <drand@sgi.com> writes: "It is
backward compatible except where it isn't :)

1) Subclassed widgets which do not use XmResolvePartOffsets won't work.

2) If you free your XmStrings using any technique other than XmStringFree, it
is quite likely that your program either won't compile, or will crash with a


core dump at runtime. [Wording change for (2) provided by Alan Ezust
(ezust@learnix.ca).]

3) If you use libMrm and relink with the new shared library,  you'll need to
make the new modern .uid files (but if you wait for the Motif from CDE you
don't need to do this one).

4) If you assume that XmStrings are ASN.1 strings and play with them, it won't
work.  They are now data structures.  But the good news is that XmStringCopy
just increments a reference count now.

Note that #1 and #2 where always documented this way and aren't supposed to
work.

Otherwise,  it's pretty compatible.  We relinked a number of things and they
continued fine.  [These] include xrn (Motif), and a couple of other moderately
big things.  I want to say we did xmosaic,  but I can't remember if I'm right
about that.

#1 isn't a problem if you recompile your subclassed widgets.  But then there
is a source compatibility problem that you may need to include the obsolete
modules for the _Xm functions.  Proper 2.0 subclasses use Xme functions,  and
there is even a document."

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

Subject: 24) How compatible are Motif 1.2.* and X11R6?
[Last modified: July 96]

Answer: (See also the previous subject.) This is actually several related
questions with answers from David B. Lewis (d.lewis@opengroup.org) and Kenton
Lee (http://www.rahul.net/kenton/).

 1. Is it possible to run an X11R6 server with a Motif 1.2.* runtime
 environment (Motif libs and Motif Window Manager)?

David> Yes. The X11 protocol has not changed in its various versions, so
all X servers are compatible. There are differences, though, in
the fonts that are available and in a few of the gray areas in the
interpretation of the protocol. The fonts distributed by the X
Consortium form a standard set, though, and I know of no cases in
which changes in X11R6 cause problems for Motif programs (we are
using Motif with X11R6 servers here).

 2. Is there any possible conflict with Motif 1.2.* applications and an
 X11R6 server (assuming a Motif 1.2.* runtime environment)?

David> The only situation that I could imagine is a case in which Motif
1.2 code was written to depend on a particular bug or behavior of
an X11R5 server; I know of no such cases. Because of the stability
of the X11 protocol, Motif 1.2 programs should work with any
available X server, current and future.

 3. If Motif 2.0 is installed such that the Motif libraries and mwm are
 versions 2.0, is there 100% binary compatibility with statically linked
 Motif 1.2.* applications? If not, what are the known or potential problems?

David> There are additional support files in both the Motif and X11 areas
which are used at run-time. There are no known problems using Motif
1.2 *static* applications in a Motif 2.0 environment.

Kenton writes: R6 was designed to be backwards binary compatible with R5 and
most vendors have done a good job in implementing this.  Still, I wouldn't
recommend that my customers do this until I tested configurations similar to
theirs.

Motif 2.0 is backwards compatible with Motif 1.X in most cases.  I think Doug
Rand's comments in [the previous subject of the Motif FAQ] covers the
important issues.  In general, well written applications shouldn't have
problems, but some applications aren't well written.  Again, I would test
before making recommendations to my customers.

The above comments apply to run-time linking (shared library) compatibility.
If you statically link, the only problems I can imagine are the common ones
like installed fonts, supported server extensions, input methods, color name
databases, default visual types, etc.

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

Subject: 25) Why aren't the big UNIX vendors shipping Motif 2.0?
[Last modified: Aug 98]

Answer: Most of these companies decided to move to CDE 1.0 first.  CDE 1.0
uses Motif 1.2.5, which is not binary compatible with Motif 2.0.

Motif 2.1 was released in February, 1997.  Motif 2.1 is compatible with CDE
2.1 and (mostly) Motif 1.2.  You should expect the big UNIX vendors to start
shipping Motif 2.1 when they start shipping CDE 2.1.

Ken Lee

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

Subject: 26) Where can I get Motif for UNIX, Linux, or Microsoft Windows?
[Last modified: Jun 98]

Answer: A regularly updated list of Motif vendors for various operating
systems (including Linux and Microsoft Windows) is available at:
http://www.rahul.net/kenton/GettingMotif.html

Please send any corrections to kenton@nojunk.rahul.net

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

Subject: 27) 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: 28) 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: 29) What is CDE? What is COSE and how does it relate to Motif?
[Last modified: Sept 94]

Answer: [For more current information, see  also the subjects which follow
this one.]

    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...kenton@nojunk.rahul.net

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: 30)* Is there a CDE FAQ or newsgroup?
[Last modified: Aug 2001]

Answer: The CDE FAQ is located at:

   http://www.laxmi.net/cde.htm

There is also a newsgroup called news:comp.unix.cde

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

Subject: 31) What is the current version of CDE and what are its features?
[Last modified: May 97]

Answer: The latest version of CDE is 2.1 as announced by OSF in February 1997.
The following is the Open Group's press release:


FOR IMMEDIATE RELEASE CONTACT
Jane Smeloff
The Open Group
(617) 621-8997
j.smeloff@opengroup.org

Marilyn Kilcrease
Fleishman Hillard, Inc.
(415) 356-1031
kilcream@fleishman.com

The Open Group Announces Common Desktop Environment 2.1

New features enhance the functionality and ease of use of the widely used
graphical user interface for open desktop computing


CAMBRIDGE, Massachusetts (February 5, 1997) - The Open Group, the leading
organization for the advancement of open systems, today announced the release
of CDE 2.1, the latest version of The Open Group's Common Desktop Environment.
The current release integrates the Motif 2.0 graphical user interface, X
Window System, and CDE to standardize application presentations in distributed
multi-platform environments.

"As a result of solid cooperation among project participants, we are
delivering significant new features which makes CDE and Motif a unified face
for UNIX environments," said Dave Lounsbury, vice president of collaborative
development. "The CDE 2.1 project was the most extensive collaborative
development effort in the history of The Open Group."

The latest release of CDE features enhanced tools for creating integrated
graphical desktop applications. New features include thread-safe libraries,
64-bit system support, an X-based printing solution that implements a standard
way of printing from any application, an enhanced, SGML-based on-line help
system with a complete documentation set, "on the spot" input, and user-
defined characters for Asian languages. Many capabilities have been added to
ease programming, including traits, which enable user interface objects to
automatically inherit multiple API specifications, and a uniform transfer
model, which offer developers a consistent means of coding the different
data-transfer mechanisms (such as cut-and-paste and drag-and-drop). The new
release also provides a simple means of coding pop-up windows.

CDE 2.1 also incorporates Motif 2.0 user interface objects (widgets) spin box,
combo box, container, and notebook. With this release, the style guides for
CDE and Motif converge.

The fee for a CDE 2.1 full-distribution source code license is $40,000.  An
evaluation copy of source code costs $5,000. To order CDE 2.1, contact Open
Group Direct, at 1-800-268-5245, or send e-mail to direct@opengroup.org.

Introduced in 1995, CDE was jointly developed and licensed by Hewlett-Packard,
IBM, Novell, and SunSoft. Since that time, the technology has evolved within
The Open Group's Pre-Structured Technology (PST) process, a multi-vendor
technology development program. Currently, Hitachi, Fujitsu, Digital Equipment
Corporation and SCO work with the original CDE sponsors, IBM, HP and SunSoft
within the Open Group's PST framework, to provide for the maintenance of CDE
and the development of new releases.

The Common Desktop Environment is a graphical user interface that delivers
consistency and ease of use to system administrators as well as end users.
With CDE, system administrators gain a degree of control over the desktop
computing environment that has often been lost in the move from centralized to
client-server or distributed computing. CDE gives end users access to the
power and flexibility of today's networked desktop systems.

The Open Group

Dedicated to the advancement of multi-vendor information systems, The Open
Group is an international consortium of systems and software vendors and
customers from the industry, government and academia. The Open Group and its
members work together to strengthen and streamline the development process and
availability of open systems. The organization provides a focal point for the
development of international specifications and test suites, standards based
technologies, advanced open systems research, professional services and the
management of the internationally recognized brand for open systems. The Open
Group's brand mark is recognized worldwide and is a guarantee of compliance to
open systems specifications. The Open Group is Headquartered in Cambridge, MA,
with European headquarters in Reading, England and offices in Menlo Park, CA;
Brussels, Belgium; Grenoble, France; and Tokyo, Japan.

The Open Group is a trademark of the Open Software Foundation, Inc. and X/Open
Company Ltd. OSF/Motif and Motif are registered trademarks of The Open Group.
X Window System is a trademark of The Open Group and the X Consortium is a
trademark of The Open Group.  UNIX is a registered trademark in the US and
other countries, licensed exclusively through X/Open Company Ltd. All other
products or company names mentioned are used for identification purposes only,
and may be trademarks of their respective owners.

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

Subject: 32) How does Motif relate to X/Open and CDE?
[Last modified: Mar 96]

A.  NOTE: This answer from Sept. 1995 is somewhat obsolete due to the
formation of The Open Group. See "What is The Open Group?"....ksall@cen.com

From OSF's CDE/Motif Program Manager, Terry Landers (landers@osf.org):

"In response to the discussion [on comp.windows.x.motif] of Motif and
"officially supported" APIs ... two areas were brought up that I hope to be
able to clarify.


Standards:
=========
As you probably know, Motif has become an X/Open standard.
The X/Open specification was based on the OSF AES, and going
forward the X/Open specification will take precedence.

As part of the CDE/Motif PST, interface extensions to
the XMotif specification will be proposed to X/Open.

Although it is too early to discuss what will be proposed
to X/Open, OSF members who are interested will have early
access to CDE/Motif functional specifications as part of
the Desktop SIG activities.

Convergence:
===========
OSF has taken the first step in convergence with the release
of Motif 1.2.5.   Motif 1.2.5 merges OSF Motif 1.2.4 with
CDE Motif and defect fixes to the 1.2 code base that were
made in Motif 2.0.

The next step in convergence will come with the CDE/Motif PST
deliverables.

I hope this has helped ... if you have any questions you can
contact me at:

        landers@osf.org
        617-621-7282"


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

Subject: 33) What is The Open Group?
[Last modified: Aug 97]

Answer: On February 14, 1996, X/Open and OSF merged to form "The Open Group".

which calls The Open Group a "New Organization to Improve Coordination of
Efforts to Develop and Implement Common Standards and New Technologies".  You
might also want to read other press releases from The Open Group and visit
their home page:

    http://www.opengroup.org/

Below is the announcement sent by OSF's Kristen Knotts...ksall@cen.com


    To: OSF.Support.Subscribers:;@osf.org
    Subject: X/Open & OSF Join to Form The Open Group
    Date: Wed, 14 Feb 1996 12:26:53 -0500
    From: Kristen Knotts <kjk@osf.org>

During a press conference at UniForum '96, officials of X/Open Company,
Ltd. and the Open Software Foundation (OSF), the two leading consortia for
the advancement of open systems, announced their consolidation into a new,
more powerful worldwide organization known as The Open Group.

The new entity has been formed to strengthen and streamline the entire open
systems process, including adoption of open systems specifications,
development of specification-compliant technologies, and promotion of their
use in the global enterprise computing marketplace.  Full information can
be obtained from The Open Group Web Site:

    http://www.opengroup.org/


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

Subject: 34) Is The Open Group assuming responsibility for the X Window
System?
[Last modified: July 96]

A. Yes it will, at the beginning of 1997. See the X Consortium's announcement
at:

        X Consortium to Transfer X Window System to The Open Group

It is reproduced _in part_ below for your convenience, followed by a related
announcement from The Open Group.

Cambridge, Massachusetts - July 1, 1996 - X Consortium, Inc.
today announced that it would transfer responsibility for the X
Window System to The Open Group at the beginning of next year. "X
is now mainstream technology, and since the first commercial release
in 1986 it has matured to the point where a dedicated consortium is no
longer essential to its on-going support," explains Robert W. Scheifler,
president of the X Consortium. "Our industry will benefit greatly by
continuing and accelerating the convergence of X, Motif and the
Common Desktop Environment (CDE) into a unified technology
stack. This is already well underway with the current CDE-Motif
PST project, operating under the auspices of The Open Group, an
organization that is well positioned to take this technology into the
future." The Open Group will continue their existing work of
publishing, testing and branding products which conform to
international standards, including X.

"As a long standing partner with the X Consortium in the Open
Systems industry, The Open Group supports this decision. On a
personal note, I want to add that the computer industry owes an
enormous debt of gratitude to Bob Scheifler and the X Consortium for
the service they have provided for the last eight years," commented
Jim Bell, CEO of The Open Group. "Their very positive impact on our
industry will continue to be felt for years to come."

As part of this change, X Consortium plans to wind down all
engineering operations at the end of this year. "I have made a
commitment to our members, and to the sponsors of the CDE-Motif
project, to oversee the entire transition process from now until our
current engineering projects are finished and the hand-off is
complete," said Scheifler. The X Consortium will work with its
members and The Open Group to determine whether the organization
should continue on in some reduced fashion.

Broadway, the code name for the next release of the X Window
System, will be completed as planned by the end of the year, and will
be made freely available to the public under the same terms as
previous X Consortium releases. Broadway enables interactive UNIX
and Windows applications to be integrated, unmodified, into HTML
documents and published on World Wide Web servers, using plug-in
technology, and includes network protocols for graphics and audio to
provide remote access to those applications from inside Web
browsers. The Broadway release is expected to be available from
current sources, including worldwide ftp sites and CDROM
distributors.

The X Consortium will fulfill its obligations as prime contractor in The
Open Group's Pre-Structured Technology (PST) project developing
the next release of CDE and Motif. "The plan has always been to
complete both the CDE-Motif project and Broadway by the end of
this year," says Jim Fournier, Director of Engineering. "We are
confident in our ability to deliver as planned."

                   ************************

A related announcement from corpcom@opengroup.com (The Open Group Corporate
Communications) was sent July 1, 1996, an excerpt of which appears below:

     The Open Group Continues to Expand Product and Services Portfolio

                 Leading Open Systems Consortium
                Absorbs X Window System Technology

The Open Group announced today as an addition to its growing portfolio of
products and services, it will assume custodianship for the X Window System
technology, currently owned and managed by the X Consortium.  In its
press release today, the X Consortium also declared that it will continue to
fulfill its obligations as prime contractor in The Open Group CDE Pre-
Structured Technology (PST) project, developing the next releases of CDE and
Motif, scheduled to be completed by year end, and then cease its internal
engineering operations.

"Since its first commercial release in 1986, the X Window System has
matured to the point where a full-scale, dedicated consortium is no longer
essential to the on-going support of the technology," said Robert W. Scheifler,
X Consortium president and founder.  "In light of our existing relationship it
makes sense to fold our ongoing work into The Open Group.  Furthermore,
given the overlapping membership of the two organizations, this move will
greatly streamline and enhance the process of defining open standards."


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

Subject: 35) What are the current correct trademark statements for X and
Motif?
[Last modified: May 97]

Answer: The Open Group is a trademark of the Open Software Foundation, Inc.
and X/Open Company Ltd. OSF/Motif and Motif are registered trademarks of The
Open Group. X Window System is a trademark of The Open Group and the X
Consortium is a trademark of The Open Group.  UNIX is a registered trademark
in the US and other countries, licensed exclusively through X/Open Company
Ltd.

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

Subject: 36) Will CDE and Motif converge? What is the CDE/Motif JDA?
[Last modified: May 97]

Answer: I'm leaving the following announcement here for historical reference.
Note that the converged CDE/Motif was released in February, 1997 and is called
CDE/Motif 2.1.  A press release is included earlier in this FAQ.

In September, 1995, OSF announced the Joint Development Agreement under which
vendors will participate in a plan to converge Motif and CDE. The announcement
follows.

 From kjk@osf.org  Fri Sep  8 17:55:55 1995
 To: OSF.Motif.Support.Subscribers:;@osf.org
 Cc: OSF.Service.Subscribers:;@osf.org
 Subject: OSF Press Release Announcing Signing of CDE/Motif JDA
 Date: Fri, 08 Sep 1995 17:46:04 -0400
 From: Kristen Knotts <kjk@osf.org>

 To:            OSF Motif Support Subscribers
 From:          The Open Software Foundation

 ************************************************************
              OSF MOTIF SUPPORT ELECTRONIC UPDATE
 ************************************************************
 An electronic mail news update for Motif Support Subscribers
 from the Open Software Foundation (OSF)


 CONTACT:        Jack Dwyer
                 Open Software Foundation
                 (617) 621-7246
                 Email: dwyer@osf.org


     OSF Announces Formal Launch of CDE/Motif Project

 Multi-vendor project to enhance and converge OSF/Motif and the Common
 Desktop Environment

 CAMBRIDGE, MA September 7, 1995 -- The Open Software Foundation today
 announced the formal signing of the Joint Development Agreement for the
 further enhancement and evolution of the Common Desktop Environment (CDE)
 and OSF/Motif under the Open Software Foundation's Pre-Structured
 Technology (PST) development process. The seven sponsors of the CDE/Motif
 PST are Digital Equipment Corp., Fujitsu Limited, Hewlett-Packard Company,
 Hitachi, Ltd, IBM Corp., Novell, Inc., and SunSoft, Inc.

 The CDE/Motif PST is a cooperative, multi-vendor, development project. The
 Open Software Foundation's PST process allows for existing technologies
 from multiple vendors to be further developed and integrated into a
 complete open system technology. The X Consortium has been designated as
 the project's prime contractor.

 CDE/Motif will continue the evolution of the desktop technologies necessary
 to meet the expanding user requirements in such areas as On-line
 Information Access, Printing, and Internationalization. A key objective of
 the PST is to fully converge OSF/Motif and the CDE version of Motif into a
 single development stream. The resulting PST technology will be binary
 compatible with CDE 1.0.

 Mr. Don Harbert, Vice President of UNIX Business Segment for Digital
 Equipment Corporation said, "Digital is an enthusiastic participant in the
 development of the next version of CDE. As a founding member of the Open
 Software Foundation and the first vendor to ship a commercial version of
 the X Window System, Digital recognizes the importance of standard user
 interfaces and the importance of the PST process in developing code."

 "Fujitsu is pleased to support the evolution of CDE and Motif technology,
 both by contributing the Fujitsu OLIAS technology for a robust CDE Online
 Information Access feature, and by improving CDE/Motif
 Internationalization. Providing a common user interface over many different
 hardware systems is critical to the future of Open Systems", said Mitsuru
 Sanagi, General Manager of the Client Server System Strategy and Alliance
 Division, Fujitsu Limited.

 "As one of the original development partners for CDE and as a current
 supplier of CDE technology in AIX, IBM is committed to enhanced usability
 for our AIX customers," said Donna Van Fleet, Vice President for AIX
 Systems Development, IBM RISC System/6000 Division. "Now, as one of the
 sponsors of this new PST, we continue the enhancements to CDE that will
 provide even more ease-of-use value for our customers, while maintaining
 all the benefits of an open technology."

 "CDE is important, industry-unifying technology and Novell is looking
 forward to working with the other CDE/Motif sponsors to continue its
 development," noted Don McGovern, Vice President, Operating System
 Division, Novell, Inc.

 "As chair of the CDE/Motif PST Steering Committee, SunSoft is pleased by
 the active participation and strong commitment for this project.  This
 clearly underscores the strong industry support for open systems," said
 Paula Sager, Vice President of Desktop Technologies, SunSoft, Inc.  "We are
 looking forward to working with our partners to deliver the best open user
 environment available."

 "We're excited that we are able to contribute to this important industry
 initiative ", said Robert W. Scheifler, President of X Consortium.
 "CDE/Motif combines premier desktop technologies and builds on what is now
 a long line of products founded upon X. There is a lot of synergy between
 the X Consortium's objectives and the goals of the CDE/Motif PST. Our
 involvement as the prime contractor for this project is a logical extension
 of that fact."

 The base technologies for the CDE/Motif PST are CDE 1.0 and OSF/Motif 2.0.
 On-line Information Access will include an SGML-based browser, the ability
 to display and print SGML documents, full text search and retrieval, and
 integration with the on-line help facility. Enhanced internationalization
 capabilities will include the ability to display vertical text, support for
 user defined characters, input method selection at run time, and an
 on-the-spot input method capability. Print capabilities include a graphical
 interface for print job submission, a single API for both display and
 printing, printing support for Motif text and label widgets, help,
 calendar, mail and the text editor. In the process, CDE/Motif will be made
 thread safe and will include support for 64-bit architectures.

 The output of this PST joint development will be a merged CDE/Motif source
 package, a standalone version of Motif, and conformance tests for both CDE
 and Motif. Upon completion, the conformance test suites will be offered to
 X/Open for their branding purposes. Also offered to X/Open will be a merged
 style guide for CDE and Motif, the Motif Drag and Drop protocol, and API
 extensions to CDE and Motif.

 The first deliverable of the CDE/Motif PST will be a maintenance release
 for CDE 1.0 planned for the end of 1995. The schedule further calls for a
 CDE/Motif snapshot to be made available to licensees in mid-1996, with
 general availability of CDE/Motif scheduled for the end of 1996.

 For more information on CDE/Motif, you are invited to contact David Knorr,
 OSF CDE/Motif Business Area Manager, at +617-621-7227 or dknorr@osf.org.

 The Open Software Foundation delivers technology innovations in all areas
 of open systems, including interoperability, scalability, portability, and
 usability. OSF has created a coalition of worldwide vendors and users in
 industry, government and academia that leverage their economic investments
 by working together to provide the best open systems technology solutions
 for distributed computing environments. Headquartered in Cambridge, MA,
 with offices in Brussels, Grenoble and Tokyo, OSF has more then 380 members
 worldwide.
                                      ###

 OSF, OSF/Motif, and Open Software Foundation are trademarks of the Open
 Software Foundation, Inc.


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

Subject: 37)* Has anyone done a public domain Motif lookalike?
[Last modified: Feb 02]

Answer: Open Motif is open source, but not public domain.  This following may
be of interest to public domain purists.

LessTif is a freeware version of Motif from the Hungry Programmers.  It is
still in development and is intended to be source code compatible with Motif,
meaning that the same source will compile with both libraries and work exactly
the same.  [Thanks to John W. Carbone, jwc@li.net, Chris Toshok
(toshok@hungry.com), and Jon Fo (jonf@protocol.com)] For more information, see
http://www.lesstif.org/

Tcl/Tk is available for ftp from allspice.berkeley.edu, and although
implemented without Xt, has a "strict Motif" mode. There is also Tix, the Tk
Interface Extension. See:

    http://www.sunlabs.com/research/tcl/
    http://www.cis.upenn.edu/~ioi/tix/tix.html

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 of the source code and documentation can be found on
interviews.stanford.edu.  Fresco (http://www.iuk.tu-harburg.de/fresco/) and
ivtools (http://www.vectaport.com/ivtools/) are based on Interviews.

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 Motif. Contact the author Udo Baumgart
(U.BAUMGART@ldb.han.de) for details.

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

Subject: 38) Does the Open Group have an application compliance validation
service?
[Last modified: Aug 97]

Answer: The Motif Toolkit API Verification Suite (VSM4) replaces the earlier
Motif Branding Program.  For more information on VSM4, see
http://www.opengroup.org/tech/desktop/ordering/motif.price.list.htm#branding

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

Subject: 39) 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.

---------------------------------------------------------------------------
END OF PART TWO

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

Subject: 40) 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: 41) Where can I find X technical info on the WWW?
[Last modified: Mar 96]

Answer:

    Technical X Window System and OSF/Motif WWW sites
    http://www.rahul.net/kenton/xsites.html

This web site currently lists over 700 X Window System links, including
technical papers, tutorials, FAQs, product reviews, etc.

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

Subject: 42) What is Broadway? I've heard it called "X on the Web".
[Last modified: Jun 98]

Answer: Broadway was the X Consortium's internal code name for the X11R6.3
release.  It includes a collection of X-based technologies for the World Wide
Web.  For details, see:

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

And if you're wondering. "Why did they call it Broadway?", the X Consortium
was located at 201 Broadway, Cambridge, MA.... ksall@cen.com

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

Subject: 43) 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: 44) Where can I get the HTML widget used in Mosaic?
[Last modified: Mar 96]

Answer: Thanks to Matthew Freedman (mattf@cac.washington.edu) and
intasoft@cix.compulink.co.u for updates to the URLs mentioned in this answer.

Ken Sall (ksall@cen.com) writes: The HTML (HyperText Markup Language) widget
is part of the NCSA Mosaic source code available from ftp.ncsa.uiuc.edu.  Look
in the "libhtmlw" subdirectory of the "Mosaic-src-*" subdirectory of:

    ftp://ftp.ncsa.uiuc.edu/Mosaic/Unix/source/

or, more generally, look for the files HTML.c, HTML.h, HTMLP.h, etc. in your
"libhtmlw" subdirectory of the Mosaic source.

For (old) documentation, see

http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/htmlwidget.html.

However, Matthew M. Freedman (mattf@cac.washington.edu) pointed out the
document is out of date: "One important thing to know is that the on-line
documentation for the Mosaic html widget is out of synch with the source code.
I e-mailed NCSA about this in May, but they seem to have ignored the report.
The one that I wasted half a day because of is HTMLSetText(). The on-line docs
list four arguments, but in fact there are seven. I have no idea what the
extra three undocumented parameters are used for, I just plugged in NULL's and
it works. The other error I noticed is that they document a "page" field in
WbAnchorCallbackData, but it does not actually exist.  Also, at least for me,
after I call HTMLSetText() the first time, the widget remains blank. I have to
lower and raise the window for it to be drawn. Anybody know what is wrong? I
guess will probably just spoof an expose in my code."


For information on using Mosaic by remote control, see

    http://www.ncsa.uiuc.edu/SDG/Software/XMosaic/CCI/cci-spec.html
and
    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: 45)* What widgets does Netscape use for its bookmarks list and
preference panels?
[Last modified: Jan 02]

Answer: Netscape uses the Microline widget set.  Microline was purchased by
Neuron Data (http://www.neurondata.com/), but they no longer sell the
Microline widget set.

Some of the Microline widgets are available in the Mozilla source code:
http://lxr.mozilla.org/classic/source/cmd/xfe/Microline3.0/

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

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

Subject: 46) TOPIC: BOOKS and JOURNALS

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

Subject: 47) Is there a Motif tutorial? Xt tutorial? X11 tutorial?
[Last modified: Nov 96]

Answer: For the most up-to-date links to Motif/X11/Xt tutorials, see:

    http://www.rahul.net/kenton/xsites.html#Xtutorials
    On-line X programming tutorials (Kenton Lee's multi-lingual links)


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 <borchers@stanford.edu> writes about his Xmtutor:

"Xmtutor" is an interactive tutorial teaching you how to write Motif
applications. While it comes with a complete printable book file, its key
component is the online version of the tutorial: It's a Motif application
itself, and its examples are actual running Motif applications. You can modify
their resource settings from within the tutorial, and then play with them to
see how their interface reacts.  For the free version, screen shots,
registration, and more information check out the Xmtutor home page at:

    http://www.stanford.edu/~borchers/xmtutor/


More on-line Motif tutorials and technical papers are listed on my web site:

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


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

Subject: 48) What books are available for Motif application programmers?
[Last modified: Mar 98]

Answer: NOTE: This subject is impossible to keep meaningfully up to date and
has been deleted.

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

Subject: 49) What relevant journals are available?
[Last modified: Jun 98]

Answer: In October, 1997, ICS has launched The Motif Zone at

    http://www.motifzone.com/

This web site contains a Motif reference section and an on-line magazine
called *The Motif Developer*.

Several other Motif-oriented magazines have existed in the past, but are
ceased publishing.  Their back issues are still very interesting, though.
Back issues of the print magazines may be available from their publishers or
at better technical libraries.  Back issues of "The X Advisor" are no longer
on line.

"The X Journal" was published bimonthly by SIGS Publications, +1-212-274-0640.
"The X Resource: A Practical Journal of the X Window System" was published
quarterly by O'Reilly and Associates, +1-800-998-9938.

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

Subject: 50) TOPIC: MWM and the SHELL WIDGET

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

Subject: 51) 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 Style Guide, an API
toolkit of `C' routines which helps in the building of applications which
conform to the style guide, the window manager mwm, and a language UIL which
is designed to ease user interface development.

In general mwm will run any application built with any X Window System API,
and in general an application built using the Motif toolkit will run under any
window manager.

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

Subject: 52) 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: 53) What are some useful mwm resources I can control?
[Last modified: Sept 95]

Answer: Ken Sall (ksall@cen.com) writes: The following are described in the
mwm(1) man page:

    clientAutoPlace (class ClientAutoPlace)
    focusAutoRaise (class FocusAutoRaise)
    interactivePlacement (class InteractivePlacement)
    positionIsFrame (class PositionIsFrame)
    positionOnScreen (class PositionOnScreen)
    useIconBox (class UseIconBox)


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

Subject: 54) How can I configure mwm, such as changing or adding to root
menus?
[Last modified: Oct 95]

Answer: Read the mwm(1) man page which describes how to configure mwm using
the .mwmrc file. The default location of the system-wide version of this file
is /usr/lib/X11/system.mwmrc. You can override settings in the global file by
creating your own $HOME/.mwmrc.

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

Subject: 55) How can my program determine which window manager is running?
[Last modified: Nov 97]

Answer: Each window manager has its own signature, but unfortunately there is
no standard query mechanism.  Motif provides XmIsMotifWMRunning() to test for
mwm.

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


Subject: 56) How can I modify the mwm's window decorations with a resource
file?
[Last modified: Dec 97]

Answer: Set mwm's client resource "clientDecoration" for your particular
application.  For example,

Mwm*XClock.clientDecoration: none

turns off all clock decorations.  See the mwm man page for other options and
other mwm client resources.

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


Subject: 57) How can I programatically modify the mwm's window decorations?
[Last modified: July 95]

Answer: Programmatically, set the VendorShell resource XmNmwmDecorations to 0,
such as:

  #include <Xm/MwmUtil.h> /* see MWM_DECOR_* and MWM_FUNC_* */
  #include <Xm/DialogS.h>
  popupShell =
      XtVaCreatePopupShell( "PopupShell",
                            xmDialogShellWidgetClass, toplevel,
                            XmNmwmDecorations, 0,
                            NULL );

With the 0, you have no decorations at all, but if you want just a little
frame, use MWM_DECOR_BORDER instead.

Thanks to Guillaume.Gallais@asm.thomson.fr for the code fragment and pointing
out that there is no MWM_DECOR_NONE.

Reinhard M. Weiss (weissrm@execpc.com) also pointed out that MWM_DECOR_NONE
was fictitious. He also added:

"I have found that the resource XtNoverrideRedirect does cause the olwm to
remove all decorations (my guess is that it would work in mwm roughly the
same).  This works programmatically as well as in resource files (i.e.
*.className*overrideRedirect: true). There are some undesirable effects to
this, however, particularly with focus and managing dialogs and popups."

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

Subject: 58) 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: 59) How can I put decorations on transient windows using olwm?

Answer: This code is from Jean-Philippe Martin-Flatin <syj@ecmwf.int>:

/**********************************************************************
** 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 <X11/X.h>
#include <X11/Xlib.h>
#include <X11/Xatom.h>
#include <X11/Intrinsic.h>
#include <X11/StringDefs.h>
#include <X11/Protocols.h>
#include <Xm/Xm.h>
#include <Xm/AtomMgr.h>

/*
** 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.int if you
        ** find out what is going on !
        */
        AddOLWMDialogFrame(shell,(OLWM_Header | OLWM_Resize));
/*      AddOLWMDialogFrame(shell,(OLWM_Header | OLWM_Resize | OLWM_Close)); */
}


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

Subject: 60) 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 <Xm/MwmUtil.h>

    XtVaGetValues(shell, XmNmwmFunctions, &int_val, NULL);
    int_val &= ~(MWM_FUNC_CLOSE | MWM_FUNC_ALL);
    XtVaSetValues(shell, XmNmwmFunctions, int_val, NULL);


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

Subject: 61) How can I create a multi-colored window manager icon?
[Last modified: Oct 95]

Answer: The only portable way to do this is with icon windows.  The WMShell
widget supports icon windows with its XmNiconWindow resource.  Set this to a
window  that your application has created.  The window could be the XtWindow()
of a realized shell widget.  The window must be created with the default
visual and colormap of its screen.  Other requirements on icon windows are
specified in section 4.1.9 of the X11R6 ICCCM.  Note that some window managers
provide alternate techniques for creating color icons; none of these are
standard or portable.

Ken Lee

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

Subject: 62) 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.

Ken Lee

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

Subject: 63) Why is XtGetValues of XmNx and XmNy of my toplevel shell wrong?
[Last modified: Oct 95]

Answer: [Note: This answer is borrowed from the Xt FAQ,
ftp://ftp.x.org/contrib/faqs/FAQ-Xt, devoted to X Toolkit Intrinsics.]

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

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

Subject: 64) How do I get XmNx and XmNy positions to be honored correctly?
[Last modified: Nov 96]

Answer: One answer is to pass the right hints to the window manager, perhaps
using XSetWMNormalHints.  Another approach comes from Shane Burgess
(shane@radionics.com) who writes:

By setting the XmNdefaultPosition resource (on XmBulletinBoard or its
subclasses, including the message dialogs) to False, I've found that all my
XmNx & XmNy requests gets set correctly.

Pete Sakalaukus (sakalauk@pelican.st.usm.edu) says that XmNdefaultPosition
only works with olwm, not mwm.

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

Subject: 65) 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: 66) How can I tell if the user has selected "Close" from the system
menu? How do I catch the "Close"?  I need to do some clean up before exiting.
[Last modified: Aug 95]

Answer: Catching the mwm Close involves using XmAddWMProtocolCallback and
possibly setting the XmNdeleteResponse resource. Note that whether your
application involves multiple applicationShells vs. a single applicationShell
and multiple toplevelShells is significant. Following the two older code
fragments is a complete test application which can be compiled with different
#defines to alter the behavior.

This works with R4 Intrinsics

        #include <Xm/Protocols.h>

        void FinalCleanupCB(w, client_data, call_data)
        Widget   w;