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