wxMotif TODO
------------

Updated: 20/10/98

         -------------------------------o-------------------------

General comment: see the following site for useful Motif widgets.
ftp://ftp.x.org/contrib/widgets/motif

Also, grep for TODO comments in source.

High Priority
-------------

- Work out why XFreeFont in font.cpp produces a segv. This is
  currently commented out, which presumably causes a memory leak.

- Also work out why wxWindow::SetFont causes the widget to be shrunk
  to fit its text, in dialogs. Uncomment the SetFont implementation and pop
  up a dialog, e.g. an About box. Widgets are arranged
  incorrectly. Seems to be OK for non-dialog panels, once the
  size has been restored after the font setting.
  In fact it seems OK for dialogs now!!! Weird.

- ChangeFont should have an extra arg, to allow for not resizing
  the window back to the original size after setting the font.
  Also don't call SetFont from constructor, assign the font and
  call ChangeFont so we can pass FALSE if the size has been passed
  as the default (which means: wxWin should choose an appropriate
  size, so Motif should expand/contract the widget as appropriate).

- Colour setting in widgets (almost done).

- Implementation of OnEraseBackground. How? Call OnEraseBackground
  just before OnPaint? Will duplicate Xlib's own erase of the background.
  However, this is usually OK, because the default wxWindow::OnEraseBackground
  can do nothing (SetBackgroundColour will make the background look OK).
  And if a custom OnEraseBackground uses the same colour as the window
  background, no flicker will be seen. If it does something else, such as
  painting a tiled bitmap, then a slight flicker might be seen unless
  X can be persuaded not to repaint the window background by default.

- wxSpinButton

- A generic version of wxNotebook that can be used in wxMotif and
  other toolkits that don't have a native control. Perhaps use wxTab as a
  starting point.

- Tidy dialogs such as the colour and font selectors.

- Use generic wxTreeCtrl, wxListCtrl: debug and enhance these.

- Find out why modal dialogs give a grab warning.

- wxSystemSettings. Eventually, should have control panel-like utility
  to change colours/fonts but meanwhile should maybe read them
  from a file.

- wxThread (hopefully, similar to wxGTK)

- Miscellaneous events.

- Write makefiles for all samples and utilities.

- Create some samples for testing.

Low Priority
------------

- Better makefile system that can put objects in different dirs.
  Use wxGTK config system? It's really complex to debug and
  doesn't offer a way of compiling apps outside the wxWin
  hierarchy.

- Extra wxBitmap formats: PNG, BMP. Could use old wxWin 1.68
  wxImage code (derived from XV) for BMP/GIF but it's very bloated. However,
  when implemented as extra bitmap handlers, the code won't be linked
  unless needed.

- Print/preview framework in print.cpp (see wxGTK).

- Enhance event handling such that you override e.g. left-click
  and unless you call the base OnMouseEvent, the click won't be
  sent to the button. Required for Dialog Editor.

- Get Dialog Editor working under Motif.

- New wxHelp version: try using the XmHTML widget at
  http://www.xs4all.nl/~ripley/XmHTML/

- Optimize screen refresh for non-native widgets, e.g. wxWindow
  created with Create(), using technique in flicker patch for 1.68
  (see JACS for latest patch).

- Copy and paste, drag and drop. Use a standard X drag
  and drop standard - see http://www.cco.caltech.edu/~jafl/xdnd/
  or use Motif drag and drop as described here:
  http://www.motifzone.com/tmd/articles/DnD/dnd.html

- Optimize colour management so we don't get clashes when e.g.
  Netscape is running. See:
  http://www.motifzone.com/tmd/articles/John_Cwikla/index.html

- wxRCConfig (a config class using X .rc files). Could simply
  implement it in terms of current wxGet/WriteResource functions.

- wxCheckBoxList

- wxBitmapCheckBox, wxBitmapRadioButton

- Reimplement combobox using Lesstif's widget (avoiding GPL'ed
  widget currently used).

- Write generic wxDirDialog (directory selector)

- Use native Motif dialogs for wxMessageBox

- Miscellaneous classes e.g. wxJoystick (identical to GTK's one for
  Linux)

- Blit scaling

- Could eventually alter the MDI widgets to be more Windows-like
  -- currently it's half-hearted.

- Accelerators

- Get ODBC classes and sample working.

