12/19/89 Changes to the Athena Widget Set. I have put a lot of work into the Athena widgets since R3, this includes reworking many of the existing widgets, as well as adding some new widgets. I have tried to remain 100% compatible for appplication programmers, but gave up on compatability for widget programmers who subclassed off of the Athena widgets. This file contains a detailed list of all changes made to the widget set since R3. I have sperated the comments out by widget for readability. The R3 widgets are listed first followed by the widgets that are new for R4. The following changes have been made to this directory since R3: Compatability: o To acheive full R3 compatabilty the Athena widget set and the application that uses the widget set must be built with the flag XAW_BC defined. This flag builds a few compatibility features into the widget set, and defines a number of compatibilty macros for application use. When writing new applications, be sure to turn this flag OFF to assure that you are not depending on any compatability features that may disappear in the next release of the Athena widget set. General Comments: o Include files now install in /usr/include/X11/Xaw/ to help keep them seperate from the "offical" X Consortium standards. o All convenience functions now are named Xaw* rather than Xt* for example XtTextReplace becomes XawTextReplace. o All enumerated types are now prefixed with Xaw instead of Xt. AsciiStringWidget: AsciiDiskWidget: o These widgets have been replaced with the AsciiText widget. The AsciiText widget is fully compatible with both of these widget when XAW_BC is turned on. See below for details of the AsciiText widget. Box: o Added an orientation resource so we can have hboxes as well as vboxes. o Don't use win_gravity on children so that resizes with constant width don't lose. o We will do a re-layout, even if the parent gives too little space when requesting a geometry change. Form: o replaced a move an resize with configure to be more efficient. o Allow query-only calls to the geometry manager. o Added layout class method & resize_in_layout instance state to provide more control to subclasses. o Remove undocumented restriction that SetValues on a constraint had to refer to a widget earlier in the list. Viewport: o Scrolling a non-existant child no longer causes a de-reference. o Forcebars now works as advertised. o Scrollbars now are created correctly the first time they are needed. o Better interaction when calling child's query geometry proceedure. Dialog: o Changing all resources via XtSetValues() now works correctly. o An icon may now be placed to the left of the Dialog's label. VPaned: o This widget has be remove from the widget set, and replaced with the "Paned" widget. Grip: o This widget is now a subclass if the Simple widget. The programming interface has not changed, however. Command: o Supports multi-line labels. o Shaped Command buttons are now supported, using the Shape Extension. A variety of different shapes are avaliable. Label: o Supports multi-line labels. List: o The "index" entry in the ListReturnStruct is now called "list_index" This is an INCOMPATIBLE change, but was necessary as the name "index" is used as a macro on some systems. Scrollbar: o The include files have been changed from Scroll[P].h to Scrollbar[P].h. This makes them consistent with the naming conventions specified by the Intrinsics. o The minium size of the Thumb can now be controlled by a the "MinThumb" resource. o The top resources has been renamed "topOfThumb" since in conflicted with the top resource in the name o This resources uses XtUnspecifiedPixmap as the default, this allows no pixmap to be specified, displaying a solid thumb. Simple: o This widget is now documented. Text: The Text widget got a major face lift, I have made a number of changes to the Text widget itself, as well as the Sources, Sinks and their interfaces. While the application programmer interface has been maintained. Anyone who has created their own Source or Sink, or who has subclassed the Text widget will have to modify their code. o Sources and Sinks are now Toolkit "Objects". o Searching is now avalible through the default key binding ^R and ^S. o Transpose Characters is now avaliable with the default action ^T. o ^U now multiplies the action that will follow by 4. ^U^U multiplies the action by 16. o ^G resets the multiple to 1. o -q now performs a fill-paragraph. o a no-op action has been added. o Horizontal scrolling is avaliable. o Scrollbars are able to be specified "WhenNeeded". This causes then to appear only when the text will not fit on the display. o The R3 "text options" have been broken into seperate resources. "text option" "new resource" ---------------------------------------- editable editMode resizeHeight resize resizeWidth resize scrollHorizontal scrollHorizontal scrollVertical scrollVertical workBreak wrap o Added end of line mark (rectangle in foreground color fills right margin). o Added line break in addition to work break. o Added an auto fill mode. o all margins may now be specified as resources, not just the left one. AsciiText: This widget is a combination of the AsciiSink, AsciiSource, and Text Widgets, see those widgets for details. AsciiSink: o Now supports full IsoLatin1 fonts. o This is now a toolkit "Object" and a subclass of the TextSink Object. o reverse video is handled correctly. o echo resource added that will cause the text widget not to echo characters to the screen. o All routines used by the text widget form manipulting the sink are now exported, allowing applications more flexabilty in controlling text sources. AsciiSource: o Source can be dynamically changed from a file to a string via resources. o Disk sources are now editable. o Default behavior does not use string in place, but manages the memory for you. o XtSetValues() will work on the "string" resource now. o several new resources have been added, see the "X Toolkit Athena Widgets - C Language Interface" for details. o dataCompression o pieceSize o type o useStringInPlace o All routines used by the text widget form manipulting the source are now exported, allowing applications more flexabilty in controlling text sources. ------------------------------ TextSink: o This is now a Toolkit "Object". o All new Text Sinks should be subclasses of this widget. TextSource: o This is now a Toolkit "Object". o All new Text Sources should be subclasses of this widget. MenuButton: o New widget for R4. Paned: o New widget for R4. o Fully compatible with R3 VPaned widget. o Supports both horizontal and vertical paning. o New, more robust layout semantics. SimpleMenu: o This widget is new for R4. Sme: SmeBSB: SmeLine: o These are new Toolkit "Objects" are to be used by the SimpleMenu widget as individual menu entries. StripChart: o This widget is new for R4, and is a stripped down version of the R3 Load widget, with the parts specific to getting the load average removed. Toggle: o This widget is new for R4.