Files
Upsilon/apps/calculation/editable_expression_view.cpp
Léa Saviot 53556ffacf [apps/calculation] Handle "ans" event in EditableExpressionView.
Change-Id: I7761f36b5a94bb5c8190cd5b238542280666c256
2018-01-16 16:43:38 +01:00

30 lines
945 B
C++

#include "editable_expression_view.h"
namespace Calculation {
bool EditableExpressionView::privateHandleEvent(Ion::Events::Event event) {
if (event == Ion::Events::Back) {
return false;
}
if (event == Ion::Events::Ans) {
m_expressionViewWithCursor.cursor()->insertText("ans");
return true;
}
Poincare::ExpressionLayout * layout = m_expressionViewWithCursor.expressionView()->expressionLayout();
bool layoutIsEmpty = layout->isEmpty()
|| (layout->isHorizontal()
&& layout->numberOfChildren() == 0);
if (isEditing() && layoutIsEmpty &&
(event == Ion::Events::Multiplication ||
event == Ion::Events::Plus ||
event == Ion::Events::Power ||
event == Ion::Events::Square ||
event == Ion::Events::Division ||
event == Ion::Events::Sto)) {
m_expressionViewWithCursor.cursor()->insertText("ans");
}
return(::EditableExpressionView::privateHandleEvent(event));
}
}