Fri May  3 13:54:44 EDT 2002

We will be adding to this as necessary.

Please do not hesitate to alert us on the Open Motif developers list.

To Do for future releases of Open Motif:

The Motif v1.2 widgets that were formerly part of EPak, and now
contributed by ICS to eMotif for all to use freely, have some
further enhancements that will help make them better integrated
into the Motif v2.x way of doing things:

- The ComboBox2 and Paned widgets are redundant. The Font selector
will be worked on so we can drop them.

- Sridhar has already completed trait usage and resolved the thread
safety issues.  We will be merging diffs of his code into CVS.  All
of the following widgets need to have it verified as working.


Typical things to watch for in most of the following widgets:

- uses XmeToVerticalPixels/XmeToHorizontalPixels to perform resolution
independent conversion of synthetic resources

- use Xme sub-system

- eliminate use of XmResolveAllPartOffsets

- eliminate use of XtAppWarningMsg where the standard interface is
XmeWarning.

- eliminate use of XmRepType handlers in the ClassInitialize method

- uses XmeToVerticalPixels/XmeToHorizontalPixels to perform resolution
independent conversion of synthetic resources

- support Motif 2.1 render table and layout direction functionality.


Buttonbox
=========
COMMITTED - enable fast sub classing.

COMMITTED - need to support the Trait XmQTtakesDefault so that
default button highlight emphasis is supported in the standard manner.

- support Gadgets.
    This will require handling events for the Gadget children, and then
    passing them on to them.

- eliminate use of XmRepType handlers in the Class Initialize method



Color Selector
=============
DONE - Enable fast subleasing

DONE - use XmStringUnparse instead of deprecated XmStringGetLtoR
utilities to fetch the selected item from the Color name space List.

DONE- use XmStringConcatAndFree instead of XmStringConcat/ XmStringFree
combinations.

- only one cell is deallocated in the Destroy method of the widget, but more
could be allocated.

- enable color, saturation, brightness controls.

- enable a graphical representation of cubic color space

DENIED - use the Motif 2.1 Trait mechanisms, perhaps using XmQTaccessColors
[NOTE:
Only reference to using XmAccessColorsTrait is from IconG.c, line 705
FetchPixmap(...)
{
    ...
   XmAccessColorDataRec acc_color_rec;
   XmAccessColorsTrait access_colors_trait 

   /* always called when the cache is valid and the colors
      can be returned */

   access_colors_trait = (XmAccessColorsTrait) 
       XmeTraitGet((XtPointer)XtClass(widget), XmQTaccessColors) ;

   access_colors_trait->getColors(widget, &acc_color_rec);
   ...
}

in file AccColorT.h at line 55 we have this structure:
typedef struct _XmAccessColorDataRec {
      Mask  valueMask ;
    Pixel foreground  ;
    Pixel background  ;
    Pixel highlight_color  ;
    Pixel top_shadow_color  ;
    Pixel bottom_shadow_color ;
    Pixel select_color ; 
} XmAccessColorDataRec, *XmAccessColorData;

This trait is for setting standard widget attributes, not as a general purpose
color fetching mechanism.
]


Data Field
=========
DONE - enable fast subleasing.

REDONE - should support XmQTaccessTextual trait

- consider using Motif 2.1 utilities instead of:
    a) XmString and XmFontList handling throughout
    b) drop site handling which does not use the XmTransfer UTM


- manual pages missing?

- in the Xt class record it inherits from the Primitive class, but declares
its size as the sum of Text Field and detailed records.

- Messages which should be defined in the central XmString repository are
defined locally to the sources.

- callback type definitions should be placed into the Xm.h public header.


Icon Box
=======
DONE - enable fast subleasing.

- Consider using XmQTtransfer and XmQTtraversalControl Traits.

- support UTM

- XmIconBoxDropData structure type in the header file is unused


Icon Button
==========
DONE - enable fast subleasing.

- uses deprecated methods to deduce the default font.

- support XmQTactivatable and XmQTcareParentVisual traits.


Table
=====
DONE - enable fast subleasing.

- support both XmQTtraversalControl, XmQTtransfer and XmQTaccessTextual Traits

- use XmClipWindow and XmQTclipWindow Trait

- use Xbae/Matrix as a reference implementation? check license first.

- needs documentation

- Callback and enumerated types should be defined in the XmP.h header.

- representation types should be installed through the central XmRepType
manager, not the ClassInitialize method


Tree/Hierarchy
==============
DONE - enable fast subleasing.

- consider using XmQTtraversalControl trait

- use UTM, not Drag n Drop

- support gadgets



Tool Tip
=======
- be careful of Vendor shell extensions

- consider using with Managers

- allow per target rendition specification

- allow preterite enable/disable controls

- allow specific default rendition characteristics, instead of inheriting
default Vendor Shell font

- widget instance structures referenced without locking application context

- no public header file

- take into account the edges of the screen

- feature request: optionally allow display of text on status line



Paned
=====
Deprecate it.  Only needed for widgets like the Font Selector



Tab Box & Tab Canvas
==================
DONE - enable fast subleasing on taboo

- use Xme drawing utilities.

- uses deprecated methods to deduce the default font.


Tab Stack
========
DONE - enable fast subleasing.

- support the XmQTnavigator trait to allow alternative Spin Box page control

- support the XmQTscrollFrame, XmQTtraversalControl traits


Column
======
DONE - enable fast subleasing.

- make the label widget it dynamically constructs publicly available.

- do not use the deprecated XmFontList, consider using the Motif 2.1
Render Table type.



ComboBox2
=========
Deprecate it.  Only needed for widgets like the Font Selector



Font Selector
=============
DONE - enable fast subleasing.

- _XmGetMBStringFromXmString() replicates standard Motif functions.

- XmFontList is deprecated in Motif 2.1.

- Render tables?

- consider Xme standard interface?

- uses XtAppWarningMsg instead of XmeWarning

- eliminate use of XmResolveAllPartOffsets



I18List
=======
DONE - enable fast subleasing.

- support multiple and extended selection.

- support the XmQTtransfer traits on I18List.
This widget has no infrastructure for Drag & Drop upon which to build this
capability.

- support UTM
same as above.



Ext18List
=========
DONE - enable fast subleasing.

- support the XmQTscrollFrame (See page 462 of Widget Writer's Guide)

- internationalized environments require public interface to be XmString, but
currently is String

- default labeling of parts is hard coded English
