/*  $Header: /cvs/gnome/gcalctool/TODO,v 1.73 2005/02/07 16:38:58 richb Exp $
 *
 *  Copyright (c) 1987-2005 Sun Microsystems, Inc.
 *  All Rights Reserved.
 */

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

* From Jeremiah Jahn <jeremiah at goodinassociates dot com>
  Add a modulo function.

* 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 #4113441.
  Scientists using dtcalc under CDE would like to get deeper precision.
  The maximum accuracy depth, which is 9, is not enough for them.
  They would like to have 15 digits available.

* 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.
