# $Id: TODO,v 1.5 1995/05/18 15:49:35 zeller Exp $ -*- Text -*-
# The DDD projects.

This is a list of commonly wished-for DDD features, which should be
realized in some future DDD release.  If you want to realize one or
more of these projects, please ask us (ddd@ips.cs.tu-bs.de) whether
there are already people working on that project.  Similar, if you
have a project idea, be sure to send it to us such that we may realize
it (or include it in this list :-)

Projects marked with an `*' represent work in progress.
Volunteers for these and other projects are welcome!

001. Have DDD ported to a free widget set -- Athena or lwlib, for
     example.  DDD could then be included in the GNU distribution.

002. Have breakpoint menus like

       (gdb) b Foo::bar
       [0] cancel
       [1] all
       [2] Foo:bar(int)
       [2] Foo:bar(char)
       >

     realized in a selection dialog.

003. Support full annotation mode (`gdb --annotate=2').  This would
     make prompt recognition easier and allow full trace of the current
     GDB status.  Disadvantage: won't work with earlier GDBs and requires
     a major redesign.

004. Have interactive help -- a wrapper to the GDB `help' command.

005. Have a menu of frequently used GDB commands (classed by help classes?)

006. With GDB 4.14 and later, define `graph display' command such that
     a special code is issued which causes DDD to show the display.
     This makes it possible to use `graph display' in own definitions.

007. [done]

008. Have buttons arranged such that they do not disappear when the window
     gets smaller.

009. Recognize shared data structures (that is, two displays
     referencing the same object).  This could be achieved by
     comparing display addresses.

010. [done]

011. Have local source files without path indication located via the
     GDB directories setting.  Maybe through the `info source'
     command?

012. [done]

013. [done]

014. [done]

015. [done]

016. [done]

017. Have the graph editor scroll automatically when the pointer drags
     something out of the visible part of the window.

018. [done]

019. [done]

020. [done]

021. In the manual index, use special fonts for bold keywords.
     [Requires Motif 2.0 and CMText.]

022. [done]

023. [done]

024. Have Fortran support. [Definitely a volunteer job.]

025. Have auto-unfolding for recursive data structures.  Dereferencing
     a pointer P * would automatically select all P * members in the
     referenced structure.

026. Have optional abstraction levels, hiding implementation details.
     Every data type would be assigned an individual VSL function
     determining its representation.

027. [done]

028. Assembly and register windows.  [Nice job for a volunteer.]

029. [done]

030. [done]

031. Have a three-dimensional data display (using red/green glasses) :-)

032. [done]

033. Call for bug report if `make' fails.  But how?

034. Call for bug report if a fatal X error occurs.

035. [done]

036. [done]

037. Group dereference.  If multiple pointers are selected,
     dereference them all.

038. [done]

039. [done]

040. [done]

041. [done]

042. Suggestions from jcrupi@mystech.com (John Crupi):
     1. Is there a way to edit the source in the source window ?
     2. Can I dereference a multi-length array graphically via the mouse ?
     3. Does ddd sit on top of gdb, or is it integrated with gdb source ?
     4. If it sits on top, how can gdb upgrades be incorporated ?
     5. Can I change the 'break point' symbol ?
     6. When I hit a break point, can the break line
        be brought to the center of the source window ?

043. (Insert your project idea here)
