/* $Header: /cvs/gnome/gcalctool/ChangeLog-1990,v 1.4 2006/01/09 16:30:20 richb Exp $ * * Copyright (c) 1987-2007 Sun Microsystems, Inc. * All Rights Reserved. */ gcalctool change history - 1990. ================================ v3.1 - patchlevel 13 - 19th December 1990. * Added in X color resource support for all of the colors that calctool uses. These can now be setup in all the standard X places or the ~/.desksetdefaults file. If there aren't any, then the "standard" colors are used. The manual pages have been updated to describe these new resources. ---- v3.1 - patchlevel 12 - 27th November 1990 [mjb] * Fixed Makefile to compile with the XView Makefile.master ---- v3.1 - patchlevel 11 - 27th November 1990. * Generated a version of calctool which should have support for other languages. The text generation has been separated out into another source file (text.c). Needs to be tested in the sundae environment * Modified the text handling for calctool to use four new definitions, DGET(), EGET(), LGET() and MGET() definied in calctool.h, and set the text initialisation appropriately. Note that DGET() is just a dummy call, but makes it easier to change from one type of conversion to another. Certain strings (command line arguments, help strings, parts of the usage message, calctool resources), don't appear to have to be converted, and are just initialised into the correct arrays using DGET(). * Added in Xrm resource handling. Resources are looked for in the following ways: Classname file in the app-defaults directory. In this case, Classname is Deskset. Classname file in the directory specified by the XUSERFILESEARCHPATH or XAPPLRESDIR environment variable. Property set using xrdb, accessible through the XResourceManagerString macro or, if that is empty, the ~/.Xdefaults file. XENVIRONMENT environment variable or, if not set, .Xdefaults-hostname file. DESKSETDEFAULTS environment variable or, if not set, the ~/.desksetdefaults file *NOTE* When you write an Xrm database to a file, it overwrites the file. What I've done is read in the ~/.desksetdefaults file just before I write out the new values. This seems like a window for error if two or more clients are doing this at the same time. The calctool resources are (with example values shown): deskset.calctool.accuracy: 6 deskset.calctool.base: hex deskset.calctool.display: scientific deskset.calctool.mode: scientific deskset.calctool.mono: false deskset.calctool.showRegisters: false deskset.calctool.trigType: rad deskset.calctool.rightHanded: false deskset.calctool.3dLook: true deskset.calctool.hasTitle: true * Calctool now has a property sheet. There are four settings: Appearance: 2D-look | 3D-llok Display: color | monochrome Save calculator settings: no | yes Style: left-handed | right-handed The third choice determine whether five extra calculator settings are written out to the ~/.desksetdefaults file. These are (for example): deskset.calctool.accuracy: 6 deskset.calctool.base: hex deskset.calctool.display: scientific deskset.calctool.mode: scientific deskset.calctool.trigType: rad * Calctool now recognises the Props key being pressed, and displays the property sheet. * The manual pages have been modified to include all this new information on resources and the property sheet. ---- v3.1 - patchlevel 10 - 22nd November 1990. * If you backspace over a number which contained a decimal point, calctool would not allow you to enter a new decimal point. Bugid 1047077 can be closed. ---- v3.1 - patchlevel 9 - 1st November 1990. * If the total colormap couldn't be allocated in load_colors(), then calctool is starting in monochrome instead of exiting. ---- v3.1 - patchlevel 8 - 18th October 1990. * The Delete, Back Space and Ins (numeric keypad) keys were no longer working. In the latest OW V3 build, these have been remapped to ACTION_ERASE_CHAR_FORWARD, ACTION_ERASE_CHAR_BACKWARD and ACTION_INSERT events. Tidied up the event reading routine too. ---- v3.1 - patchlevel 7 - 2nd October 1990. * "Fixing" the minimal shrinking problem in patch #6, broke the sizing of the memory and mode windows. This patch fixes that. ---- v3.1 - patchlevel 6 - 2nd October 1990. * Shrinking calctool below it's minimum size now correctly works. ---- v3.1 - patchlevel 5 - 27th September 1990. * After the user has done a valid parentheses calculation, the last input is set to the displayed value. If the user enters an '=', nothing changes. * During parentheses processing, if the user uses the mouse to select an item from a function menu or the default menu item, then the correct values are entered in the display (and on the parentheses stack). * The default menu item for the function menu is now "Enter Function". The default menu item for the constant menu is now "Enter Constant". The text is now correctly displayed on the calctool button when the left mouse button is held down. The popup correctly appears when the left mouse button is released. * If you executed a user defined function that ended in a ')', then a '(' was left in the operand field. * All calctool button labels are now only drawn with the "normal" font. * If calctool is resized, the memory register window is now correctly resized also. ---- v3.1 - patchlevel 4 - 27th September 1990. * Define a user defined function and dismiss the window. If you bring the define constant window the info from the previously defined function is still in the window. The user should not have to erase this info before entering the new info. * Only certain "pending" operations should redisplay the numeric calctool buttons half way through the operation. Con, Exch, Fun, Sto, Rcl and Acc should redisplay the buttons 0-9. < and > should redisplay the buttons 0-f. * During parentheses processing if a numerical error occured, the display is now set to "Error", and the operand field is set to "CLR". * The contents of v->disp_val are now zeroised when the first left parenthesis is found. This is to allow for correct calculations when invalid numbers and operands are found inside the parentheses. ---- v3.1 - patchlevel 3 - 26th September 1990. * When you type '*' (synonymous with multiplication 'x'), the op field was not being set. * Displaying the Memory register window shouldn't clear the operand field. * Use of a pending operation within a current calculation, will result in the erasing of the display of the type of the current operation. * The 10 constant values were accidentally being zeroised in init_vars(). * The ASC, Enter Con/Fun windows and the mode window are all pinned when initially displayed. * The command line option extraction routine now understands -Wx as being synonymous with -scale. * Added two new command line options, -2 and -3 which start up the color version of calctool with a 2D and a 3D look respectively. The manual pages have been updated. NOTE: The color -2 version renders a lot faster then the default color option. * If you had typed a left parenthesis, then hitting certain calctool keys that generate control characters (such as Tan), didn't get displayed properly. They are now displayed as ^c, where c is the character in question. * Hitting the Delete and Back Space keys after entering a left parenthesis now does the appropriate action. ---- v3.1 - patchlevel 2 - 21st September 1990. * If a left parenthesis had been entered, and a selection then made from the Mode window, calctool would core dump. * The memory register and constant values were not getting initialised to zero. ---- v3.1 - patchlevel 1 - 17th September 1990. * Ran calctool through xsaber, and cleaned up any errors/warning generated. * Made as many functions as possible in xview.c, static. * calctool can now automatically resize itself using the frame resize corners. The fonts are reinitialised depending upon the new scale, and the calctool button images regenerated depending upon the new size. * The calctool.info file has been fixed up to mention the logical mode under the mode information. * If the user holds the left mouse button down over a calctool button that has a menu associated with it, and the length of the default menu item is zero, then the menu button glyph is now placed on the right side of the calctool button. ---- v3.1 - patchlevel 0 - 12th September 1990. * Started work on the OpenWindows v3.0 calctool. * Created a minimal Makefile. Reversed the order of patch descriptions in the CHANGES file, so that the latest is at the beginning. * Added standard Sun Microsystems headers to each .c and .h file. * Added in code to determine whether there is a Sun3 or a Sun4 type keyboard attached, and adjusts the right function keypad accordingly. Bugid 1039460 can be closed. * For the Sun4 keyboard, changed the R6 (*) definition to x from *. This now allows multiplication to work correctly. * For the Sun3 keyboard, changed the R14 '1' definition to '.'. * The key labled CHS has been changed to +/-. * Removed the three spare entries from the colormap table. As this is now XView and not SunView, the colormap size doesn't have to be a power of 2. * calctool now looks for KBD_USE and KBD_DONE events to determine if calctool has the keyboard focus, and sets the mapping of the Del/. function key to '.' or Del acordingly. * Added the '*' case to the switch table in do_calc() to allow '*' to be synonymous for multiplication. * All the "variable" variables are now defined in structures and malloced. This should make it fairly trivial to turn calctool into a library routine if so required. * Made as many functions as possible void. * Fixed up the usage() message. * Removed references to the -i (inverse video) command line option, which is not supported under XView/Xlib. * If there is a mode window displayed and it is pinned, then trying to change to Basic mode will have no effect. The user has to unpin the frame to achieve this. * Now recognises the -Wn and +Wn command line options to disable or enable a frame titleline. The actual contents of the titleline still needs to be set with the -Wl option. * The manual page has been updated to describe the -Wn and +Wn command line options, and the change of CHS to +/-. * The calctool.info file has been updated to reflect the change of Chs to +/-. * Calctool now understands the -scale and -Ws (-size) command line options, and adjusts the button sizes and the fonts it uses accordingly. * A check is now made in the get_menu_def routine for a valid default menu item. Initialy it is possible for the Function menu to not have a default item. If there isn't one, then get_menu_def() now returns -1. This is checked for in handle_menu_selection() and prevents an: "XView warning: invalid object (not a pointer), xv_get" message. Bugid 1039912 can be closed. * With the greying in/out of the calctool buttons, the button is only redrawn if it's changing color/state. ---- v3.0 - patchlevel 24 - 22nd May 1990. * Columns 1 and 2 have been reversed for the -r "right-handed" option. This means that the Quit buton will be in the bottom left hand corner. ---- v3.0 - patchlevel 23 - 22st May 1990. * Fixed up repaint problem on monochrome screen when no selection was made from the displayed popup menu. * Added -r command line option to display a "right-handed" calculator. * Removed unwanted -W? command line options. * Updated the calctool manual page. The -r option was added and the -Wi, -WP and -Wp options were removed because these are generic tool arguments. ---- v3.0 - patchlevel 22 - 19th May 1990. * Added menu_showing kludge to xview.c, to prevent multiple repaints on mono screens. ---- v3.0 - patchlevel 21 - 12th May 1990. * Entering numbers with more then 10 numeric places were being converted incorrectly. ---- v3.0 - patchlevel 20 - 9th May 1990. * XView calctool has been run through XSaber-C, and several changes made because of the error messages produced. * There was an uninitialised variable exp_sign in convert_display() * The variable label, used to store the calctool labels was two characters too small. * In write_cf_value, the variable result was being written to. This was clobbering the global variable called result, which was the calculators current result. A local variable with the same name has been introduced. * If the calculation 2+(3*(4+5)-6) was entered, the display should not be adjusted until the last parenthisis is matched. This was not the case, and has now been fixed. ---- v3.0 - patchlevel 19 - 7th May 1990. * Calctool didn't correctly grey out buttons when run on a mono screen. * A -m option has been introduced to allow you to run in just black and white on a color screen. * Made sure that after a menu has been displayed, the grey area repaint of the canvas occurs on an even pixel boundary. ---- v3.0 - patchlevel 18 - 2nd May 1990. * The XView driver has been fixed so that the additional popup frames don't "jiggle" about. ---- v3.0 - patchlevel 17 - 27th April 1990. * The XView driver has been adjusted so that auxiliary frames are only created if they are used. ---- v3.0 - patchlevel 16 - 20th April 1990. * Added in the changes to include ds_position_popup, to successfully position the popup windows. * Buttons are now correctly stenciled. ---- v3.0 - patchlevel 15. - 17th April 1990. * If the user presses left over a calctool button which has a menu associated with it, then as much as possible of the default menu item is now shown on the button label. * References to DRAGING have been changed to DRAGGING. * The mouse event code in process_event in graphics.c, has been divided up into separate routines. * If the left mouse button was pressed initially, when it wasn't over a calctool button, then the OPEN LOOK mouse dragging effect didn't work. * If the right mouse button was pressed initially when it wasn't over a calctool button which had a menu associated with it, then the correct OPEN LOOK actions were not performed. ---- v3.0 - patchlevel 14. - 15th April 1990. * A few things have been done to make calctool more OPEN LOOK. These include only being able to SELECT with the left button. The middle button has no effect. The right button is only useful on buttons which have a menu associated with them. If you click on the SELECT mouse button and drag the mouse around, the calctool buttons invert and return to normal when the mouse moves over them. Exiting the calctool window when the mouse is being dragged, deselects the last button. * If the users Clicks over a calctool button with the left mouse button, and this calctool button has a menu associated with it, then the default menu item value is selected. This has introduced an extra field to the cmenus menu structure, which is the initial default value. * In scientific mode, 6 was being displayed as 6.00e+ instead of 6.00e+0. ---- v3.0 - patchlevel 13. - 26th March 1990. * The ability to store values via the popup menu was broken by a change in patch #11. This is now fixed. ---- v3.0 - patchlevel 12. - 22st March 1990. * Clicking SELECT on the pane of the Memory Registers window still displayed keys from the Calculator base window. * If a number was being displayed in scientific notation in hexidecimal, then the exponent'e' was being incorrectly converted to uppercase. * The destroy_proc routine has been removed from both the XView and the SunView drivers. This means that the X/NeWS command "Save Workspace" now correctly works. The do_frame routine has been moved to functions.c * The incorrect result was being produced with the parenthesis code. This was because the push_op and push_num routines were being passed a negative index. ---- v3.0 - patchlevel 11. - 20th March 1990. * If one of the following operators (+, -, x or /) was used in between the sto operator and the register, then calctool would hang. * Calctool was only allowing a certain maximum number of digits to be entered in each base; 40 for binary, 15 for octal and 12 for decimal and hexidecimal. This has been changed to allow upto MAX_DIGITS (40) to be entered, irrespective of what base you are in. Note that internal accuracy is lost above the number of digits (40/bin, 15/oct, 12/dec, 12/hex). * The exponent portion of scientific numbers displayed in binary was incorrect. ---- v3.0 - patchlevel 10. - 16th March 1990. * Both the XView and the SunView version now use a canvas repaint handler which tries to repaint the smallest amount possible for the main calctool canvas plus the canvas for the special mode. * The titleline for the mode popup frame now has the initial letter of each word capitalised. * The "4" button was displaying as 4.. at certain times when the main calctool frame was completely redrawn. This is now fixed. * Redundant code has been removed, plus the comments in functions.c have been corrected. ---- v3.0 - patchlevel 9. - 15th March 1990. * The title line now says "Calculator" and not "Calctool". * All main calctool canvas and the mode popup canvas are now retained. This should prevent the repaint events when a menu is poped up. Note that calctool is still capable of correctly repainting itself, should that retained canvas go away. * The calctool buttons have been remade. The height is now 28 pixels instead of 48 pixels. The XView version now uses the Lucida font in various sizes. The menu glyph has been made slightly smaller to be in proportion to the new sized buttons. * The button labels can now contain upto four characters, plus allowing room for the menu glyph. The labels now just have the initially character in uppercase. Labels are now much more readable. * The mode popup has changed shape. It's now two rows of eight columns and fits in nicely below the main calctool window. The buttons have been rearranged on this popup (in the various modes). * The Mem and Asc keys now have the ... menu mark, to show that they display popup frames. * The title line of the memory register window now is "Memory Registers" and not "Memory registers". This frame now comes up with the push pin in. * Clicking SELECT on the register window no longer displays calctool buttons on this window. * Clicking on the Mem key when the memory register window is shown, no longer removes it. * The calctool.info file has been modified. All key names have been changed from capital letters to just the initial letter in uppercase with the rest in lowercase. Examples for all the financial functions have been added. * The calctool display now shows characters typed in during parenthesis processing. ---- v3.0 - patchlevel 8. - 1st March 1990. * Parentheses have been fully implemented. ---- v3.0 - patchlevel 7. - 27th February 1990. * The < and > shift operators have been moved to the logical popup. The 1/x and x^2 keys have been moved to the main calctool frame. * Keyboard handling has been fixed up so that all possible valid keys are available from either the main calctool frame or the current mode popup (if there is one). * The calctool.info file has been updated for the new layout. * The code for adding/altering constant/function popup menu values has been simplified to solve a problem with the new value being in the wrong place. * The "business" mode has been renamed "financial" mode with a corresponding letter 'f'. The "basic" mode letter has been changed from 'n' to 'b'. * Nine financial keys and their associated routines have been included. The calctool.info file has been updated with descriptions of these definitions. * Just before the buttons table in calctool.c, a table of currently used keyboard equivalents has been defined. This should make it easier to show what ones are available for new functions. * The variable array mem_vals has been renamed to mvals. * More work has been done on the parentheses handling, but this is not complete yet. ---- v3.0 - patchlevel 6. - 23rd February 1990. * The code for the "Enter Function/Constant" has been tested, and is hopefully now bug free. * Hooks for the parentheses code has been written. * The calculator has had the logical functions moved into a separate mode on the popup mode frame. One column has been removed, and the keys rearranged. The SQRT key has been put back on the main frame, and is now GREY0. So is the ASC key. There are no buttons showing where there are no functions in this position on the mode frames. ---- v3.0 - patchlevel 5. - 22nd February 1990. * The CHANGES file has been updated for all patches. * When there is no calculator mode, the "panel item" is set to BASIC, not NONE. The keyboard equivalent is still 'n'. * The auxiliary popup frames now come up correctly with the XView version. * The display no longer truncates to 30 digits when in binary mode. To achieve this, I've had to change the numeric display font to cour.r.18 from cour.r.24. * The code for the "Enter Function/Constant" has been written, compiled and partially tested. It is not bug free yet though, so shouldn't yet be used. ---- v3.0 - patchlevel 4. - 21st February 1990. * Fixes up the calctool.info file. * Fixes up the validkeys array (keys that can be validly pressed after an error has occured). * I've changes several calctool button keyboard equivalents, to make the result more consistent. Buttons with menus, now tend to have a capital letter equivalent, unless it's a special key like <, > or #. Changed values are: Button display Keyboard equivalent. MO M RT R ST S FN F INT Control-i FRAC Control-f ABS Control-u 1/x r SQRT s y^x y KEYS k MEM m * Pressing the KEYS button now successfully changes the values on the mode popup frame if it is displayed. * Setting the calculator mode to NONE now correctly shows NONE in the display area. * I have fixed up the .calctoolrc file for the key changes listed above. * Do_help now has correct values when selecting help for items in the popup calculator mode window. * The last remaining pixwin call has been removed from the XView driver and the handling of server images has been improved. * The control character sequences in the function popup menu are now correctly displayed. * Repaint handlers have been added to the SunView and XView drivers, and the hooks are in place to do minimal repaint. ---- v3.0 - patchlevel 3. - 20th February 1990. * The ASC frame is now the correct size. * The do_function routine now works correctly. * The memory register window now displays correctly. * The mode popup frame now correctly displays the new mode buttons if the mode window was already being displayed. * The SunView driver had an incorrect XV_SHOW; should have been a WIN_SHOW. * Greying out of the redundant numeric keys is now handled differently. * The shift keys will now shift upto 15 places. * I've removed all the pixwin calls (except one) in the XView driver. The colormap handling is now also done at the Xlib level. * All the hooks are in place for the "New Constant" and "New Function" entries in the constant and function menus. ---- v3.0 - patchlevel 2. - 19th February 1990. * The mode keys are on a separate popup frame. * The base values (BIN, OCT, DEC, HEX) are under one key with popup menu. * The display values (ENG, FIX, SCI) are under one key with popup menu. * The size of the calculators main frames is now 9 columns x 6 rows. * RAND, TMv, HYP and INV have been moved to the scientific mode frame which is now 4 columns x 4 rows. The TM is a button with popup menu for the trig type values (DEG, GRAD and RAD). * The frames no longer have resize corners. This will prevent the user from resizing the calctool. ---- v3.0 - patchlevel 1. - 15th February 1990. * Popup menus now use the default font. * The SunView and the XView routines returned that the fonts were of different widths, so I've rewritten the part of set_item that shows the calculator display to use a get_strwidth, and then set the string x position based on this. * I've implemented context sensitive help. * I've implemented the ASC key. I have a philosophical problem with the current implementation. It should be possible to do every calctool operation solely by using the keyboard. I've implemented ASC this way in this new version. * Updated calctool.info,rearranging the order to tie in with the new button layout, and adding in help messages for all the new functions. * Removed all redundant code. This includes unwanted command line option parsing, variables and routines associated with the help file, plus others. * Started to tidy up the XView driver. ---- v3.0 - patchlevel 0. - 14th February 1990. * New version passed over to the desktop group for comments. * Started 8th February 1990. ====