• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

Xmt/H03-May-2022-46,95432,788

clients/H03-May-2022-1,181836

contrib/H26-Sep-2001-5,5214,770

examples/H26-Sep-2001-4,9774,303

man/H26-Sep-2001-14,58212,269

tests/H26-Sep-2001-416323

AUTHORH A D10-Feb-200115 21

CHANGE-LOGH A D26-Sep-200110.4 KiB336282

CHANGES-HISTORYH A D10-Feb-200152 KiB1,2941,002

COPYRIGHTH A D10-Feb-20014.7 KiB9576

DEVELOPMENT-TEAMH A D01-Apr-2001107 52

FAQH A D10-Feb-20014.3 KiB8968

INSTALLATIONH A D14-Jul-20017.2 KiB179145

ImakefileH A D03-May-20221.4 KiB6758

KNOWNBUGSH A D10-Feb-200123.3 KiB565500

LICENSEH A D10-Feb-20012 KiB4034

NEW-FILE-TEMPLATEH A D16-Sep-2001479 1716

NO_WARRANTYH A D10-Feb-2001854 1413

OVERVIEWH A D10-Feb-20012.2 KiB5136

PLATFORMSH A D10-Feb-20011.1 KiB4539

PROBLEM-REPORT-FORMH A D16-Sep-20013.1 KiB8959

QUICK-START-MEH A D10-Feb-20011.5 KiB3726

READMEH A D26-Sep-20013.5 KiB8363

README.210H A D10-Feb-20017.9 KiB182139

RELEASE-NOTESH A D22-Sep-20014.8 KiB9881

THANKSH A D16-Sep-20011.3 KiB6358

VERSIONH A D16-Sep-20016 21

Xmt.tmplH A D03-May-202213.4 KiB360328

README

1This is version 4.0.0 of the Xmt distribution, also known as the
2"Motif Tools library".  Complete documentation for the library is
3contained in the book "Motif Tools" from O'Reilly & Associates, which
4is now out of print. However, this distribution includes man pages.
5Html docs will be added in future releases.
6
7After you read this file, there are several other files you should read:
8
9    The file README.210 explains what's new in version 2.1.0 of Xmt.
10
11    The file OVERVIEW contains an overview of the widgets and convenience
12    functions in Xmt.
13
14    The file QUICK-START-ME will satisfy those that want to cut to the quick.
15
16    The Xmt library is Open Source as defined by OpenSource.org. This
17    software is provided at no charge and the license is based on those
18    that are already authorized by OpenSource.org. There is no requirement
19    that you purchase anything and this software does not "contaminate"
20    other software that it is included in. Please read LICENSE for the
21    details.
22
23    Xmt comes with no warranty of any kind. The file NO_WARRANTY explains
24    this.
25
26    This is a source-code distribution. The file INSTALLATION
27    explains how you can compile and install the Xmt library and clients.
28
29
30FILES AND DIRECTORIES
31
32This distribution contains the following files and directories:
33
34  AUTHOR          originating author of Xmt - David Flanagan.
35  BUG-REPORT-FORM a form and instructions for submitting bug reports.
36  CHANGE-LOG      a list of changes since the Open Source Release.
37  CHANGES-HISTORY a list of changes up to Open Source Release.
38  COPYRIGHT	  copyright information for Xmt.
39  FAQ             frequently asked questions for Xmt.
40  INSTALLATION	  how to compile and install Xmt.
41  KNOWNBUGS	  a (short) list of bugs that the author knew about.
42  LICENSE         the terms and conditions for using Xmt.
43  NO_WARRANTY	  a standard "No Warranty" disclaimer.
44  OVERVIEW	  a list of features in Xmt.
45  PLATFORMS       a list of known platforms that Xmt has been used on.
46  QUICK-START-ME  no verbosity, go for it.
47  README	  this file.
48  README.210	  important notes about a previous version of Xmt.
49  RELEASE-NOTES   Summary overview of what verious releases are about.
50  THANKS          Acknowledgements to a cast of many.
51  VERSION         specifies what version of Xmt you have.
52  Imakefile	  a top-level Imakefile for building the distribution.
53  Xmt.tmpl	  an imake template for use with the Imakefile.
54  Xmt/		  source code for the Xmt library.
55  clients/	  Xmt client applications.
56  contrib/	  stuff that is not part of Xmt, but is useful anyway.
57  examples/	  some examples demonstrating important Xmt features.
58  man/		  ASCII formatted man pages for Xmt.
59  tests/          tests of widget enhancements after becomming open source.
60
61
62DOCUMENTATION
63
64ASCII man pages for each of the widgets and convenience functions in the
65library are in man/cat3; they are the online documentation for the
66library.  As mentioned above, the book _Motif Tools_ is the complete
67documentation for the library; it is a complete programmer's guide, and
68also contains a printed form of the man pages as a reference section.
69Unfortunately, this book is now out of print. David Flanagan and Jeffrey
70Franks are addressing this issue.
71
72
73REPORTING BUGS
74
75If you find a bug in the Xmt library, or anywhere in the Xmt
76distribution, please report it. The file PROBLEM-REPORT-FORM explains
77how to do this.
78
79    David Flanagan - Author and copyright holder
80
81    Jeffrey L. Franks - Coordinator for Xmt Open Source Project
82	                and MotifTools.org hosted on SourceForge.com
83

README.210

1
2		      README for Xmt Version 2.1
3
4
5			Compiling Xmt 2.1
6		---------------------------------------
7
8You can compile Xmt 2.1 just as you compiled Xmt 2.0.  See Appendix A of
9Motif Tools or the file INSTALLATION for instructions.  Before you
10compile, however, don't forget to read through the file Xmt.tmpl and
11edit as necessary for your platform.  If you made changes to this file
12for Xmt 2.0, you'll probably want to make the same changes for 2.1.
13Note however that Xmt.tmpl has changed--there are new workarounds that
14you can select--and so you cannot simply copy your old version of
15Xmt.tmpl into your Xmt 2.1 directory.  In particular, note that if you
16are using SunOS 4.1.3_u1, or another system that does not have
17memmove(), you'll have to uncomment the -DNO_MEMMOVE flag in Xmt.tmpl
18
19Also note that this release does contain the Makefile.simple files that
20were accidentally omitted from the previous release.  So if you do not
21have imake, or if it does not work well for you, you can edit and use
22these simplified Makefiles.
23
24
25			Changes in Xmt 2.1
26		---------------------------------------
27
28The notes below give an overview of what has changed between version
292.0 and 2.1 of Xmt.  For a very detailed (and probably less useful)
30list of all changes, see the file CHANGES.
31
32The large majority of the changes for version 2.1 are bug fixes.
33Version 2.1 should be significantly more robust than version 2.0.
34
35The major new features in version 2.1 are support for Motif 2.0 and
36the addition of three new "space types" to be used on the XmtNspaceType
37resource of the LayoutBox widget to control the horizontal positioning
38of items within rows or the vertical positioning of items within
39columns.
40
41MOTIF 2.0 CHANGES:
42------------------
43
44Tony Hefner and Gary Merrill of the SAS Institute ported Xmt to work
45with Motif 2.0, and were kind enough to contribute their patches.  The
46changes for Motif 2.0 are the following:
47
48    1) Additions to the XmString converter to support tabstops
49	    and renditions.  Use @b[rendition_tag] to begin a rendition
50	    and @e[rendtion_tag] to end a named rendition.  Use a tab
51	    character to tab to a tab stop.  See your Motif 2.0
52	    documentation for more information on renditions, and
53	    also see the example below.
54
55    2) Layout and Chooser widgets now have XdtNrenderTable resources that
56	    are analogous to their XdtNfontList resources.
57
58    3) The Chooser widget now supports another type of "choice" with the
59	    XmComboBox widget.  Use the new XmtChooserType value
60	    XmtChooserComboBox.
61
62    4) The XmCSText and XmComboBox widgets can be registered for use in
63	    automatic dialogs with XmtRegisterXmCSText(),
64	    XmtRegisterXmScrolledCSText(), and XmtRegisterXmComboBox().
65
66    5) XmtRegisterMotifWidgets registers the above widgets, plus the new
67	    XmContainer, XmIconGadget, XmNotebook, and XmSpinBox.
68
69    6) a few miscellaneous changes to make Xmt compile under Motif 2.0
70
71    To use the new XmString rendition stuff, you might specify a rendtion
72    table like the following.
73
74	*renderTable:  green, variable
75	*renderTable.fontName: fixed
76	*renderTable.fontType: FONT_IS_FONT
77	*renderTable.underlineType: NO_LINE
78	*renderTable*tabList: 1in, +1.5in, +3in
79	*renderTable.renditionForeground: black
80	*renderTable.green.renditionForeground: Green
81	*renderTable.green.fontName: AS_IS
82	*renderTable.green.underlineType: SINGLE_LINE
83	*renderTable.variable.renditionForeground: Red
84	*renderTable.variable.fontName: variable
85	*renderTable.variable.fontType: FONT_IS_FONT
86	*renderTable.variable.underlineType: DOUBLE_LINE
87
88    And then specify an XmString like this:
89
90	*label.labelString: \
91		default text\n\
92		@b[green]green, underlined text@e[green]
93
94    See your Motif 2.0 documentation for more information on the
95    new XmString features and on the "renderTable" syntax.
96
97
98NEW LAYOUT SPACING TYPES:
99-------------------------
100
101Spurred by the suggestion of F. Sullivan Segal, I defined three new
102spacing types for the LayoutBox XmtNspaceType resource.  The three types
103are "tabbed" spacing types.  For each of them, if there are n items in a
104row or column, then the row or column is divided into n "tab stops", and
105the items are positioned flush left with, flush right with, or centered
106between the "tab stops".  In C code, these spacing types are:
107XmtLayoutSpaceLTabbed, XmtLayoutSpaceCTabbed, and XmtLayoutSpaceRTabbed.
108In the XmtNlayout grammar of the Layout widget, you use the keywords
109LTabbed, CTabbed, and RTabbed to use them.
110
111These new "tabbed" spacing types are similar to XmtLayoutSpaceInterval,
112but are generally more useful.  If you have a number of rows one above
113the other in a layout and each row has the same number of items, then
114you can use these tabbed space types to align items vertically, as if
115they were in a table or spreadsheet.  Similarly for adjacent columns
116with the same number of items.  Note that these new space types don't
117guarantee that items in a row or column won't overlap.
118
119See section 19.2.2 in Motif Tools for a discussion of space types and of
120the five types other than these three new ones.  See examples/19/spacing
121for an example of using these types.  Run `mockup' on that example to
122see the effect of each of the eight spacing types.
123
124
125OTHER IMPORTANT CHANGES:
126------------------------
127
128The Makefile.simple makefiles that are referred to in the compilation
129instructions are now included in the release.
130
131Various fixes should make Xmt compile more cleanly on Linux and a number
132of other platforms, and also with C++ compilers.
133
134Xmt no longer uses bcopy(), bcmp() or bzero() internally.  The use of
135these functions caused bugs on Solaris systems with a buggy libbsd.a
136library.  Because these functions are no longer used internally, Xmt.h
137no longer includes <X11/Xfuncs.h> to portably declare (or #define) the
138functions.  Thus, if your program used any of these functions, and was
139relying on Xmt.h to declare them, you may find that you have to declare
140them yourself now, or (better) switch to their portable equivalents,
141memmove(), memcmp() and memset().  Every OS should support memcpy(),
142memcmp() and memset() by now.  Some (such as SunOS 4.1.3_u1) still do
143not support memmove(), however.  If you have one of these systems, then
144be sure to uncomment the -DNO_MEMMOVE flag in Xmt.tmpl before compiling.
145
146The Layout widget has had a number of bug fixes.  The most important is
147that setting the XmtNlayoutIn, XmtNlayoutPosition, XmtNlayoutAfter and
148XmtNlayoutBefore resources with XtSetValues() now works correctly.
149Also, unmanaging a row or column in a Layout widget will now make the
150contents of the row or column temporarily disappear as well.
151
152The Layout widget also handles overhanging captions differently now.  An
153"overhang" is when a top or bottom caption is wider than the widget, or
154when a left or right caption is taller than the widget.  In previous
155versions, Filled justification (the default) didn't work right with
156overhanging captions.  They also looked ugly.  In this version,
157overhangs are simply eliminated--where there is an overhang, the widget
158is made taller or wider as necessary to get rid of it.  This is a
159user-visible change to an undocumented Layout behavior, but overhangs
160are quite rare, and it shouldn't affect many programs.
161
162Message dialog functions that take variable-length argument lists now
163handle those argument lists correctly.
164
165There is new function XmtDisplayMessageAndWaitVaList(), which combines
166the features of XmtDisplayMessageAndWait() with XmtDisplayMessageVaList().
167
168The XmtMsgLine widget now handles XmtMsgLineOnAction correctly.
169
170XmtMenuInactivateProcedure() no longer crashes if called for a callback
171procedure that has not yet been invoked.
172
173The ad2c script has been slightly changed to comment out xmtRequires
174resources.  If you're running ad2c on one file, you're probably going
175to run it on the files it includes, so this prevents Xmt from going
176searching for a resource file that has been hardcoded into the program.
177
178A number of known but unresolved bugs are listed in the KNOWNBUGS file,
179some of them with workarounds.  If you encounter bugs, please read this
180file.
181
182