#include "list_controller.h" #include "app.h" #include #include #include using namespace Shared; namespace Solver { ListController::ListController(Responder * parentResponder, EquationStore * equationStore, ButtonRowController * footer) : ExpressionModelListController(parentResponder, I18n::Message::AddEquation), ButtonRowDelegate(nullptr, footer), m_equationListView(this), m_expressionCells{}, m_resolveButton(this, equationStore->numberOfDefinedModels() > 1 ? I18n::Message::ResolveSystem : I18n::Message::ResolveEquation, Invocation([](void * context, void * sender) { ListController * list = (ListController *)context; list->resolveEquations(); return true; }, this), KDFont::LargeFont, Palette::PurpleBright), m_modelsParameterController(this, equationStore, this), m_modelsStackController(nullptr, &m_modelsParameterController, KDColorWhite, Palette::PurpleDark, Palette::PurpleDark) { m_addNewModel.setAlignment(0.3f, 0.5f); // (EquationListView::k_braceTotalWidth+k_expressionMargin) / (Ion::Display::Width-m_addNewModel.text().size()) = (30+5)/(320-200) for (int i = 0; i < k_maxNumberOfRows; i++) { m_expressionCells[i].setLeftMargin(EquationListView::k_braceTotalWidth+k_expressionMargin); m_expressionCells[i].setEven(true); } } int ListController::numberOfButtons(ButtonRowController::Position position) const { if (position == ButtonRowController::Position::Bottom) { return 1; } return 0; } Button * ListController::buttonAtIndex(int index, ButtonRowController::Position position) const { if (position == ButtonRowController::Position::Top) { return nullptr; } return const_cast