Émilie Feral
7a4ee746b2
[escher] TextField: call reinitDraftBuffer after edition is complete to
...
avoid erasing text that is required later.
Fix bug: OK handling on function list in linear mode did not copy the
function expression into the textfield before editing
2019-07-30 11:47:42 +02:00
Ruben Dashyan
44809f4b3f
Substitute Escher app() by Container::activeApp()
2019-07-19 15:06:25 +02:00
Ruben Dashyan
1a2a651f36
[apps] Replace app() by expressionFieldDelegateApp() in Calculation::EditExpressionController
2019-07-19 15:06:25 +02:00
Ruben Dashyan
3e992a3560
[apps] Replace app() by textFieldDelegateApp() in TextFieldDelegates
2019-07-19 15:06:25 +02:00
Ruben Dashyan
28f713e905
[apps/shared] Make App accessors const in delegates
2019-07-19 15:06:25 +02:00
Ruben Dashyan
9611133276
[apps] Factor Shared::TextFieldDelegateApp::isAcceptableText
2019-07-19 15:06:25 +02:00
Ruben Dashyan
ff887ec4a0
[apps/shared] Define static app() accessor in FunctionApp class
2019-07-19 15:06:25 +02:00
Ruben Dashyan
055d601854
[apps] Define TextFieldDelegate::textFieldDelegateApp() directly from ::app()
2019-07-19 15:06:25 +02:00
Ruben Dashyan
5058f64163
[apps] Define LayoutFieldDelegate::expressionFieldDelegateApp() directly from ::app()
2019-07-19 15:06:25 +02:00
Ruben Dashyan
0490e3ab81
[apps] Define InputEventHandlerDelegate::inputEventHandlerDelegateApp() directly from ::app()
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
62cec10b46
[apps] Clean unnecessary AppsContainer class declarations and header inclusions
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
Ruben Dashyan
eb3da7f395
[apps] Substitute "app()->container()" by "AppsContainer::sharedAppsContainer()"
2019-07-19 15:06:25 +02:00
Ruben Dashyan
3546788573
[apps/shared/input_event_handler_delegate_app] Simpler (and protected) access to AppsContainer *
2019-07-19 15:06:25 +02:00
Ruben Dashyan
9a25249088
[apps/shared/store_controller] Simpler access to AppsContainer *
2019-07-19 15:06:25 +02:00
Émilie Feral
7891cf4182
[apps/shared] Fix ExpressionListController: the cell heights memoization
...
was corrupted
2019-07-11 10:43:59 +02:00
Émilie Feral
fb80cd3271
[apps] Object contained in the Storage might be unaligned. Make sure to
...
use emscripten unaligned type to avoid producing an alignment error on
emscripten platform.
2019-06-19 09:54:57 +02:00
Émilie Feral
cd688ab9cf
[apps] Force packing classes of objects contained in the Storage
...
If these classes are padded, we lose space in the Storage and the
Storage::checksum is computed on uninitialized values (corresponding to
the padding memory spaces)
2019-06-19 09:54:57 +02:00
Émilie Feral
0b8fddf576
[solver] Reinitialize selected subcell when changing displayed layouts
2019-06-17 15:10:40 -04:00
Émilie Feral
3b25398e6e
[shared] ScrollableExactApproximateExpressionsView: reloadScroll when
...
displayed layouts have changed
2019-06-17 15:10:40 -04:00
Émilie Feral
709a7028e8
[shared] BannerView: add an assertion to avoid deferencing nullptr
2019-06-17 10:20:25 +02:00
Léa Saviot
a886c0fb32
[apps/shared] Share PadWithSpaces method
2019-06-14 09:31:46 -04:00
Léa Saviot
f5cdf95bc5
[apps/banner_view] Replace assert with escape case
2019-05-03 15:54:22 +02:00
Léa Saviot
28133f378e
[apps] Remove wrong withinTemporarySelection escape cases
...
Scenario:
Sequence app, add new sequence, go on its name, backspace: the cell on
the left of Add new sequence is selected, but it should not
2019-05-03 15:54:22 +02:00
Léa Saviot
a6cf1498da
[apps/text_field_delegate_app] default XNT() is 'x'
2019-05-03 15:54:22 +02:00
Léa Saviot
d97d5d40f5
[apps/cartesian_function] Fix derivative name display
...
Scenario: f(x) = x, go to the Values tab of the Graph app, display the
derivative, there is a roblem with UTF8
2019-05-03 15:54:22 +02:00
Ruben Dashyan
e53b0e6bba
[apps/shared] Clean CurveViewCursor coordinate getters
2019-05-03 15:54:22 +02:00
Ruben Dashyan
0e1c1a017d
[apps] Implement TextFieldDelegate methods in GraphControllers
2019-05-03 15:54:22 +02:00
Ruben Dashyan
0f98face6a
[apps] Define InteractiveCurveViewController::selectedCurveIndex
2019-05-03 15:54:22 +02:00
Ruben Dashyan
3d71397949
[apps/shared] XYBannerView contains a TextField
2019-05-03 15:54:22 +02:00
Ruben Dashyan
5ff19a2506
[apps] Define Font, Text/BackgroundColor BannerView static methods
2019-05-03 15:54:21 +02:00
Ruben Dashyan
339258a29d
[apps/shared] Add LineSpacing to BannerView
2019-05-03 15:54:21 +02:00
Ruben Dashyan
26d59bbd74
[apps/shared] Simplify BannerView methods
2019-05-03 15:54:21 +02:00
Ruben Dashyan
4d640e2916
[apps] XYBannerView: prepare constructor so the class may contain TextField
2019-05-03 15:54:21 +02:00
Ruben Dashyan
ba6282be45
[apps/shared] Remove InteractiveCurveViewController::didEnterResponderChain
...
In order to avoid reloading after Ion::Events::Toolbox/Var, but only in
viewWillAppear.
The previous behavior was masking a bug in
Regression::GraphController::viewWillAppear where the cursor could be
moved after reloading the bannerView.
2019-05-03 15:54:21 +02:00
Ruben Dashyan
a8650f7191
[apps/shared] SimpleInteractiveCurveViewController inherits from TextFieldDelegate
2019-05-03 15:54:21 +02:00
Ruben Dashyan
7b5c891f44
[apps/shared] Clean InteractiveCurveViewController::handleEvent
2019-05-03 15:54:21 +02:00
Ruben Dashyan
94cf542ba3
[apps] Factorize InteractiveCurveViewController::moveCursorVertically
2019-05-03 15:54:21 +02:00
Ruben Dashyan
f6ceae3b8b
[apps] Factorize SimpleInteractiveCurveView::moveCursorHorizontally
2019-05-03 15:54:21 +02:00
Ruben Dashyan
67f9f79322
[apps] Implement InteractiveCurveViewController::isCursorVisible
...
It was a pure virtual method implemented in derived classes
Shared::FunctionGraphController,
Regression::GraphController.
InteractiveCurveViewRange does not need anymore to hold CurveViewCursor
* m_cursor.
2019-05-03 15:54:21 +02:00
Ruben Dashyan
8629254d9a
[apps] Remove Shared::InteractiveCurveViewController::displayTop/BottomMarginRatio
...
and replace it by the existing cursorTop/BottomMarginRatio.
There was absolutely no reason to use different margin values.
2019-05-03 15:54:21 +02:00
Ruben Dashyan
8658538938
[apps/shared] Clarify InteractiveCurveViewController::k_viewHeight constexpr
2019-05-03 15:54:21 +02:00
Ruben Dashyan
d8f97d62a4
[apps] Factorize Shared::InteractiveCurveViewController methods
...
cursorBottomMarginRatio(), displayBottomMarginRatio(),
estimatedBannerHeight() and k_viewHeight moved to
Shared::InteractiveCurveViewController from derived classes.
estimatedBannerNumberOfLines() moved from
Shared::FunctionGraphController to
Shared::InteractiveCurveViewController and implemented in
Regresssion::GraphController.
2019-05-03 15:54:21 +02:00
Ruben Dashyan
e32419ce63
[apps/shared/interactive_curve_view_controller] InteractiveCurveViewRangeDelegate methods made private
2019-05-03 15:54:21 +02:00
Ruben Dashyan
0b2ab14ced
[apps/shared] Fix a typo in FunctionGraphController
...
Introduced in commit
[shared] Factorize GraphController::initCursorParameters of Graph and Sequence
2019-05-03 15:54:21 +02:00
Ruben Dashyan
e13651f6fb
[apps] Remove Shared::InteractiveCurveViewController::initRangeParameters virtual method
2019-05-03 15:54:21 +02:00
Ruben Dashyan
51bd3312f5
[apps/shared] Clean FunctionGraphController::initRangeParameters()
...
The method is exactly called once, by
InteractiveCurveViewController::viewWillAppear, which also calls
initCursorParameters afterwards, which in turn calls
selectFunctionWithCursor. Hence the removed lines were redundant.
2019-05-03 15:54:21 +02:00
Ruben Dashyan
e7add02912
[apps] Remove FunctionGraphController::cursorView() virtual method
...
It was implemented by the Graph and Sequence GraphController derived
classes and was used
1) in FunctionGraphController::viewWillAppear to set the cursorView
specific to each derived class,
2) in FunctionGraphController::cursor/displayBottomMarginRatio()
methods.
Instead
1) the viewWillAppear method of each derived classes sets its
cursorView itself
2) one may already get the cursorView through curveView().
2019-05-03 15:54:21 +02:00