diff --git a/apps/graph/graph/tangent_graph_controller.cpp b/apps/graph/graph/tangent_graph_controller.cpp index c7af689c6..4c7808c8b 100644 --- a/apps/graph/graph/tangent_graph_controller.cpp +++ b/apps/graph/graph/tangent_graph_controller.cpp @@ -61,7 +61,7 @@ void TangentGraphController::reloadBannerView() { if (m_record.isNull()) { return; } - FunctionBannerDelegate::reloadBannerViewForCursorOnFunction(m_cursor, m_record, app()->functionStore(), CartesianFunction::Symbol()); + FunctionBannerDelegate::reloadBannerViewForCursorOnFunction(m_cursor, m_record, Shared::FunctionApp::app()->functionStore(), CartesianFunction::Symbol()); GraphControllerHelper::reloadDerivativeInBannerViewForCursorOnFunction(m_cursor, m_record); constexpr size_t bufferSize = FunctionBannerDelegate::k_maxNumberOfCharacters+PrintFloat::bufferSizeForFloatsWithPrecision(Constant::LargeNumberOfSignificantDigits); char buffer[bufferSize]; diff --git a/apps/sequence/list/list_controller.cpp b/apps/sequence/list/list_controller.cpp index b7cf89ec3..dad72cdd7 100644 --- a/apps/sequence/list/list_controller.cpp +++ b/apps/sequence/list/list_controller.cpp @@ -107,7 +107,7 @@ void ListController::editExpression(int sequenceDefinition, Ion::Events::Event e // Replace UCodePointUnknownN with 'n' replaceUnknownSymbolWithReadableSymbol(initialText); } - InputViewController * inputController = app()->inputViewController(); + InputViewController * inputController = Shared::FunctionApp::app()->inputViewController(); // Invalidate the sequences context cache app()->localContext()->resetCache(); switch (sequenceDefinition) { diff --git a/apps/shared/function_app.h b/apps/shared/function_app.h index 687e6185a..932ed30dd 100644 --- a/apps/shared/function_app.h +++ b/apps/shared/function_app.h @@ -30,7 +30,10 @@ public: uint32_t m_modelVersion; uint32_t m_rangeVersion; Poincare::Preferences::AngleUnit m_angleUnitVersion; - }; + }; + static FunctionApp * app() { + return static_cast(::app()); + } virtual ~FunctionApp() = default; virtual FunctionStore * functionStore() { return static_cast(snapshot())->functionStore(); } virtual InputViewController * inputViewController() = 0; diff --git a/apps/shared/function_go_to_parameter_controller.cpp b/apps/shared/function_go_to_parameter_controller.cpp index 73fbbee44..153bd3df7 100644 --- a/apps/shared/function_go_to_parameter_controller.cpp +++ b/apps/shared/function_go_to_parameter_controller.cpp @@ -22,7 +22,7 @@ double FunctionGoToParameterController::parameterAtIndex(int index) { bool FunctionGoToParameterController::setParameterAtIndex(int parameterIndex, double f) { assert(parameterIndex == 0); - FunctionApp * myApp = (FunctionApp *)app(); + FunctionApp * myApp = FunctionApp::app(); ExpiringPointer function = myApp->functionStore()->modelForRecord(m_record); float y = function->evaluateAtAbscissa(f, myApp->localContext()); m_cursor->moveTo(f, y); diff --git a/apps/shared/function_graph_controller.cpp b/apps/shared/function_graph_controller.cpp index 4a272e247..5c1b876bd 100644 --- a/apps/shared/function_graph_controller.cpp +++ b/apps/shared/function_graph_controller.cpp @@ -111,8 +111,7 @@ double FunctionGraphController::defaultCursorAbscissa() { } FunctionStore * FunctionGraphController::functionStore() const { - FunctionApp * myApp = static_cast(app()); - return myApp->functionStore(); + return FunctionApp::app()->functionStore(); } void FunctionGraphController::initCursorParameters() { diff --git a/apps/shared/function_list_controller.cpp b/apps/shared/function_list_controller.cpp index c2e9dee28..e6dc2d9fb 100644 --- a/apps/shared/function_list_controller.cpp +++ b/apps/shared/function_list_controller.cpp @@ -249,13 +249,11 @@ TabViewController * FunctionListController::tabController() const { } FunctionStore * FunctionListController::modelStore() { - FunctionApp * myApp = static_cast(app()); - return myApp->functionStore(); + return FunctionApp::app()->functionStore(); } InputViewController * FunctionListController::inputController() { - FunctionApp * myApp = static_cast(app()); - return myApp->inputViewController(); + return FunctionApp::app()->inputViewController(); } KDCoordinate FunctionListController::maxFunctionNameWidth() { diff --git a/apps/shared/list_parameter_controller.cpp b/apps/shared/list_parameter_controller.cpp index 567fa053c..479d13741 100644 --- a/apps/shared/list_parameter_controller.cpp +++ b/apps/shared/list_parameter_controller.cpp @@ -112,8 +112,7 @@ ExpiringPointer ListParameterController::function() { } FunctionStore * ListParameterController::functionStore() { - FunctionApp * a = static_cast(app()); - return a->functionStore(); + return FunctionApp::app()->functionStore(); } diff --git a/apps/shared/sum_graph_controller.cpp b/apps/shared/sum_graph_controller.cpp index 559809812..b08914e53 100644 --- a/apps/shared/sum_graph_controller.cpp +++ b/apps/shared/sum_graph_controller.cpp @@ -66,7 +66,7 @@ bool SumGraphController::handleEvent(Ion::Events::Event event) { } bool SumGraphController::moveCursorHorizontallyToPosition(double x) { - FunctionApp * myApp = static_cast(app()); + FunctionApp * myApp = FunctionApp::app(); assert(!m_record.isNull()); ExpiringPointer function = myApp->functionStore()->modelForRecord(m_record); double y = function->evaluateAtAbscissa(x, myApp->localContext()); @@ -138,7 +138,7 @@ void SumGraphController::reloadBannerView() { double result; Poincare::Layout functionLayout; if (m_step == Step::Result) { - FunctionApp * myApp = static_cast(app()); + FunctionApp * myApp = FunctionApp::app(); assert(!m_record.isNull()); ExpiringPointer function = myApp->functionStore()->modelForRecord(m_record); result = function->sumBetweenBounds(m_startSum, m_endSum, myApp->localContext()); diff --git a/apps/shared/values_controller.cpp b/apps/shared/values_controller.cpp index 559faa97e..be80085bc 100644 --- a/apps/shared/values_controller.cpp +++ b/apps/shared/values_controller.cpp @@ -336,8 +336,7 @@ void ValuesController::updateNumberOfColumns() { } FunctionStore * ValuesController::functionStore() const { - FunctionApp * myApp = static_cast(app()); - return myApp->functionStore(); + return FunctionApp::app()->functionStore(); } } diff --git a/apps/shared/values_function_parameter_controller.cpp b/apps/shared/values_function_parameter_controller.cpp index 059c9a34e..4f68ad405 100644 --- a/apps/shared/values_function_parameter_controller.cpp +++ b/apps/shared/values_function_parameter_controller.cpp @@ -9,8 +9,7 @@ const char * ValuesFunctionParameterController::title() { } void ValuesFunctionParameterController::viewWillAppear() { - FunctionApp * myApp = static_cast(app()); - myApp->functionStore()->modelForRecord(m_record)->nameWithArgument(m_pageTitle, Function::k_maxNameWithArgumentSize, m_symbol); + FunctionApp::app()->functionStore()->modelForRecord(m_record)->nameWithArgument(m_pageTitle, Function::k_maxNameWithArgumentSize, m_symbol); } void ValuesFunctionParameterController::didBecomeFirstResponder() {