## Welcome to the Help Documentation

This is the user guide for spycalc, the following sections will quide you through the various components of the application

for a more indepth guide to things like installation and contributing see the README.md from the github page

#### Jump to a Section ↓

- User Interface and Design
- Inputs Methods
- Other Dialogs
- Advanced Usage
- Extending spycalc

### The UI

One of the goals of spycalc if for a simple, and practicle user inter (UI) one of the few ui elements that may need explaining is the View -> Loaded Functions menu. what it does it it programatically displays the functions, and constants (like tan, and sin, or pi, and e).

#### special buttons

there are several button, particularly at the bottom of the calculator. the buttons are labeled by », «, and ←

←is used for deleting the right-most character from the current equation.

The «, and » are for loading the previous inputs to the calculator. for instance if you were to mistype a command, and it returns and error, you can use the « to bring it back and fix it, or if you go too far back, you can come back forward with »

#### The File Menu

Under the File menu, there are currently three actions, or options to click the actions are Help, Exit, and Update, and they will be covered by the following paragraphs

##### Help

This action opens this document in a new browser tab, and is pretty self explanatory.

##### Exit

Again, pretty self explanatory, this action exits the program peacefully

##### Update

This action opens a dialog, or popup that displays text saying that it is attempting to update, and a loading gif. When it is done downloading the update, it will exit peacefully, leaving the calculator open. To see the effect of the update, just restart the calculator

### Input Methods

spycalc has two distinct methods for entering equations into the calculator. The first is clicking the buttons in the UI (the graphics) The second method is to type characters using the keyboard. I have worked to make these input methods work seemlessly together

### Other Dialogs

If you have gotten to this point, you probably have found the File -> Help menu. That opened up this browser window. There are others though, and they have some unique functionalities that will be covered in this section of the documentation.

#### View -> Loaded Functions

This menu option opens up a dialog with only one feature, a list of functions. these functions can be used to perform specific mathematic operations and if you click on them, it will copy the function into your current equation.

### Advanced Usage

This section of the article is becoming largely deprecated, but may still be helpfull to those interested in some of the fine details of spycalc

Large Numbers

This section covers unreasonably large numbers, for example, the mass of the earth 5.9722×10²⁴ kg. This number would not fit into a normal python Integer so there are ways around that. spycalc uses E notation for such numbers, which you can learn about here. As of spycalc version 0.1.0 this has become automatically enforced by the equation interpretation system. large numbers may be written raw, or in E notation as shown below (example using earth's mass)->
normal: 597220000000000000000000
E notation: 5.9722e24

Ratios

*-* Not Yet Implemented
These will be helpfull for things like geometry, and are implemented in most geometry scripts, but are not supported in raw spycalc yet.

### Extending spycalc

* warning * for advanced users only, use at your own risk.
* warning * only for dev mode install of spycalc
This requires having installed spycalc through the "Development Mode". This will also require a previous knowledge of the python programming language, but is otherwise intended to be straight-forward enough for people of all skill levels to learn and use.

If you do not know python and would like to learn, visit the official website

#### Creating a new extension

Werever you have install spycalc, open the folder. In this folder are nested several folders. Enter src/spycalc/extenstions from within the spycalc root folder.

Now that you are in the extensions folder, create a new python file inside of it. the name of this file will be the name of your extension

#### Add code to your extension

in the extensions folder, there will be several files before you even get there, they are `__init__.py` (do not touch this one), and examples.py (you can modify this one). In your favorite text editor/ide, open example.py, and the python file that you created.

If you look inside the examples file, it is pretty simple, as I tried to make extending spycalc simple, and all you have to do is define a function as you would normally. (* note * try to make sure that the function name you are using does not already exist, as it can override other functions, or be overriden by pre-existing functions.)

#### Using your extension

Now you can restart spycalc, and under the View -> Loaded Functions dialog find your extension. If it is not there, or something has gone wrong, please try re-reading, and troubleshooting, and afterwards wether you find an answer or not post a problem, and/or a solution under the github page.