[apps/shared] Make the float parameter controllers a dynamic controller

view

Change-Id: I216b7f6df15e5a406624ce3c1b0e892d0f871a6b
This commit is contained in:
Émilie Feral
2017-04-20 13:16:58 +02:00
parent 78317dc06c
commit 54c5f4dcda
12 changed files with 215 additions and 86 deletions

View File

@@ -5,8 +5,7 @@ namespace Shared {
IntervalParameterController::IntervalParameterController(Responder * parentResponder, Interval * interval) :
FloatParameterController(parentResponder),
m_interval(interval),
m_intervalCells{MessageTableCellWithEditableText(&m_selectableTableView, this, m_draftTextBuffer, I18n::Message::Default), MessageTableCellWithEditableText(&m_selectableTableView, this, m_draftTextBuffer, I18n::Message::Default), MessageTableCellWithEditableText(&m_selectableTableView, this, m_draftTextBuffer, I18n::Message::Default)}
m_interval(interval)
{
}
@@ -39,6 +38,15 @@ Interval * IntervalParameterController::interval() {
return m_interval;
}
void IntervalParameterController::unloadView() {
for (int i = 0; i < k_totalNumberOfCell; i++) {
assert(m_intervalCells[i] != nullptr);
delete m_intervalCells[i];
m_intervalCells[i] = nullptr;
}
FloatParameterController::unloadView();
}
float IntervalParameterController::previousParameterAtIndex(int index) {
assert(index >= 0 && index < k_totalNumberOfCell);
return m_previousParameters[index];
@@ -72,11 +80,20 @@ bool IntervalParameterController::setParameterAtIndex(int parameterIndex, float
HighlightCell * IntervalParameterController::reusableParameterCell(int index, int type) {
assert(index >= 0);
assert(index < k_totalNumberOfCell);
return &m_intervalCells[index];
return m_intervalCells[index];
}
int IntervalParameterController::reusableParameterCellCount(int type) {
return k_totalNumberOfCell;
}
View * IntervalParameterController::createView() {
SelectableTableView * tableView = (SelectableTableView *)FloatParameterController::createView();
for (int i = 0; i < k_totalNumberOfCell; i++) {
assert(m_intervalCells[i] == nullptr);
m_intervalCells[i] = new MessageTableCellWithEditableText(tableView, this, m_draftTextBuffer, I18n::Message::Default);
}
return tableView;
}
}