source: trunk/third/wcl/README23 @ 8837

Revision 8837, 7.6 KB checked in by ghudson, 28 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r8836, which included commits to RCS files with non-trunk default branches.
Line 
1SccsID: @(#) README 1.12 92/11/02 08:43:42
2
3Widget Creation Library Version 2.03 Distribution
4------------------------------------------------
5
6The distribution contains files which make up the Widget Creation
7Library (Wcl or libWc.a), and resource interpreters and utility
8libraries (which include Table widgets) for each of the following
9widget sets: Athena, Cornell, Motif, and OpenLook.
10
11Wcl is completely widget set independent.  It provides mechanisms to
12allow an entire user interface to be specified in resource files.
13Basically, this amounts to providing new resources for specifying the
14types of the widgets and the widget heirarchy.  In addition, Wcl
15provides several callbacks and action functions which many programs
16need.
17
18See README20 for general information about Wcl version 2, and README22
19for additional features introduced in Wcl version 2.2 and version 2.1.
20
21New Features of Wcl 2.03
22------------------------
23
24Resource File Loading   - Resource files named on the command line and
25                          with wclResFiles resources are now loaded using
26                          a more useful file search algorithm.  See below.
27Late Binding            - All callbacks bound with Wcl are now late-bound.
28                          This means the application can change the string
29                          to callback mapping at any time, and from then
30                          on, the new callback procedure will be called.
31                          This also means that callbacks do NOT need to
32                          be registered before widgets which will invoke the
33                          callback are created.  The callback should still
34                          be registered before being invoked, of course.
35WcAddLateBinderHook,
36WcRemoveLateBinderHook  - **Experimental External Interfaces to WcLateBinder**
37                          is now provided, intended for use by people building
38                          interpretive environments which use Wcl for the UI,
39                          and some interpretor (like perl) for the callbacks.
40                          See WcCreateP.h and WcLateBind.c for information.
41WcInitialSizeIsMinimum  - a creation time callback, very useful for shells.
42WcFullNameToWidget      - Enhanced to find direct descendents of the reference
43                          widget, and optionally uses slower but tighter name
44                          scoping algorithm of Xaw string-to-widget converter.
45                          New relative naming operator `/' which means "the
46                          nearest shell ancestor which is known to the window
47                          manager."  The operator `~' remains "the nearest
48                          shell ancestor."  Therefore, it is now easy to find
49                          the top level shell from nested menus by using `/'.
50WcCvtStringToWidgetList - A useful converter.
51
52Bug Fixes
53---------
54MapAg.c                 - Free method now set properly for dynamically created
55                          mapping agents.
56MapAg.h, WcCreate*h     - now wrapped by #ifdef __cplusplus { }
57XtVa...                 - no longer used, so everything ports to X11R3
58#ifdef sun              - why don't they just use X from mit!?!
59WcHomeDirectory         - Now can handle case where user has no home dir.
60WcGetResourceType       - no longer dumps core if no parent widget.
61-rf on command line     - There is now no problem with loading additional
62                          resource files when -rf was used to load the
63                          initial file.
64Wcl Lib Resources       - These resources are now ALWAYS fetched after all
65                          resource files have been loaded.
66
67Seemingly Unfixable Bug
68-----------------------
69
70realizeCallback, destroyCallback, popupCallback, and popdownCallback
71MUST NOT be specified using resource values for shell widgets derived
72from Motif Vendor Shell in most releases of Motif.  Sorry, there is no
73way I can see for Wcl to work around this bug in the list of resources
74fetched by the Motif Vendor Shell Extension VendorExtInitialize()
75procedure.
76
77If you want to specify these resources, specifiy a wcCallback resource
78and add the callbacks using WcAddCallbacks().
79
80Explanation for Xt and Motif gurus with source code: Xt has fetched
81these resources for the shell, and compiled the XtCallbackRec array
82generated by WcCvtStringToCallback into the
83InternalCallbackRec/XtCallbackRec "thang."  This happens in
84Xt'Create.c'_XtCreate in R5.  _XtCreate then allows the widget to
85initialize itself, calling CallInitialize().  This eventually invokes
86the Motif Vendor Shell initialization, which invokes the Motif Vendor
87Shell Extension initialization.  Here, Motif incorrectly fetches again
88the above callback resources, applying the resources straight into the
89"new" widget with its already compiled callback lists.  This causes the
90compiled callback list storage to be overwritten with the original,
91uncompiled form previously generated by WcCvtStringToCallback.  The
92next XtAddCallback or XtCallAllCallbacks or XtSetValues on these
93resources will (or should!) fail due to mis-interpreting the callback
94list (the first element will again be an XtCallbackRec instead of an
95InternalCallbackRec).  The fix is messy:  somehow treat the callback
96resources as uniquely as Xt does everywhere else: fetch into a
97different (local) Widget instead of new, and then traverse the list of
98callbacks, invoking XtAddCallback( new, <callbackName>, cb->callback,
99cb->closure ), and then free up that locally allocated dummy widget.
100Yuck!
101
102New Resources Used by Wcl 2.03
103------------------------------
104
105Wcl fetches three different groups of resources from the Xrm resource
106database:  Library Wide resources, Pre-Creation widget instance
107resources, and Post-Creation widget instance resources.  Each of these
108groups are discussed below.
109
110
111Library Wide Resources
112----------------------
113
114These resources are fetched once when the Wcl library is initialized
115(before any widgets are created by Wcl).  They provide attributes for
116Wcl, and control some of the behavior of Wcl.
117
118   wclInitResFile:              This is a resource which is ONLY set
119                                by the command line switch "-rf".  You
120                                should never need to use this resource
121                                in any direct fashion.  It simply allows
122                                the "-rf" option to never collide with
123                                wcResFiles specifications in resource files.
124
125   wclTraceResFiles:            Traces to stderr the files loaded by Wcl.
126                                This does NOT trace files loaded by Xt or
127                                Xrm during XtInitialize.  By default, this
128                                is False.  Can be set True by the new command
129                                line flag `-trrf'
130                               
131
132   wclSlowTightNames:           Boolean, "True" or "False".
133                                Default is "False". 
134
135
136Table Widget
137------------
138
139Major changes to the geometry management algorithm have been made to
140eliminate a "shudder" which one would see when children requested
141resizing, especially with nested XmpTables and XmScrolledWindows.
142Resizing is faster as well as being better.
143
144Build Instructions
145------------------
146
147See README_BUILD for detailed instructions on how to build the
148distribution.
149
150If you are using imake, you MUST look at Wc.tmpl and make the necessary
151edits.  The distribution provides several versions of this file,
152probably NONE are exactly what you need:
153
154 Wc.tmpl        My machine, an IPX with X11R5 patch level 12, Motif 1.1.0
155                with HUNDREDS of fixes, OpenLook widgets, and debugged Xt
156                library with memory tracing enabled and file tracing hacks.
157
158 Wc.tmpl.irix   Should work as-is on Irix (Silicon Graphics) machines with
159                SGI X (R4) and Motif installations.
160
161
162If you are using make, you MUST look at WcMake1.tmpl and WcMake2.tmpl.
163Again, a couple of different versions of these files are provided, but
164you almost certainly must do something to make it build on your
165platform.
166
167 WcMake1.tmpl   These work on my machine
168 WcMake2.tmpl
169
170 WcMake1.svr4   These work on SVR4 machines with X11R4 and Motif 1.1.
171 WcMake2.svr4
172
173 WcMake1.sco    These work on SCO Open Desk Top machines.  Whew!  Also,
174 WcMake2.sco    installable man pages (*S.z, *C.z) are now provided.
175
176------------------------------------------------------------
177David E. Smyth                David.Smyth@sniap.mchp.sni.de
178Object/X Researcher           david@ap542.uucp
179Esprit Research               david%ap542@ztivax.siemens.com
180Funding provided by: Siemens Nixdorf Informationssysteme AG
181                     AP 154, Carl-Wery-Str 22, Munich 83 Germany
182
Note: See TracBrowser for help on using the repository browser.