------------------------ HP X Widgets ---------------------------- The files on this tape contain source code and documentation source for Hewlett-Packard's X Widget set. Hewlett-Packard has contributed this code to the Massachussetts Institute of Technology for inclusion in the MIT distribution of public X Window software. It contains the appropriate public-use copyrights. The goal of this contribution is to help stimulate the development of commercial software products for the Unix (TM AT&T) workstation market by putting a flexible and powerful interface productivity library into public distribution. Hewlett-Packard has worked with Digital Equipment Corporation and MIT toward developing a standard set of intrinsics, known as the X Toolkit or the Xt Intrinsics. Our aim is that the X Widgets and the Xt Intrinsics will serve as the basis for a product-quality, standard user interface productivity library. The present version has been tested primarily on Hewlett-Packard 9000 workstations. The code was also compiled and tested on a DEC MicroVax II/GPX Station and a SUN 3/260 using X11R2 servers, X lib and Xt Intrinsics. -------------------------- Contents ------------------------------ The following are components of this release: ./MButton MultiButton example directory ./Makefile makes all software in subdirectories ./README this file ./Xw X widgets library source directory ./Xt X toolkit library source directory (includes bug fixes required by Xw) ./doc X widgets documentation (see ./doc/README for description of contents and printing procedures) ./test X widgets test programs Use "make all" in this directory to build the libraries and compile the test programs. A total of about 10 megabytes of disk space are required for sources and executables. --------------------------- Status ------------------------------- HP X Widgets 1. Chapter 7 of "Programming with the HP X Widgets" discusses how to write a widget. The code listings that appear in this chapter, along with a simple demo program are located in the MButton directory. 2. Applications using the titlebar widget should not issue a SetValues to the static text widget created by the titlebar. If this is necessary, the application should create its own static text widget as a child of the titlebar and set the constraints as is appropriate. 3. The panel widget can occasionally clip its workspace if the application destroys and then recreates its pulldown menu. Resizing the application window through the window manager causes the widgets to redisplay properly. 4. There are several problems in the text edit man page. On page 4, the constants XttextRead, XttextEdit and XttextAppend should be XwtextRead, XwtextEdit and XwtextAppend. On the same page, the default value for the DiskSrc XtNeditType resource should be XwtextRead, not XwtextEdit. 5. There is an additional resource in the scrolled window widget: XtNborderPad. This is an integer which defines the number of pixels between the scrollbars and the viewable area of the scrolled window. The default padding is 4 pixels. Xt Intrinsics 1. A function has been added which will free the space allocated and returned by XtParseTranslations. It is defined as follows. XtDestroyStateTable (class, stateTable) WidgetClass class; XtTranslations stateTable; class is the widget class of the widget for which the parse translations is being done. The XtClass macro can be used to get this value. stateTable is the pointer to the translations allocated by XtParseTranslations which is to be deallocated. This function will be used primarily by widget writers and not application developers. 2. When traversal is enabled and a popup shell with either an exclusive or non-exclusive keyboard grab is displayed, the currently traversed to widget will not have its traversal highlight removed. 3. Applications should not destroy a widget and then its children. If the parent has any popup children, a segmentation fault will occur. Also, since XtDestroy automatically destroys all children when a parent is destroyed, there is no need to explicitly destroy the children. 4. Applications should not set one dimension of a shell to 0. If this is done, an X protocol error will occur. 5. If a shell is to match its child size automatically, the child needs be be created before the shell has been realized. 6. XtTranslateCoords returns incorrect positioning information when running a reparenting window manager. The Xlib function XTranslateCoordinates should be used to provide the proper values. -------------------------------------------------------------------- We would appreciate feedback concerning problems with the documentation or bugs within the X Widgets code. Please send all communications to the following mail address: widgets%hpcvlx@hplabs.hp.com We will respond to feedback on a best efforts basis.