From d09a34cde7202613c9e2fb5404301430d943d3f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Mon, 7 Nov 2016 15:12:15 +0100 Subject: [PATCH] [apps] Handle enter in tool box controller Change-Id: Id36bf56871b7d4245062244eaa9a2ef9f6b5a14c --- apps/tool_box_controller.cpp | 22 ++++++++++++++++++++++ apps/tool_box_controller.h | 1 + 2 files changed, 23 insertions(+) diff --git a/apps/tool_box_controller.cpp b/apps/tool_box_controller.cpp index 79ca60f41..a828b8cde 100644 --- a/apps/tool_box_controller.cpp +++ b/apps/tool_box_controller.cpp @@ -15,6 +15,12 @@ static const char * labels[] = { "Trigonometrie hyperbolique" }; +static const char * mathCommands[] = { + "abs()", + "root(,)", + "log()" +}; + ToolBoxController::ToolBoxController() : StackViewController(nullptr, this, true), m_selectableTableView(SelectableTableView(this, this)) @@ -26,6 +32,22 @@ const char * ToolBoxController::title() const { } bool ToolBoxController::handleEvent(Ion::Events::Event event) { + switch (event) { + case Ion::Events::Event::ENTER: + return handleEnter(); + default: + return false; + } +} + +bool ToolBoxController::handleEnter() { + if (m_selectableTableView.selectedRow() < 3) { + m_textFieldCaller->appendText(mathCommands[m_selectableTableView.selectedRow()]); + int cursorPosition = m_selectableTableView.selectedRow() == 1 ? -2 : -1; + m_textFieldCaller->moveCursor(cursorPosition); + app()->dismissModalViewController(); + return true; + } return false; } diff --git a/apps/tool_box_controller.h b/apps/tool_box_controller.h index 4e534b692..0f72f5ad7 100644 --- a/apps/tool_box_controller.h +++ b/apps/tool_box_controller.h @@ -19,6 +19,7 @@ public: int typeAtLocation(int i, int j) override; void setTextFieldCaller(TextField * textField); private: + bool handleEnter(); constexpr static int k_numberOfCommandRows = 3; constexpr static int k_numberOfMenuRows = 8; constexpr static int k_maxNumberOfDisplayedRows = 6;