Files
Upsilon/apps/calculation/editable_expression_view.cpp
Léa Saviot e1235cdb4f [escher] EditableExpressionView: Remove the cursor when not editing.
Change-Id: If333f6074bce39d71ceb89b9424f7fec26a1f0c6
2018-01-16 16:43:40 +01:00

36 lines
1.2 KiB
C++

#include "editable_expression_view.h"
namespace Calculation {
EditableExpressionView::EditableExpressionView(Responder * parentResponder, Poincare::ExpressionLayout * expressionLayout, EditableExpressionViewDelegate * delegate) :
::EditableExpressionView(parentResponder, expressionLayout, delegate)
{
setEditing(true);
}
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));
}
}