Files
Upsilon/apps/graph/values/interval_parameter_controller.cpp
Émilie Feral 2e16365100 [escher] Reorganize all cells'name and factorize their layouts
Change-Id: I69900ee98ff6a6868f96d70a0e335a589ef16c3f
2017-02-20 10:54:02 +01:00

52 lines
1.7 KiB
C++

#include "interval_parameter_controller.h"
#include "../app.h"
#include <assert.h>
using namespace Shared;
namespace Graph {
IntervalParameterController::IntervalParameterController(Responder * parentResponder, Interval * interval) :
FloatParameterController(parentResponder),
m_interval(interval),
m_intervalStartCell(PointerTableCellWithEditableText(&m_selectableTableView, this, m_draftTextBuffer, (char*)"X Debut")),
m_intervalEndCell(PointerTableCellWithEditableText(&m_selectableTableView, this, m_draftTextBuffer, (char*)"X Fin")),
m_intervalStepCell(PointerTableCellWithEditableText(&m_selectableTableView, this, m_draftTextBuffer, (char*)"Pas"))
{
}
const char * IntervalParameterController::title() const {
return "Regler l'intervalle";
}
Graph::Interval * IntervalParameterController::interval() {
return m_interval;
}
float IntervalParameterController::parameterAtIndex(int index) {
GetterPointer getters[k_totalNumberOfCell] = {&Interval::start, &Interval::end, &Interval::step};
return (m_interval->*getters[index])();
}
void IntervalParameterController::setParameterAtIndex(int parameterIndex, float f) {
SetterPointer setters[k_totalNumberOfCell] = {&Interval::setStart, &Interval::setEnd, &Interval::setStep};
(m_interval->*setters[parameterIndex])(f);
}
int IntervalParameterController::numberOfRows() {
return k_totalNumberOfCell;
};
HighlightCell * IntervalParameterController::reusableCell(int index) {
assert(index >= 0);
assert(index < k_totalNumberOfCell);
HighlightCell * cells[] = {&m_intervalStartCell, &m_intervalEndCell, &m_intervalStepCell};
return cells[index];
}
int IntervalParameterController::reusableCellCount() {
return k_totalNumberOfCell;
}
}