diff --git a/apps/sequence/Makefile b/apps/sequence/Makefile index f61bdafb3..92307935b 100644 --- a/apps/sequence/Makefile +++ b/apps/sequence/Makefile @@ -1,6 +1,7 @@ app_objs += $(addprefix apps/sequence/,\ app.o\ graph/banner_view.o\ + graph/curve_parameter_controller.o\ graph/curve_view_range.o\ graph/graph_view.o\ list/list_controller.o\ diff --git a/apps/sequence/graph/curve_parameter_controller.cpp b/apps/sequence/graph/curve_parameter_controller.cpp new file mode 100644 index 000000000..ab32ce574 --- /dev/null +++ b/apps/sequence/graph/curve_parameter_controller.cpp @@ -0,0 +1,47 @@ +#include "curve_parameter_controller.h" +#include + +using namespace Shared; + +namespace Sequence { + +CurveParameterController::CurveParameterController(InteractiveCurveViewRange * graphRange, CurveViewCursor * cursor) : + FunctionCurveParameterController(graphRange, cursor), + m_sumCell(PointerTableCell((char*)"Somme des termes")) +{ +} + +const char * CurveParameterController::title() const { + return "Options de la suite"; +} + +bool CurveParameterController::handleEvent(Ion::Events::Event event) { + if (event == Ion::Events::OK) { + switch (m_selectableTableView.selectedRow()) { + case 0: + return true; + case 1: + return handleGotoSelection(); + default: + return false; + } + } + return false; +} + +int CurveParameterController::numberOfRows() { + return k_totalNumberOfCells; +}; + +HighlightCell * CurveParameterController::reusableCell(int index) { + assert(index >= 0); + assert(index < k_totalNumberOfCells); + HighlightCell * cells[] = {&m_sumCell, &m_goToCell}; + return cells[index]; +} + +int CurveParameterController::reusableCellCount() { + return k_totalNumberOfCells; +} + +} diff --git a/apps/sequence/graph/curve_parameter_controller.h b/apps/sequence/graph/curve_parameter_controller.h new file mode 100644 index 000000000..4e768062a --- /dev/null +++ b/apps/sequence/graph/curve_parameter_controller.h @@ -0,0 +1,24 @@ +#ifndef SEQUENCE_CURVE_PARAMETER_CONTROLLER_H +#define SEQUENCE_CURVE_PARAMETER_CONTROLLER_H + +#include +#include "../../shared/function_curve_parameter_controller.h" + +namespace Sequence { + +class CurveParameterController : public Shared::FunctionCurveParameterController { +public: + CurveParameterController(Shared::InteractiveCurveViewRange * graphRange, Shared::CurveViewCursor * cursor); + const char * title() const override; + bool handleEvent(Ion::Events::Event event) override; + int numberOfRows() override; + HighlightCell * reusableCell(int index) override; + int reusableCellCount() override; +private: + constexpr static int k_totalNumberOfCells = 2; + PointerTableCell m_sumCell; +}; + +} + +#endif