/*  $Header: /cvs/gnome/gcalctool/TODO,v 1.74 2006/01/09 16:30:20 richb Exp $
 *
 *  Copyright (c) 1987-2006 Sun Microsystems, Inc.
 *  All Rights Reserved.
 */

Gcalctool TODO.
===============

* From James Brown <alumnus at bigpond dot com>
  In engineering it is typical to think of numbers in scientific notation 
  in powers of three for example
  123473 - I would only use say 4 signification "digits" and would say
  123.4 kilo units

  and .00000324 would be three point two four micro units

  The only improvement I could suggest would be to have an engineering
  mode where the postfix milli,micro,nano,pico,kilo,mega,giga etc
  (m,u,n,p,k,M,G respectively) was shown next to the number.  

* With the gcalctoolrc Gtk resources copied to a ~/.gcalctoolrc file, the 
  "*displayitem*" widget and the "*register_label<n>*" widgets background 
  color aren't being set to white.

* Improve the colors in the gcalctoolrc file.

* Now that constant and function definitions are read/written as Gconf
  resources, there are three pieces of functionality that are no longer
  present. Need to be consider whether we wish to reimplement them. They
  are:
  - ability to read new constant/function definitions from a .gcalctoolcf
    file in the current directory, which override the ones in the users
    home directory.
  - ability to set initial values for the ten memory registers.
  - ability to extensively comment the definitions in the file.

* Implement bugtraq rfe #1190372/#1105626.
  It appears that function definitions are unable to handle all calculator
  buttons. Buttons with a keyboard equivalent that is a special key (clear 
  display) or key combination (^s - Sin) appear to be rejected in functions 
  defs.  This affects the availability of many of the calculator buttons.

* Implement bugtraq rfe #4023507.
  The calculator in Scientific mode accepts hex entries of up to
  eight digits.  This was sufficient to deal with 32-bit addresses.
  When Solaris is 64-bit, the calculator will be less useful.
  Maybe there should be a Logical-64 mode.

* Implement bugtraq rfe #1122089.
  Add a log base 2 key.

* Consider adding in the ability to drag & drop from/to the display and 
  the memory registers.
 
* Consider adding in some more functions:
 
  ~ Common antilogarithm and natural antilogarithm.
  ~ Cube root key.
  ~ Root key. The y root of x.
  ~ Rectangular to polar and polar to rectangular keys.
   
* Consider adding Reverse Polish notation functionality (as an option).

* Unit tests! Currently a test vector with button presses and result analysis 
  would be fine.

Gcalctool - Next Generation TODO (Arithmetic Precedence (AP) mode)
------------------------------------------------------------------

* CE parser has 2 reduce/reduce errors (mostly harmless :)

* Answer cannot be used in logical calculations because answer may not
  be integer.

* Base conversions are not easy to use. (Only answer can be converted)

* New display 
  - History of previous expressions (scrollable)
  - Support writing/editing expressions as a text.
  - Copy / Paste support (especially reusing previous expressions and answers)
  - Syntax highlighting
  - Autocomplete / hints

* Gcalctool should give more detailed information in case of syntax error.

MP - todo.
----------

* Shouldn't have to convert back to a double in make_number() in order
  to test if the number is too large to be displayed in fixed point.

* The cmax field for make_fixed should be dynamic, and depend upon how
  many characters can be displayed (ie. a larger gcalctool will be able
  to display more).

* Tidy up the code in mp.c, to eventually use no labels and goto's.

* Adjust all uses of MP...[MP_SIZE] to use a dynamic size so that it's
  possible to calculate to numbers of any length.
