===========
TODO list
===========

BUGS
----

 **graph** 
   1. ZoomGraph when logscale is picked close to 1.
   2. 

FEATURES
--------

  **graph**, **barchar**, **contour**
    Add output operation for *ps*, *pdf*, and *svg*.

    ::

     .g output ps  -file fileName -data varName
     .g output pdf -file fileName -data varName
     .g output svg -file fileName -data varName

  **barchart**

    Bar segment 3D borders doesn't work under Windows because we
    use a region to tile the polygon (of the border) that overrides the
    clip region of the plot area.  Could just limit 3D to solid colors.

    Antialias the bar segments. Another reason to remove 3D borders.

    (Fixed by pushing/popping clip regions)

  **graph**, **contour**, **barchart**
    Label curves. Simplify curves to find longest segment.

    No PostScript generated for polygon tiling, transparent backgrounds.


x. (done) Date scanner. 
x. (done) Colorbar for contour graph.
x. (done) Table viewer.
4. Drawing routines (wide lines).
5. Noise filter for pictures.
7. Kiosk
10. arrowheads for line markers 
11. Vector plot 
    compute gradient from mesh.
    draw antialiases arrowheads.

12. graph/barchart/contour: output operation
    .g output ps  -file fileName -data varName
    .g output pdf -file fileName -data varName
    .g output svg -file fileName -data varName

How to pick locations for labels on lines.
To do.

bgexec (Windows)
  1. (BUG) Convert collected data to UTF before passing to the interpreter.

container (Unix)
  x. (done) Add timeout option to control how long to search for application 
            window.

debug  
  x. (done) Recent versions of Tcl swamp Tcl_CommandTrace.  
            Add line cutoff option (default is 6).

dnd (Unix)
  1. (DOC) Create manual page for "dnd" command. 
  2. (Feature) Add Motif drag-and-drop capabilities.  

eps
  1. (DOC) Update manual page for eps canvas item.  
  2. (FEATURE) Read Windows EPS files with embedded TIFF images.

graph
  x. (done) Fix zooming graph procedure to handle multiple axes.
  2. (BUG) Windows printing commands "print1" and "print2" need to use 
     postscript options like -maxpect, -pad, etc. to control graph
     size.
  3. (BUG) No PostScript generated for polygon tiling.
  4. (BUG) Clip background polygon for text/bitmap markers.
  5. (FEATURE) Add -mask option for bitmap marker.
  6. (FEATURE) Allow rotated image markers.
  7. (FEATURE) Add oval and rectangle markers.
  8. (FEATURE) Add arrowheads to line markers.
  9. (BUG) Finish adding error bars.
 10. (DOC) Review and update documentation for new typos, new features.
 11. (BUG) Store converted screen coordinates in floating point. Can't
	   use integer coordinates for higher resolution PostScript
	   devices. How do Windows' print devices handle this?

hierbox
  1. (CHANGE) Hierbox to use tree object for data.  The -data option will 
              be a field in the tree.
  2. (FEATURE) Add edit bindings for entries.
  3. (DOCUMENTATION) Create real hierbox manual page.

hiertable
  1. (done) -tree option dumps core.
  2. (done) Sorting tree view affects all other hiertables using the tree.  
            Is separate data structure needed for non-flattened sorts?  What
            about moves? 
  3. (done) Call tree update procedure when tree object is sorted.  This
            is only when a tree is shared between more than one hiertable.
            It goes out-of-sync with actual tree positions.
  4. (CHANGE) "column resize set" should change the width of the active
            column automatically.
  5a.(FEATURE) XOR outline for entry move operation.
  5b.(FEATURE) XOR outline for entry resize operation.
  6a.(done) XOR outline for column resize operation.
  6b.(FEATURE) XOR outline for column move operation.
  7. (???) Update procedure isn't called for moved nodes.  Call global
           update routine (like sort) or selected node update procedures?
  8. (DOC) Explain selection modes ("single" and "multiple") 
           in manual page.
  9. (BUG) Multi-line entry editting is broken.
 10. (BUG) Add default bindings for entry editting. Need to set grab
     on edit window.
 11. (BUG) Add standard keyboard bindings.
 12. (FEATURE) Images in column title.  
 13. (PERFORMANCE) Don't redraw entire widget for scrolling.  Copy 
                   portions of pixmap and redraw only changed areas.  
	           This will affect lots of code.
 14. (PERFORMANCE) Don't redraw entire widget for selections.  Draw
	           only changed entries.  
 15. (???) Add checkbox column entries.
 16. (BUG) "column resize" reports incorrect width of column.

printer (Windows)
  1. (DOC) Create manual page for "printer" command.
  2. (FEATURE) Add operation to print text and canvas widgets.
  3. (FEATURE) Create sample print dialog.
  4. (BUG) Needs print job abort handler.

tabset
  1. (done) Add perforation gizmo for tearoffs.  
  2. (FEATURE) Allow alternatative tearout styles.

tree 
  1. (done) Create Tcl interface.
  2. (DOC) Create manuals for both Tcl and C APIs.

vector
  1. (FEATURE) Add Tcl-based notification callbacks.  

gradient
  1. (FEATURE) Create gradient command that interfaces with tiling.

all (Mac)

---------------------

barchart - Anti-aliased lines for bars?  
(done) barchart - Clip bars properly.
barchart - Store bars with floating point coordinates
barchart - Fix PostScript, fix translucent bars.
graph    - Fix PostScript, fix translucent symbols
graph    - Fix PostScript font stringwidth using AFM files
graph    - Simple markup (subscript/superscript, font size color, greek symbols)
graph    - PDF output.
(70%) picture  - Add gradient paint operations
picture  - Wide lines
picture  - shadows.
picture  - Fix text operations. Single glyph 
picture  - PDF output
picture  - convolve
(100%) bgpattern - tile and gradient polygons
(60%) table widget - 
(90%) contour widget - 

macosx   - build
	 - busy, ?

dataarray:

1. Reference counted vectors.  Don't require master to delete.
   Can attach like trees and tables.
2. No variable interface.
3. Tcl notifier interface.
4. Connect to table columns.
5. Use Blt_Objs
6. No #auto.
7. Test harness.
8. Use Tcl_Objs instead of double array.  Allow strings, images, arrays, etc.

---------------------------------------------

Paneset --

  Fix modes.  
  Leave room for sash when shrinking window.

Graph --

  Constrain size of symbols.
  Fix axis line with solid plot lines.

Barchart --

  Clip bar segments against plot area.

Scrollset --

  Fix manual.

Treeview --

  Add automatic scrollbars.
  Change scrolling to use XCopyArea.
  
Combomenu --

  Better icon for radiobuttons.

Comboentry --

Combotree --

  Fix background.

Combobutton --

Menubar --

14. Make area between specified traces easier.  

/*
 *---------------------------------------------------------------------------
 *
 * ColumnInsertOp --
 *
 *      Add new columns to the table.
 *
 *      Can you create columns that have no datatable column yet?  For what
 *      purposes?  
 *              Preset order of columns.  
 *              Preset column attribute such as title, color, format, etc. 
 *              binding?  what is it binding to? the col?
 *              Hold onto requested position.
 *
 *      Don't add into column list until attached.
 *      Save column in hash table. Save requested position.
 *      Mark column as static.
 *      Additional column structure to hold unattached columns.
 *      By definition, all inserted columns should be unattached.
 *      Unattaching the table: automatically removes uninserted rows.
 *      No data table attached?  Problem: column names are through the
 *      datatable.
 *
 *      pathName column insert colName position ?option values?
 *
 *      pathName column insert "myColumn" end 
 *
 *      colName tableview column: 
 *      index tableview column: @x,y active focus current left right up down 
 *                              mark anchor
 *      colName datatable column: c1, c2, c3
 *      index datatable column: 0..n end
 *      tag datatable column: @all @end
 *
 *      is there a datatable column named "fred"?
 *      no, create column and add to static table with requested position.
 *      don't put into column list.  only when later attached.
 *      mark as user-defined.
 *	
*  Attach operation.
   * Is column in normal column table?  Yes, should be an error?
   * Means duplicate? 
   * If no, then look for it in the static table.
   * If still not found, auto create
 
 *
 *      delete column by index or tag (must be attached)
 *      delete column by name.
 *
 *      activate        ignore
 *      bbox            ignore, empty bbox? no data.
 *      bind            ok
 *      cget            ok
 *      configure       ok
 *      deactivate      ignore
 *      delete          special
 *      exists          ok
 *      expose          mark
 *      find            ignore
 *      hide            mark
 *      identify        ignore
 *      index           -1 
 *      insert          NA
 *      invoke          ok
 *      move            FIXME: Save new position?
 *      names           ok
 *      nearest         ignore
 *      resize          ignore
 *      see             ignore
 *      show            mark
 *      slide           ignore
 *      -sortcolumn     ignore
 *
 *---------------------------------------------------------------------------
 */
