wxMotif TODO
------------
-Updated: 20/10/98
+Updated: 11/02/99
-------------------------------o-------------------------
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
+- Have a central/per app file for colour settings, with a wxWin
+ app to allow changing settings interactively.
-- 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.
+- Implementation of default event processing (i.e. passing on an intercepted
+ event such as OnChar to the system). Currently, such events are processed
+ anyway, so for example intercepting left-click in a widget doesn't disable
+ the default behaviour. See TODOs in window.cpp.
-- 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)
+- wxToolTip
- Miscellaneous events.
-- Write makefiles for all samples and utilities.
-
-- Create some samples for testing.
+- Allow wxFrame and other widgets to have mouse event handlers.
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).
+- Painting a retained window could be optimized further (see
+ wxWindow::DoPaint).
-- 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.
+- Visuals: how to select an appropriate one? See Thomas Runge's
+ visual patch for 1.68 -- should be straightforward to port to 2.0.
-- Get Dialog Editor working under Motif.
+- Work out why XFreeFont in font.cpp produces a segv. This is
+ currently commented out, which presumably causes a memory leak.
- 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
+ http://www.xs4all.nl/~ripley/XmHTML/.
+
+ We need to:
+ - make a minimal distribution under wx/src/xmhtml, just enough
+ to compile the source.
+ - add XMHTML_C_SRC to src/motif/makefile.unx with the source files
+ listed.
+ - make sure we can compile the sources, passing the correct
+ flags for zlib/png compilation.
+ - make a wxHTMLWindow class from e.g. examples/example_2.c. Should
+ probably make the cache and history facilities part of the class.
+ - add the driver code to src/motif/helphtml.cpp (a frame, toolbar,
+ history list).
+
+- 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
- 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.
-
+- Work out why wxTextCtrl doesn't work as a stream buffer under
+ gcc