Commit Graph

66 Commits

Author SHA1 Message Date
Léa Saviot
538bb5e5d2 [apps/graph] Do not take into account the sum/integral in XNT
Otherwise, it is impossible to use theta inside a sum in a polar
function
Example: f(theta) = sum(n*theta,0,4) cannot be written
2019-09-20 14:30:36 +02:00
Émilie Feral
ed2a15dd03 [apps/graph] Enable infinite values as domain bounds for cartesian
functions
2019-09-03 16:21:28 +02:00
Émilie Feral
ecfe626520 [apps/shared] Remove useless method storeExpressionAllowed 2019-09-03 13:36:19 +02:00
Émilie Feral
6de497c2ed [apps/shared] Templatize FloatParameterController to handle float/double
parameters.

Fix bug: when entering "e^234" as a parameter of a model keeping floats,
the FloatParameterController would accept the number (because e^234 is
defined in double) and store an undefined value in the model (because
e^234 is undefined in float).
2019-09-02 16:55:39 +02:00
Ruben Dashyan
82951b0672 [apps] App::XNT() returns a CodePoint instead of a char 2019-08-29 11:07:22 +02:00
Léa Saviot
61cf762eef [poincare] Expression::ReductionContext 2019-08-08 16:29:37 +02:00
Ruben Dashyan
9611133276 [apps] Factor Shared::TextFieldDelegateApp::isAcceptableText 2019-07-19 15:06:25 +02:00
Romain Goyet
45875dd642 [escher] Make app() a global function
This way it can easily be reached by anyone, including non-responders.
And it can easily be overwritten in namespaced apps.
2019-07-19 15:06:25 +02:00
Ruben Dashyan
1f06819974 [apps] Remove Container * parameter from all App constructors 2019-07-19 15:06:25 +02:00
Ruben Dashyan
d04d414315 [apps] Remove InputEventHandlerDelegateApp::container() 2019-07-19 15:06:25 +02:00
Léa Saviot
a6cf1498da [apps/text_field_delegate_app] default XNT() is 'x' 2019-05-03 15:54:22 +02:00
Ruben Dashyan
82685cb371 [apps] Factorize portions checking whether text approximates to double 2019-05-03 15:54:21 +02:00
Léa Saviot
b360639e4e [apps/text_field_delegate_app] Fix XNT in a sum layout
It was broken by a blunder while swithching to UTF8
2019-05-03 15:54:20 +02:00
Léa Saviot
bbb10f1993 [ion/kandinsky] Move unicode to ion 2019-05-03 15:53:19 +02:00
Léa Saviot
65e5adafac Remove Ion::Charset 2019-05-03 15:53:19 +02:00
Léa Saviot
53e4a290f7 [poincare] Rename Expression:parse in Parse 2018-11-23 12:04:09 +01:00
Léa Saviot
58f73dc367 [apps] Handle uninitialized expression in ExpressionCanBeSerialized 2018-11-23 12:04:09 +01:00
Léa Saviot
33676e915a [apps] Check that serialized expression is not too long in Graph 2018-11-23 12:04:09 +01:00
Léa Saviot
f5586b3d36 [apps] Clean the syntax error warning displaying 2018-11-23 12:04:09 +01:00
Léa Saviot
f6804c2d67 [apps] Use ExpressionFieldDelegateApp methods in Calculation::App
For methods textFieldDidReceiveEvent and layoutFieldDidReceiveEvent
2018-11-23 12:04:08 +01:00
Léa Saviot
48d281e44d [apps] Do not allow store expressions except in Calculation 2018-11-23 12:04:08 +01:00
Léa Saviot
fbe4c14d0d [apps] Prevent function defined as a store
For instance, from the Graph application, one should not be able to
defined f(x) as 3->g(x)
2018-11-23 12:04:04 +01:00
Émilie Feral
0a823da78c [escher] Variable box pop-up is handle as Toolbox pop-up by asking
InputEventHandlerDelegate
2018-11-23 12:04:03 +01:00
Émilie Feral
698332c355 [escher] InputTextDelegate and LayoutFieldDelegate don't inherit from
InputTextDelegate to avoid diamond inheritance
2018-11-23 12:04:03 +01:00
Émilie Feral
7778c694d1 [escher] Create an InputEventHandlerDelegate that gives the toolbox to
be used by an InputEventHandler
2018-11-23 12:04:02 +01:00
Émilie Feral
01e433a9f2 [escher] Clean Field and Input class hierarchy:
Class hierarchy:
- InputEventHandler
- TextInput
- EditableField derives from InputEventHandler
- LayoutField, TextField and ExpressioField derives from EditableField
- TextArea and TextField derives from TextInput
2018-11-23 12:04:02 +01:00
Émilie Feral
3a3a17b3ce [shared] Factorize ExpressionFieldDelegateApp and TextFieldDelegateApp 2018-11-23 12:03:59 +01:00
Émilie Feral
cf68a9ed18 [shared] Change TextFieldDelegateApp::XNT() signature 2018-11-23 12:03:59 +01:00
Émilie Feral
a93e9566ad [escher] Create a parent class Field of TextField and
LayoutField
2018-11-23 12:03:59 +01:00
Émilie Feral
cb900d9560 [shared] Factorize code between ExpressionFieldDelegateApp and
TextFieldDelegateApp
2018-11-23 12:03:59 +01:00
Léa Saviot
71c807b565 [poincare] Node->isDefined becomes !Node->isUninitialized 2018-08-14 16:40:12 +02:00
Émilie Feral
17e63a5b07 [shared] Fix references to Poincare 2018-08-10 13:18:46 +02:00
Léa Saviot
a27963597b [apps] More generic VariableBoxController methods
Before, the class differentiated between TextField and
ExpressionLayoutField

Change-Id: I1fce8bb650a0bfccb11ddf61d05335e452374abb
2018-04-25 13:58:42 +02:00
Léa Saviot
13ae1d2545 [apps/escher/toolbox] handleEventWithText for all responders.
This makes the code in the various toolbox more generic. The arguments
of the text to insert are each replaced by a Ion::Charset::Empty.
These Empty chars are used to create layouts in ExpressionLayoutFields,
and to compute the position of the cursor in other fields, before being
removed.

Change-Id: Ie81c1e394b06fef2ab801ccff919d6550f70ec30
2018-04-23 17:18:48 +02:00
Léa Saviot
c4b5d4cf40 Merge branch 'SaisieJolieRebase1201' into SaisieJolieMerge10Apr
Change-Id: I802dbb9f7c0eebf75a1b6cd21ddd194e89b53752
2018-04-10 17:21:54 +02:00
Émilie Feral
aade7cb2fe [escher] Create a class TextInput (from which derived TextField,
TextArea)
2018-03-22 13:12:12 +01:00
Émilie Feral
576caa039f [apps][escher] Add methods 'handleEventWithText' in TextField and
TextArea to fix bug in probability (adding a toolbox text from the
calculations controller)
2018-03-22 13:12:12 +01:00
Léa Saviot
3154decf8b [apps] Fixed bug in MathToolbox.
When returning a MathToolbox, the textfield delegate did not set the
toolbox action for textfields.

Change-Id: I51f78ff5601f784be8e283cf3fb6d3462b776d9a
2018-01-17 14:26:58 +01:00
Léa Saviot
1d701f3305 [apps] Handle EditableExpressionView in VariableBoxController.
Change-Id: Ibd5f1b1a8999241c8aa818a075f48adb28c4032e
2018-01-16 16:43:40 +01:00
Léa Saviot
e43bbd38f2 [escher] Fixed TextField bug.
The Statistics apps crashed when navigating the Data table.
 -> Check that the textfield is editing before calling
textFieldShouldFinishEditing.
 -> Changed textLength() to draftTextLength().

Change-Id: Id373a7cd50438303f470abc5bcee7a795c33926a
2017-12-01 13:19:30 +01:00
Romain Goyet
52bdf4a41f Merge branch 'cas_with_app_copy' into python_console 2017-11-21 18:44:38 +01:00
Jacob Young
17ac54cad5 Use cmath in c++ files. 2017-10-13 18:08:15 +02:00
Émilie Feral
5bce67098b [apps] Clean warnings
Change-Id: I9efc803edac4103faafb264849bdb9283640a52b
2017-09-27 09:46:19 +02:00
Émilie Feral
a5ca0f93bf [poincare] Throw a bison error when functions have wrong number of
arguments

Change-Id: I33f0a9b7cad3b1fde2df25ecfdc568187b79f248
2017-09-22 14:23:15 +02:00
Jacob Young
dcbc860b6d Fallback to X in non-graphing apps since x and n are not usable. 2017-09-20 11:08:07 +02:00
Jacob Young
128a6acb32 Fix #72 by choosing what to insert for the [x,n,t] key based on where in the expression the cursor is. 2017-09-20 11:08:07 +02:00
Émilie Feral
f96a4556aa [apps/sequence][apps/graph] Switch to editing the function after event
'toolbox' or 'variables'

Change-Id: Iaa7b04871c4a74abf2ddcfc5905804448c7a44a4
2017-05-31 11:54:54 +02:00
Émilie Feral
71284311bb [escher] [apps] Implement app snapshot
Change-Id: I24d7eed7cef964af8be1c85222e758c297dc0da1
2017-05-18 14:16:41 +02:00
Émilie Feral
06de0dd9db [escher] Only one app is on the heap at one time
Change-Id: I6c77601cb0cc883083a4dd05370ca543fa7951cc
2017-05-18 14:16:41 +02:00
Émilie Feral
a40dcc9af2 [escher] Correct Metric
Change-Id: Iaef3b5654ba5209eadc2a9726f7206f59df73a32
2017-05-10 17:09:22 +02:00