


                                  TODO List
                                  =========

                $Id: TODO,v 1.13 2003/04/29 12:07:33 fox Exp $

                                ---* JVZ *---



FOX 1.2 To Do List
==================

Performance Issues and Bugs.

  o Tooltip, StatusLine should be updated by different means.
    Currently, mouse motion, enter/leave events kick off GUI update, which
    soaks CPU just by waving mouse over widgets.

  o Wrong cast in FXDCWindow::end()?

  o FXDirList and FXFileList updating?

  o FXShell onConfigure problem under Windows; its best that only
    toplevel widgets get these messages (cut bandwidth under X11).
    Also, was reentering event loop when dispatching some events.
    Perhaps we should keep FXEvent on the stack?
    See message from Ivan Markov.
    StructureNotifyMask not only affects resize, but also circulate,
    unmap, map, destroy, gravity, reparent events.

  o FXFileStream v.s. FXStream; need to redefine << and so on in FXFileStream.


List Widgets.

  o Implement banded drawing.

  o Using virtual getText() and getIcon() in FXList (and co), is a bad
    idea; too many string copies all over the place.

  o Background color set by FXList, but drawing done by FXListItem.


Ruler Widget.

  o Still unfinished.  Wrap this up.



Table Widget.

  o Need API's for making spanning cells.

  o Editable cells to be added.

  o Rectangular selections, selecting of empty cells.


Popup Menu Handling.

  o Need to generate SEL_FOCUSIN, SEL_FOCUSOUT in some way so controls
    inside popup menu work properly.

  o But real focus never should be assigned to a popup; the underlying
    toplevel window keeps the focus. Popups are not visible by window
    manager.

  o Key, mouse events should be dispatched as follows:

      1 The release should go to the same window as the press.

      2 Unless the window is gone at the time of the release; in that
        case the release goes nowhere.

      3 At no time should we dispatch a release not preceeded by a press.

  o Look at code to make menu go away.  Any kind of button or keyboard
    event goes to a popup when its up; should not go anywhere else not
    even non-client area.


Focus and Keyboard Handling.

  o Should we add a point-to-focus capability to FXWindow, i.e. a flag
    one can set to have focus move to window when mouse goes over it.

  o MDI Child does not get focus if content window doesn't react to
    SEL_FOCUSSELF.

  o Currently, accelerators take effect AFTER dispatch to focus widget;
    maybe this should be reversed?  Also, currently you have to be
    very careful about NOT handling certain key/mod combinations; this
    makes keyboard handling a bit fragile.


New Classes.

  o Add TreeList with header control widget.  It was forked off an
    older version of FXTreeList, need to bring it to current level.

  o Update FXStream classes to new buffered stream.  It will be lots
    faster.  New FXFileStream should be layered over read() and write()
    and not fread() and fwrite() as this would preclude using it for
    sockets and pipes easily.

  o Need classes for thread, mutex, and so on.

  o Start on plot widgets.  Need to write inventory of desired features
    down (have this on paper right now).

  o Start on character set codecs to/from UNICODE.  Need to write a
    tool to parse official unicode tables and generate compact tables
    for the codecs.

  o Then add some API's to FXString and FXWString to transform between
    encodings.

  o FXBzStream and FXGzStream need to be updated and become more complete.


Image Improvements.

  o Add new API's for various effects; in particular, would like to
    have blending between images.

  o Start upgrading image file readers to populate FXImage with an
    alpha channel.

  o Upgrade GIF output routine with LZW compression; patent has expired!


Text Widget.

  o Rectangular selections.

  o Incremental search mode.

  o Search next, search previous.

  o Non-modal search dialog?


New Facilities.

  o Need to think about how to use Window Key for event logging purposes.

  o Add command line arguments for event logging and playback.

  o Implement event logging and playback in FXApp.  Based on raw
    events or tranlated ones?

  o Reparenting of (foreign) windows into the tree.



Organization.

  o Create a contributed software directory on FTP.

  o Add new web pages for contributed software.  Announce this on
    mailing list.

  o Look into building Mandrake RPM's for FOX.  Let others know where
    to contribute packages for other distributions.

  o Need to split FOX into core and opengl part; split off Adie, PathFinder,
    and possibly Calculator.  Add extra widgets directory for non-core
    widgets.  Special directory for plot widgets.


                                ---* JVZ *---

