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

