diff --git a/apps/graph/values/values_controller.cpp b/apps/graph/values/values_controller.cpp index 9a2a34ad4..e220b1042 100644 --- a/apps/graph/values/values_controller.cpp +++ b/apps/graph/values/values_controller.cpp @@ -9,7 +9,7 @@ using namespace Poincare; namespace Graph { ValuesController::ValuesController(Responder * parentResponder, InputEventHandlerDelegate * inputEventHandlerDelegate, Interval * interval, ButtonRowController * header) : - Shared::ValuesController(parentResponder, inputEventHandlerDelegate, header, I18n::Message::X, &m_intervalParameterController, interval), + Shared::ValuesController(parentResponder, inputEventHandlerDelegate, header, &m_intervalParameterController, interval), m_functionTitleCells{}, m_floatCells{}, m_functionParameterController(this), @@ -113,6 +113,10 @@ ViewController * ValuesController::functionParameterController() { return &m_functionParameterController; } +I18n::Message ValuesController::valuesParameterControllerPageTitle() const { + return I18n::Message::X; +} + double ValuesController::evaluationOfAbscissaAtColumn(double abscissa, int columnIndex) { bool isDerivative = false; Ion::Storage::Record record = recordAtColumn(columnIndex, &isDerivative); diff --git a/apps/graph/values/values_controller.h b/apps/graph/values/values_controller.h index 2a8f9ee5e..fdad44d2c 100644 --- a/apps/graph/values/values_controller.h +++ b/apps/graph/values/values_controller.h @@ -30,6 +30,7 @@ private: Shared::BufferFunctionTitleCell * functionTitleCells(int j) override; EvenOddBufferTextCell * floatCells(int j) override; ViewController * functionParameterController() override; + I18n::Message valuesParameterControllerPageTitle() const override; Shared::BufferFunctionTitleCell m_functionTitleCells[k_maxNumberOfFunctions]; EvenOddBufferTextCell m_floatCells[k_maxNumberOfCells]; diff --git a/apps/sequence/values/values_controller.cpp b/apps/sequence/values/values_controller.cpp index 3de95ae84..a8c9e28db 100644 --- a/apps/sequence/values/values_controller.cpp +++ b/apps/sequence/values/values_controller.cpp @@ -7,7 +7,7 @@ using namespace Shared; namespace Sequence { ValuesController::ValuesController(Responder * parentResponder,InputEventHandlerDelegate * inputEventHandlerDelegate, Interval * interval, ButtonRowController * header) : - Shared::ValuesController(parentResponder, inputEventHandlerDelegate, header, I18n::Message::NColumn, &m_intervalParameterController, interval), + Shared::ValuesController(parentResponder, inputEventHandlerDelegate, header, &m_intervalParameterController, interval), m_sequenceTitleCells{}, m_floatCells{}, #if COPY_COLUMN @@ -82,4 +82,8 @@ ViewController * ValuesController::functionParameterController() { #endif } +I18n::Message ValuesController::valuesParameterControllerPageTitle() const { + return I18n::Message::NColumn; +} + } diff --git a/apps/sequence/values/values_controller.h b/apps/sequence/values/values_controller.h index 090cec7c1..2faaf05cf 100644 --- a/apps/sequence/values/values_controller.h +++ b/apps/sequence/values/values_controller.h @@ -26,6 +26,7 @@ private: EvenOddBufferTextCell * floatCells(int j) override; SequenceStore * functionStore() const override { return static_cast(Shared::ValuesController::functionStore()); } ViewController * functionParameterController() override; + I18n::Message valuesParameterControllerPageTitle() const override; #if COPY_COLUMN Shared::ValuesFunctionParameterController m_sequenceParameterController; #endif diff --git a/apps/shared/values_controller.cpp b/apps/shared/values_controller.cpp index ac649bede..7e492cf13 100644 --- a/apps/shared/values_controller.cpp +++ b/apps/shared/values_controller.cpp @@ -8,7 +8,7 @@ using namespace Poincare; namespace Shared { -ValuesController::ValuesController(Responder * parentResponder, InputEventHandlerDelegate * inputEventHandlerDelegate, ButtonRowController * header, I18n::Message parameterTitle, IntervalParameterController * intervalParameterController, Interval * interval) : +ValuesController::ValuesController(Responder * parentResponder, InputEventHandlerDelegate * inputEventHandlerDelegate, ButtonRowController * header, IntervalParameterController * intervalParameterController, Interval * interval) : EditableCellTableViewController(parentResponder), ButtonRowDelegate(header, nullptr), m_interval(interval), @@ -17,7 +17,7 @@ ValuesController::ValuesController(Responder * parentResponder, InputEventHandle m_selectableTableView(this), m_abscissaTitleCell(), m_abscissaCells{}, - m_abscissaParameterController(this, intervalParameterController, parameterTitle), + m_abscissaParameterController(this, intervalParameterController), m_setIntervalButton(this, I18n::Message::IntervalSet, Invocation([](void * context, void * sender) { ValuesController * valuesController = (ValuesController *) context; StackViewController * stack = ((StackViewController *)valuesController->stackController()); @@ -88,6 +88,7 @@ bool ValuesController::handleEvent(Ion::Events::Event event) { if ((event == Ion::Events::OK || event == Ion::Events::EXE) && selectedRow() == 0) { ViewController * parameterController = nullptr; if (typeAtLocation(selectedColumn(), 0) == 0) { + m_abscissaParameterController.setPageTitle(valuesParameterControllerPageTitle()); parameterController = &m_abscissaParameterController; } else { parameterController = functionParameterController(); diff --git a/apps/shared/values_controller.h b/apps/shared/values_controller.h index 46e8e5a43..ae839680c 100644 --- a/apps/shared/values_controller.h +++ b/apps/shared/values_controller.h @@ -15,7 +15,7 @@ namespace Shared { class ValuesController : public EditableCellTableViewController, public ButtonRowDelegate, public AlternateEmptyViewDefaultDelegate { public: - ValuesController(Responder * parentResponder, InputEventHandlerDelegate * inputEventHandlerDelegate, ButtonRowController * header, I18n::Message parameterTitle, IntervalParameterController * intervalParameterController, Interval * interval); + ValuesController(Responder * parentResponder, InputEventHandlerDelegate * inputEventHandlerDelegate, ButtonRowController * header, IntervalParameterController * intervalParameterController, Interval * interval); const char * title() override; Interval * interval(); int numberOfColumns() override; @@ -71,6 +71,7 @@ private: virtual EvenOddBufferTextCell * floatCells(int j) = 0; EvenOddEditableTextCell m_abscissaCells[k_maxNumberOfAbscissaCells]; virtual ViewController * functionParameterController() = 0; + virtual I18n::Message valuesParameterControllerPageTitle() const = 0; ValuesParameterController m_abscissaParameterController; Button m_setIntervalButton; }; diff --git a/apps/shared/values_parameter_controller.cpp b/apps/shared/values_parameter_controller.cpp index 88b1d2fe1..e6c6e0bf4 100644 --- a/apps/shared/values_parameter_controller.cpp +++ b/apps/shared/values_parameter_controller.cpp @@ -3,9 +3,8 @@ namespace Shared { -ValuesParameterController::ValuesParameterController(Responder * parentResponder, IntervalParameterController * intervalParameterController, I18n::Message title) : +ValuesParameterController::ValuesParameterController(Responder * parentResponder, IntervalParameterController * intervalParameterController) : ViewController(parentResponder), - m_pageTitle(title), m_deleteColumn(I18n::Message::Default), #if COPY_COLUMN m_copyColumn(I18n::Message::Default), diff --git a/apps/shared/values_parameter_controller.h b/apps/shared/values_parameter_controller.h index 9fbe48078..a6a918fd7 100644 --- a/apps/shared/values_parameter_controller.h +++ b/apps/shared/values_parameter_controller.h @@ -7,10 +7,10 @@ namespace Shared { class ValuesParameterController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDataSource { public: - ValuesParameterController(Responder * parentResponder, IntervalParameterController * intervalParameterController, I18n::Message title); - + ValuesParameterController(Responder * parentResponder, IntervalParameterController * intervalParameterController); View * view() override; const char * title() override; + void setPageTitle(I18n::Message pageTitle) { m_pageTitle = pageTitle; } bool handleEvent(Ion::Events::Event event) override; void willDisplayCellForIndex(HighlightCell * cell, int index) override; void didBecomeFirstResponder() override;