Commit Graph

3045 Commits

Author SHA1 Message Date
Léa Saviot
fe3d470d2d [liba] Fixed Gamma function bug.
There was a problem with the definition of ldexp, used in b_log__D.c

Change-Id: I83d012815e38b76efa730c1a3d259ec276e15f11
2017-11-17 14:05:23 +01:00
Léa Saviot
5cc9aa53f2 [python] Fixed underscore missing.
Change-Id: I58fb379c9ad070c15fb4d3487baa42f861c40b25
2017-11-17 14:05:23 +01:00
Léa Saviot
ce30428306 [escher] TextArea handles Paste event.
Change-Id: I33c0d21093f94edd987d7f4d2f7fd7363a1ee525
2017-11-17 14:05:23 +01:00
Léa Saviot
414e537969 [code] Empty console commands are not accepted.
Change-Id: Ie6affec97669312566c1b360bb2220f2c8723219
2017-11-17 14:05:23 +01:00
Léa Saviot
58e5e3c337 [escher] Fixed Toolbox bug.
The Toolbox did not always redraw itself when needed (for instance, when going
back from the For submenu in the Code Toolbox).

Change-Id: I157b883e321a497b4b958aae53c4e8406bad1725
2017-11-17 14:05:23 +01:00
Léa Saviot
59c840ef9a [code] Auto-indentation when inserting Toolbox items in scripts.
Change-Id: Id444ab91965999a3d322dee2fa58f73c86aa6992
2017-11-17 14:05:23 +01:00
Léa Saviot
4f74b6d849 [code] The addScript button disappears when needed.
When there is already the maximal number of scripts or when the
ScriptStore accordion buffer is full.

Change-Id: I0d43d42626da7f060a2309c66f1806b35a29bf38
2017-11-17 14:05:23 +01:00
Romain Goyet
024067d8a8 Python: Use MPZ 2017-11-17 12:00:35 +01:00
Léa Saviot
07bffe9069 [code] Increased memory allocated for scripts to 4096.
Change-Id: Ida0c3190e4aa21a2e373bf3d1561a97006c84e4b
2017-11-17 11:59:50 +01:00
Léa Saviot
4194165217 [apps] Fixed size_t / int comparison warnings.
Change-Id: I08bae0d687a52d708053c4279f68b42c5bb5d180
2017-11-17 11:59:50 +01:00
Léa Saviot
42e6435973 [code] Fixed Script edition cursor bugs.
The scroll is now reloaded when text is inserted or a new line is
entered. When opening a script, the cursor moves to the end of the
script.

Change-Id: I027ea80db485916fc3fc962cfa9e032ca0bbc81e
2017-11-17 11:59:50 +01:00
Léa Saviot
8668de21a1 [code] MathToolbox cleaning.
Removed some constants by computing the text to insert in the textfield from the command
with arguments. Used the TextToInsertForCommandMessage method from
toolbox_helpers.h.

Change-Id: I864ad886fb74882f476d74160e427595be27df40
2017-11-17 11:59:50 +01:00
Léa Saviot
13bf8c2d62 [code] Python toolbox.
Change-Id: I4028b05c662cae04a5ac3af5021f3438bb22dcd0
2017-11-17 11:59:50 +01:00
Léa Saviot
a19377ad5e [code] Default numbered script names (e.g. script1.py)
When the script name is empty after renaming a script, a default new name is
given. We look for the first available scriptI.py name, with 0<I<100.

Change-Id: If17f1df95c552320c0412ce652e7ae7e0cfd9cbc
2017-11-17 11:59:50 +01:00
Léa Saviot
2456c7eeba [code] Improved console command editing.
When the user scrolls the history, the draft command is not erased.
When pasting a previous command, the text is inserted at the cursor
location.

Change-Id: I1cd9645de74f34fad4ed0898203e05bd3352456a
2017-11-17 11:59:50 +01:00
Léa Saviot
0d6cb75425 [escher] Inlined TextField methods.
Change-Id: I2653bd3a97ba5c5a010f17ac3f7eb054013cd9d3
2017-11-17 11:59:50 +01:00
Léa Saviot
59d0e6dabf [code] Left/right navigation in the console history.
Change-Id: Ibbd534aa80f2f8dcb41d10e38f4abfcc7dbfd4a7
2017-11-17 11:59:50 +01:00
Léa Saviot
ce51228ca8 [escher/code] Changed Console and TitleBar margins.
Change-Id: I8ac4d84da84e0194122f34bb6259a1a7b6a1c81e
2017-11-17 11:59:50 +01:00
Léa Saviot
fbdf6379d8 [code] Script editor and Console are stacked.
Before, they appeared in modal views.

Change-Id: I42ea742370cd3cf0854965f67fc44b43db4cc309
2017-11-17 11:59:50 +01:00
Léa Saviot
eadf4a018a [escher] New handling of stack view headers in StackViewController.
A boolean in ViewController states if the ViewController wants MaximumSpace (do
not show any stack view headers), or if it does not want to add its own title to
the stack view headers. If the ViewController's title is null, it is not added
to the stack view headers.
By default, ButtonRowControllers do not want to add their title (because they
are only used for now in TabViews, where the title is already displayed in the
tab).

Change-Id: I9e4c64b845262e4d44eb03cf769950f9c9e67a3a
2017-11-17 11:59:50 +01:00
Léa Saviot
68e237702b [escher/apps] Factorization of Toolbox.
MathToolbox methods moved to its parent, Toolbox (in escher).
Node and ToolboxNode classes renamed MessageTree and ToolboxMessageTree.
They are now in escher/, not in apps/.

Change-Id: Ibb26b0e9016094cef79506a1e9fc6dfb492d7103
2017-11-17 11:59:50 +01:00
Léa Saviot
fc603df886 [code] Activate AlphaLock mode when renaming a script.
Default Alphalock mode when finishing or aborting edition.

Change-Id: I6455d5e18957c822de34271c53b64be43a5099ea
2017-11-17 11:59:50 +01:00
Léa Saviot
98f2db900c [apps] Cleaned useless functions for updating the title bar.
Change-Id: I119d1bd29aef1be4b65a9281d21400b81f801cc6
2017-11-17 11:59:50 +01:00
Léa Saviot
6ee47d6168 [code] Prevent script name extension edition.
Change-Id: I4ac8d032fd88b853670afeebaecc8d6fd5ef981d
2017-11-17 11:59:50 +01:00
Léa Saviot
95c6d9532b [escher] Fixed TextField.
A TextField delegate should process events before the TextField itself.
EditableCellTableViewController now verifies the position of the cursor to
determine if a Left or Right event should finish the TextField edition.

Change-Id: I6c8e78d6d02c7ab87e7d81770b4242a16fecde32
2017-11-17 11:59:50 +01:00
Léa Saviot
b7baec4a40 [code] Keyboard events translation, for script or command edition.
For instance, the "power" event should insert "**" in the text, not "^".
Added a universal i18n file in apps/code.

Change-Id: I5d067b0c5b86590af95aa98856522d54e42acba6
2017-11-17 11:59:50 +01:00
Léa Saviot
681be23c30 [code] Auto indentation in the script editor.
Change-Id: I7066c41fa53068e6f18a5ad226b5e72f591f02e2
2017-11-17 11:59:50 +01:00
Léa Saviot
239e702d37 [code] Navigation in the console history.
The user can copy previous commands or results, into the clipboard or in
the console prompt.

Change-Id: I280fff2d4937f4d17ab6c8907d6e5c359a322372
2017-11-17 11:59:50 +01:00
Léa Saviot
745eddfa05 [code] Added default Fibonacci script.
Change-Id: I2766fa542ee64722018486a874e9855a5976a788
2017-11-17 11:59:50 +01:00
Léa Saviot
35520fb3d4 [code] Scripts can be automatically imported when the console is opened.
Editing, renaming, deleting or changing the auto-importation of a script
triggers the reloading of the console (the history is cleared, Python
restarted and the scripts re-imported).

Change-Id: If8b933cc077ecd36cab09214b5e7a181aa3ae030
2017-11-17 11:59:50 +01:00
Léa Saviot
45aa526cd6 [code] Fixed SelectableTableView selection problem.
If adding a script fails, the selectableTableView should select the "Add
script" line.

Change-Id: I373cdfa0afcc334e4bf306b1cee4bfb817417980
2017-11-17 11:59:50 +01:00
Léa Saviot
fbb5c70339 [code] Cleaned Script and ScriptStore classes, created accordion.h
A Script object now contains its AutoImport marker, its name and its
content. The ScripStore methods have better names and the optimization
is cleaner.

Change-Id: I1b21af2d23f1c9a34f984309512b0c01b2f1c320
2017-11-17 11:59:50 +01:00
Léa Saviot
a14cfd0aea [code] Script names are displayed and can be edited.
Change-Id: I5acc468920b66673e78da130bf90a74d0c062211
2017-11-17 11:59:50 +01:00
Léa Saviot
68f368fcde [code] The user can delete scripts.
Change-Id: I1b60a4c79a58efe5213add1b1c5d60cdfe85c1e6
2017-11-17 11:59:50 +01:00
Léa Saviot
5de4b5cd67 [code] Each script has a name, stored in the accordeon buffer.
A script can now be imported in the console.
Moved all the MicroPython functions to python/port files.

Change-Id: I0a23e8cb20005719b800e81470e1c574c702c3b7
2017-11-17 11:59:50 +01:00
Léa Saviot
f3200fe2e9 [code] Program store that uses an accordeon buffer to store the
programs. The user can now add scripts.
A contextual menu displays various options when clicking on a script,
such as editing.

Change-Id: I124a17f7584b0beedb897e8499ca0a1bb6c13cbe
2017-11-17 11:59:50 +01:00
Léa Saviot
adabf95b59 [code] The interface is a list with a button at the bottom to
start the console.

Change-Id: I4a4a432db2d4cdc72e9a0ad7aa5904c1ded3c0e1
2017-11-17 11:59:50 +01:00
Léa Saviot
c57f9cf8b1 [code] The Python console compiles and executes commands entered.
It stores and displays the result in the console store.
An empty line returned at the end of the execution is deleted.

Change-Id: Ic90e02e2d91d0a0033413da0588032d9450aefd0
2017-11-17 11:59:50 +01:00
Léa Saviot
493cef0d4d [code] Python console that stores and displays commands that are
entered.

Change-Id: I0343c38b60f4bbea6dfab173e2b5f46f66b83251
2017-11-17 11:59:50 +01:00
Romain Goyet
9fa5ac0acf [python] Use the extended math functions 2017-11-17 11:59:49 +01:00
Romain Goyet
f265822792 [liba] Add extra math functions (erf erfc log2 logb tgamma rint scalb) 2017-11-17 11:59:49 +01:00
Romain Goyet
440813bdc3 [python] Switch to using doubles 2017-11-17 11:59:49 +01:00
Romain Goyet
0ca52e201f [liba] Add extra libm symbols (ldexp, fmod, trunc, atan2) 2017-11-17 11:59:49 +01:00
Romain Goyet
3adc5d9fac Use OpenBSD 4.9's libm
This version still has all the double function (and not the long-double
ones). And apart from this, it's virtually identical to the 6.0 code.
2017-11-17 11:59:49 +01:00
Romain Goyet
247ea217fa [python] Enable the cmath module 2017-11-17 11:59:49 +01:00
Romain Goyet
2283736dfe [python] Enable the math module 2017-11-17 11:59:49 +01:00
Romain Goyet
b9e83231e6 [liba] Add extra math functions (frexpf, modff, truncf) 2017-11-17 11:59:49 +01:00
Romain Goyet
cca0cad7aa Use AppVeyor 2017-11-12 02:10:19 +01:00
Romain Goyet
8a21f24309 Default to the mingw toolchain when building the simulator on Windows 2017-11-12 02:10:19 +01:00
Romain Goyet
e46d157fe6 Add a bridge for a missing alloca.h on windows 2017-11-12 02:10:19 +01:00