wxMotif TODO
------------
-Updated: 21/9/98
+Updated: 20/10/98
-------------------------------o-------------------------
-- wxDCs
+General comment: see the following site for useful Motif widgets.
+ftp://ftp.x.org/contrib/widgets/motif
-- wxBitmap, wxIcon, wxCursor, wxPalette. What about XPMs, can we assume
- libxpm exists and use that? What about PNGs? Can we use gdk
- as per wxGTK? Probably not.
+Also, grep for TODO comments in source.
-- wxRegion
+High Priority
+-------------
-- Bitmap versions of widgets (wxBitmapButton etc.)
+- Work out why XFreeFont in font.cpp produces a segv. This is
+ currently commented out, which presumably causes a memory leak.
-- wxCheckBoxList
+- 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).
-- Remaining common widgets (wxListBox, wxRadioBox, wxRadioButton, wxChoice,
- wxGauge, wxComboBox etc.). Use combobox.c code as bundled in wxWin 1.68.
+- Colour setting in widgets (almost done).
-- wxTextCtrl text file loading and saving.
+- 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.
-- Scrolling in wxWindow.
+- 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.
-- MDI classes: use existing Motif widgets for this.
+- Tidy dialogs such as the colour and font selectors.
-- Miscellaneous classes e.g. wxJoystick (identical to GTK's one for
- Linux)
+- Use generic wxTreeCtrl, wxListCtrl: debug and enhance these.
-- Dialogs e.g. wxFileSelector. Use a native Motif wxMessageBox.
- Some others need tidying, such as the colour and font selectors.
+- Find out why modal dialogs give a grab warning.
-- Write generic wxDirDialog (directory selector).
+- wxSystemSettings. Eventually, should have control panel-like utility
+ to change colours/fonts but meanwhile should maybe read them
+ from a file.
-- Use generic wxTreeCtrl, wxListCtrl: enhance these.
+- wxThread (hopefully, similar to wxGTK)
-- Write a better generic wxToolBar class than wxToolBarSimple.
+- Miscellaneous events.
-- Optimize colour management so we don't get clashes when e.g.
- Netscape is running.
+- Write makefiles for all samples and utilities.
-- Print/preview framework in print.cpp (see wxGTK's).
+- Create some samples for testing.
-- Colour and font setting in widgets.
+Low Priority
+------------
-- wxSystemSettings
+- 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.
-- wxTimer
+- 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.
-- wxThread (hopefully, similar to wxGTK)
+- Print/preview framework in print.cpp (see wxGTK).
-- Copy and paste, drag and drop. Use a standard X drag
- and drop standard - see http://www.cco.caltech.edu/~jafl/xdnd/
+- 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).
-- 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.
+- 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
-- Write makefiles for all samples.
+- 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
-- Create some samples for testing.
+- 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 Dialog Editor working under Motif.