Source obtained from: ftp://ftp.afterstep.org/stable/rpms/misc-tarballs/wmcalc-0.4.tar.gz
		
			
				
	
	
		
			212 lines
		
	
	
	
		
			7.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			212 lines
		
	
	
	
		
			7.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
wmcalc Ver. 0 Rel 4
 | 
						|
-------------------------------------------------------------
 | 
						|
   Code is loosely based on wmppp, wmload, wmtime, wmcp, and asbutton
 | 
						|
   Original Author: Edward H. Flora <ehflora@access1.net>
 | 
						|
   Current Maintainer: Gordon Fraser <gordon@debian.org>
 | 
						|
   Ver 0 Rel 4    May 25, 2002
 | 
						|
 | 
						|
DESCRIPTION:
 | 
						|
------------
 | 
						|
wmcalc is a program designed to act as a simple four-function
 | 
						|
calculator.  It is different from other calculator programs, however
 | 
						|
in that it is designed to take up very little desktop space.  As such, 
 | 
						|
it can be left running on the desktop at all times.  It is intended to 
 | 
						|
placed in the WindowMaker dock, or in Wharf under Afterstep, though it 
 | 
						|
should run as well under any window manager.  
 | 
						|
 | 
						|
LICENSING:
 | 
						|
----------
 | 
						|
This program is released under the GPL license.  A copy (in case you
 | 
						|
don't already have hundreds of them floating around) can be found in
 | 
						|
this distribution in the file COPYING.
 | 
						|
 | 
						|
CONTRIBUTORS:
 | 
						|
-------------
 | 
						|
Co-Developers:
 | 
						|
	      Rick Stuart     <stuart@xnet.com>
 | 
						|
	      Philippe Trbich <philippe.trbich@free.fr> 
 | 
						|
Original Web Page Designs:
 | 
						|
              Jon Bruno <bruno@ksu.edu>
 | 
						|
Thanks to:
 | 
						|
              Ben Cohen <buddog@aztec.asu.edu>
 | 
						|
                  original author of wmcp (et al.)
 | 
						|
The contributors listed above are not involved with the development of
 | 
						|
wmcalc.  I'm listing them here as thanks for helping out, catching
 | 
						|
bugs in the code, etc.
 | 
						|
 | 
						|
INSTALLATION:
 | 
						|
-------------
 | 
						|
	Untar the file: 
 | 
						|
		tar xvzf wmcalc-0.3.tar.gz
 | 
						|
 | 
						|
	CD to source directory:  
 | 
						|
		cd wmcalc-0.3
 | 
						|
 | 
						|
	Compile it:
 | 
						|
	 	make clean; make
 | 
						|
 | 
						|
	Copy the config file:  
 | 
						|
		cp .wmcalc ~
 | 
						|
 | 
						|
	Put the executable somewhere in your path:
 | 
						|
		mv wmcalc /usr/local/bin (or anyhere in your path)
 | 
						|
	
 | 
						|
	Run it:
 | 
						|
		wmcalc &
 | 
						|
 | 
						|
	Grab the appicon and move it to the dock. 
 | 
						|
	Change the settings to start with Windowmaker
 | 
						|
 | 
						|
	Afterstep Wharf 1.6.??: (I don't use Afterstep anymore, so...)
 | 
						|
	*Wharf wmcalc -Swallow "wmcalc" wmcalc &
 | 
						|
 | 
						|
    ***Note***: 
 | 
						|
	The appicon only has a two pixel border where you can grab 
 | 
						|
	and move it.  It is easiest to grab along the bottom edge.
 | 
						|
 | 
						|
	If make doesn't work, you may need to fiddle with the settings in 
 | 
						|
	the Makefile.
 | 
						|
 | 
						|
	Tested on: (Well, it runs, I don't know if 'Tested' is quite right...)
 | 
						|
		WindowMaker-0.62.1
 | 
						|
		X Clients: Red Hat 6.0, Kernel 2.2.8
 | 
						|
 | 
						|
USAGE:
 | 
						|
------
 | 
						|
usage: wmcalc [-g geometry] [-d dpy] [-v] [-f configfilename] [-h]
 | 
						|
 | 
						|
-g  <geometry>   Window Geometry - ie: 64x64+10+10
 | 
						|
-d  <display>    Display -  ie: 127.0.0.1:0.0
 | 
						|
-v               Verbose Mode. 
 | 
						|
-h               Help. This message.
 | 
						|
-f  <filename>   Full path to configuration file to use.  
 | 
						|
 | 
						|
Buttons are defined as:
 | 
						|
 ____________________
 | 
						|
|       x00          | 	       where: x = 1 for Left Mouse Button   
 | 
						|
| 0 1 2 3 4 5 6 7 8 9|                x = 2 for Middle Mouse Button
 | 
						|
|--------------------|		      x = 3 for Right Mouse Button
 | 
						|
|x01 x02 x03 x04 x05 |                
 | 
						|
|x06 x07 x08 x09 x10 |	       Note: the numbers 0..9 are the indicators
 | 
						|
|x11 x12 x13 x14 x15 |               for memory cells 0..9 respectively
 | 
						|
|x16 x17 x18 x19 x20 |
 | 
						|
 --------------------
 | 
						|
 | 
						|
Button Functions:
 | 
						|
	100	Reinitialize the calculator, and both Registers 
 | 
						|
		(Clear All)
 | 
						|
	200	Clear all the memory registers (0..10)
 | 
						|
	300     Clear the current number being entered only
 | 
						|
	x11	Start a program defined by CalcStart variable in config file
 | 
						|
	1yy	Perform function shown on button
 | 
						|
	2yy	Recall number from memory location [0-9] to display
 | 
						|
		for calculation
 | 
						|
			if yy = 2,3,4, 7,8,9, 12, 13, 14, 17
 | 
						|
		otherwise, can run a user-defined function (not implemented)
 | 
						|
	3yy	Store Displayed number in memory location [0-9]
 | 
						|
			if yy = 2,3,4, 7,8,9, 12,13,14, 17
 | 
						|
		otherwise, can run a user-defined function (not implemented)
 | 
						|
	1xx	Hopefully the other functions are obvious from their 
 | 
						|
	        button graphics.
 | 
						|
 | 
						|
 | 
						|
NOTES:
 | 
						|
------
 | 
						|
I am sure that there are better ways to do some of the things that are 
 | 
						|
done in wmcalc.  In fact, wmcalc is basically a series of hacks, but appears
 | 
						|
to be stable...
 | 
						|
 | 
						|
The configuration file (.wmcalc) is written by wmcalc whenever the user
 | 
						|
requests to store a number to memory.  As a part of this process, a file 
 | 
						|
is written to /tmp.  If /tmp is not accessible, it tries in the user's home
 | 
						|
directory, as defined by the environment variable HOME.  This file is
 | 
						|
erased as soon as it is written over the main configuration file.
 | 
						|
 | 
						|
Changes made to the configuration file (other than memory stores) will not
 | 
						|
take effect until the next time wmcalc is started.
 | 
						|
 | 
						|
Although one can only "Clear" all unlocked memory locations, one may clear the 
 | 
						|
display and then "store" a '0' in the memory location, providing the
 | 
						|
ability to clear individual cells.
 | 
						|
 | 
						|
The fonts are stored in charmap.xpm.  This file may be edited to
 | 
						|
change colors or fonts, but the app must be recompiled for the changes 
 | 
						|
to take effect.  The buttons are located in calcbuttons.xpm.  This
 | 
						|
file may be edited, though the borders should stay where they are
 | 
						|
unless you want to change the button regions that are hard coded.
 | 
						|
The background border is defined in backdrop.xpm.  
 | 
						|
 | 
						|
"C code.  C code run.  Run, code, run.
 | 
						|
			PLEASE!?!?!?!?!?!?"
 | 
						|
 | 
						|
CHANGE LOG:
 | 
						|
-----------
 | 
						|
0.3     Added "Locked" memory capabilities via config file
 | 
						|
        General Code clean-up
 | 
						|
	Keyboard Support - may not be platform independent
 | 
						|
 | 
						|
0.21    Added Display of memory locations containing non-zero data
 | 
						|
 | 
						|
0.2	First psuedo-major enhancements
 | 
						|
	Added Memories, Config File, CalcStart button
 | 
						|
	Bug Fix - Squared imaginary number is now negative
 | 
						|
 | 
						|
0.1	First real version.
 | 
						|
	Limited functionality.
 | 
						|
 | 
						|
0.0	Original version.  Very limited distribution, as it was not a
 | 
						|
	functional calculator, but just tested the display.  It was more
 | 
						|
	of a proof of concept.
 | 
						|
 | 
						|
TODO: 
 | 
						|
-----
 | 
						|
These are partially a dream list.  I don't know when they'll get done, 
 | 
						|
as I'm pretty busy at work.  Anyone want to tackle these??
 | 
						|
 | 
						|
* Re-implement the register/display design to allow full double precision.
 | 
						|
 | 
						|
* Add keyboard support (I've tried to do this, with no luck.  Probably a
 | 
						|
  'focus' problem.
 | 
						|
 | 
						|
* Add button press animation.
 | 
						|
 | 
						|
* Add a log file, either as a paper tape implementation, or a file
 | 
						|
  that one can intentionally write data to.  (This could grow to a pipe to
 | 
						|
  plotting programs, etc, though this is a bit extreme...)
 | 
						|
 | 
						|
RPN: 
 | 
						|
  I have no intention at this time to add in an RPN format, as I
 | 
						|
  personally do not like it.  It should be noted that I have NOT used it
 | 
						|
  extensively, and I've heard that I would like it.  But, until then...
 | 
						|
 | 
						|
BUGS: 
 | 
						|
-----
 | 
						|
Remember, they're just undocumented FEATURES!!!
 | 
						|
 | 
						|
* The display can lose the last digit of a three character exponential
 | 
						|
  notation number.
 | 
						|
 | 
						|
* Due to an implementation fault, at every step of calculations, precision 
 | 
						|
  is lost, as the number is only as accurate at that displayed.
 | 
						|
 | 
						|
* Order of operations: 1 + 2 * 5 = 15, not 11, as it should.
 | 
						|
 | 
						|
* Changing sign when the display is blank results in "-0".  Further entry
 | 
						|
  yields "-05...," but this does not affect calculations.
 | 
						|
 | 
						|
* Changes to the configuration file do not take effect until wmcalc is 
 | 
						|
  restarted.  (Note that file is written whenever a "store memory 
 | 
						|
  location" is requested)
 | 
						|
 | 
						|
Probably many more.  Send comments (preferably with fixes) to
 | 
						|
	<ehflora@access1.net>
 | 
						|
I will happily include your name in the documentation for the program
 | 
						|
if you send me a bug report and the correction.  This can be in the
 | 
						|
form of a patch file, or ASCII text to exchange, or an equivalent.
 | 
						|
Note, this program is written in C.  Not C++.  I'm not a computer
 | 
						|
science person, I don't do objects.  Therefore, bug fixes that convert 
 | 
						|
this to C++ don't count, since I would no longer be able to support
 | 
						|
the program.  Of course, you can modify the code and release a new 
 | 
						|
application.  
 | 
						|
 | 
						|
Thanks, and Good Luck.
 |