Commit Graph

886 Commits

Author SHA1 Message Date
Émilie Feral
c7566cadf9 [apps/shared] Fix ExpressionListController: the cell heights memoization
was corrupted
2019-07-12 16:37:20 +02:00
Émilie Feral
8b65514bc1 [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-21 15:47:48 -04:00
Émilie Feral
7c813965bf [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-21 15:47:48 -04:00
Émilie Feral
a13d6daab8 [solver] Reinitialize selected subcell when changing displayed layouts 2019-06-17 15:38:53 -04:00
Émilie Feral
fbe0a0ca3e [shared] ScrollableExactApproximateExpressionsView: reloadScroll when
displayed layouts have changed
2019-06-17 15:38:53 -04:00
Émilie Feral
7d2f69821a [shared] BannerView: add an assertion to avoid deferencing nullptr 2019-06-17 15:38:53 -04:00
Léa Saviot
453c43967d [apps/shared] Share PadWithSpaces method 2019-06-17 15:38:53 -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
Ruben Dashyan
5b6fca8f72 [apps] Replace k_cursorTop/BottomMarginRatio by virtual methods
In SimpleInteractiveCurveViewController subclasses.
2019-05-03 15:54:21 +02:00
Ruben Dashyan
fe977bdc07 [apps/graph/graph] CalculationGraphController inherits from SimpleInteractiveCurveViewController 2019-05-03 15:54:21 +02:00
Ruben Dashyan
ce712eac53 [apps/shared] Clean SimpleInteractiveCurveViewController constructor 2019-05-03 15:54:21 +02:00
Ruben Dashyan
82a0f72d42 [apps/shared] Clean FunctionCurveParameterController constructor 2019-05-03 15:54:21 +02:00
Ruben Dashyan
696434d38a [apps] GoToParameterController: remove ForbiddenValue warnings
when the controller tries to move the cursor beyond the limit of 1E8.
2019-05-03 15:54:21 +02:00
Ruben Dashyan
82685cb371 [apps] Factorize portions checking whether text approximates to double 2019-05-03 15:54:21 +02:00
Ruben Dashyan
5e5e07e963 [apps/shared] Factorize Store/ValuesController::textFieldDidFinishEditing 2019-05-03 15:54:21 +02:00
Ruben Dashyan
a400a5024b [apps/shared] Implement SumGraphController::reloadBannerView 2019-05-03 15:54:21 +02:00
Ruben Dashyan
e47ab69e53 [apps/shared] Implement SumGraphController::handleLeftRightEvent 2019-05-03 15:54:21 +02:00
Ruben Dashyan
211ae05667 [apps/shared] Clean SumGraphController 2019-05-03 15:54:21 +02:00
Ruben Dashyan
355e42734d [apps] Replace BannerView::set(Legend|Message)AtIndex by getters 2019-05-03 15:54:21 +02:00
Ruben Dashyan
205ae8fec5 [apps] Remove BannerView::messageTextViewAtIndex method 2019-05-03 15:54:21 +02:00
Ruben Dashyan
51c36c8f86 [apps/shared] FunctionBannerDelegate::bannerView() returns a XYBannerView * 2019-05-03 15:54:21 +02:00
Ruben Dashyan
0d34923dd1 [apps] Graph/Regression/Sequence::BannerView inherit from new Shared::XYBannerView 2019-05-03 15:54:21 +02:00
Ruben Dashyan
236b752f4f [apps] replace BannerView::textViewAtIndex by subviewAtIndex 2019-05-03 15:54:21 +02:00
Ruben Dashyan
513a4cf852 [apps] BannerView::numberOfSubviews
Shared::BannerView::numberOfSubviews made pure virtual.
Define constexpr attributes instead of magic numbers.
Move numberOfSubviews to header file.
2019-05-03 15:54:21 +02:00
Émilie Feral
2217eebaec [escher] SelectableTableView: when reloading data, we temporary deselect
the table. We warn the SelectableTableViewDelegate that the selection
change is 'within a temporary selection change' when notifying it of the
change.
2019-05-03 15:54:21 +02:00