mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[Apps/Shared] Fixed interval and curve view exit
This commit is contained in:
@@ -8,6 +8,7 @@ namespace Shared {
|
||||
RangeParameterController::RangeParameterController(Responder * parentResponder, InputEventHandlerDelegate * inputEventHandlerDelegate, InteractiveCurveViewRange * interactiveRange) :
|
||||
FloatParameterController<float>(parentResponder),
|
||||
m_interactiveRange(interactiveRange),
|
||||
m_tempInteractiveRange(*interactiveRange),
|
||||
m_xRangeCells{},
|
||||
m_yRangeCells{},
|
||||
m_yAutoCell(I18n::Message::YAuto)
|
||||
@@ -18,7 +19,7 @@ RangeParameterController::RangeParameterController(Responder * parentResponder,
|
||||
}
|
||||
for (int i = 0; i < k_numberOfConvertibleTextCell; i++) {
|
||||
m_yRangeCells[i].setParentResponder(&m_selectableTableView);
|
||||
m_yRangeCells[i].setInteractiveCurveViewRange(m_interactiveRange);
|
||||
m_yRangeCells[i].setInteractiveCurveViewRange(&m_tempInteractiveRange);
|
||||
m_yRangeCells[i].textField()->setDelegates(inputEventHandlerDelegate, this);
|
||||
}
|
||||
}
|
||||
@@ -50,13 +51,13 @@ void RangeParameterController::willDisplayCellForIndex(HighlightCell * cell, int
|
||||
}
|
||||
if (index == 2) {
|
||||
SwitchView * switchView = (SwitchView *)m_yAutoCell.accessoryView();
|
||||
switchView->setState(m_interactiveRange->yAuto());
|
||||
switchView->setState(m_tempInteractiveRange.yAuto());
|
||||
return;
|
||||
}
|
||||
MessageTableCellWithEditableText * myCell = (MessageTableCellWithEditableText *)cell;
|
||||
I18n::Message labels[k_numberOfTextCell+1] = {I18n::Message::XMin, I18n::Message::XMax, I18n::Message::Default, I18n::Message::YMin, I18n::Message::YMax};
|
||||
myCell->setMessage(labels[index]);
|
||||
KDColor yColor = m_interactiveRange->yAuto() ? Palette::GreyDark : KDColorBlack;
|
||||
KDColor yColor = m_tempInteractiveRange.yAuto() ? Palette::GreyDark : KDColorBlack;
|
||||
KDColor colors[k_numberOfTextCell+1] = {KDColorBlack, KDColorBlack, KDColorBlack, yColor, yColor};
|
||||
myCell->setTextColor(colors[index]);
|
||||
FloatParameterController::willDisplayCellForIndex(cell, index);
|
||||
@@ -70,9 +71,14 @@ bool RangeParameterController::textFieldDidFinishEditing(TextField * textField,
|
||||
return false;
|
||||
}
|
||||
|
||||
void RangeParameterController::setRange(InteractiveCurveViewRange * range){
|
||||
m_interactiveRange = range;
|
||||
m_tempInteractiveRange = *range;
|
||||
}
|
||||
|
||||
bool RangeParameterController::handleEvent(Ion::Events::Event event) {
|
||||
if (activeCell() == 2 && (event == Ion::Events::OK || event == Ion::Events::EXE)) {
|
||||
m_interactiveRange->setYAuto(!m_interactiveRange->yAuto());
|
||||
m_tempInteractiveRange.setYAuto(!m_tempInteractiveRange.yAuto());
|
||||
m_selectableTableView.reloadData();
|
||||
return true;
|
||||
}
|
||||
@@ -83,14 +89,14 @@ float RangeParameterController::parameterAtIndex(int parameterIndex) {
|
||||
ParameterGetterPointer getters[k_numberOfTextCell] = {&InteractiveCurveViewRange::xMin,
|
||||
&InteractiveCurveViewRange::xMax, &InteractiveCurveViewRange::yMin, &InteractiveCurveViewRange::yMax};
|
||||
int index = parameterIndex > 2 ? parameterIndex - 1 : parameterIndex;
|
||||
return (m_interactiveRange->*getters[index])();
|
||||
return (m_tempInteractiveRange.*getters[index])();
|
||||
}
|
||||
|
||||
bool RangeParameterController::setParameterAtIndex(int parameterIndex, float f) {
|
||||
ParameterSetterPointer setters[k_numberOfTextCell] = {&InteractiveCurveViewRange::setXMin,
|
||||
&InteractiveCurveViewRange::setXMax, &InteractiveCurveViewRange::setYMin, &InteractiveCurveViewRange::setYMax};
|
||||
int index = parameterIndex > 2 ? parameterIndex - 1 : parameterIndex;
|
||||
(m_interactiveRange->*setters[index])(f);
|
||||
(m_tempInteractiveRange.*setters[index])(f);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -119,4 +125,11 @@ int RangeParameterController::reusableParameterCellCount(int type) {
|
||||
return k_numberOfConvertibleTextCell;
|
||||
}
|
||||
|
||||
void RangeParameterController::buttonAction() {
|
||||
*m_interactiveRange = m_tempInteractiveRange;
|
||||
StackViewController * stack = stackController();
|
||||
stack->pop();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user