From 5107343a448c0ec53f4c5284f63f30b0d0a5c1b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9a=20Saviot?= Date: Tue, 2 Jan 2018 17:01:40 +0100 Subject: [PATCH] [ExpressionEditor] Handle EXE events: show serialized layout. Change-Id: I19be0ab5263cba42caca2ca71fe0082f3339e473 --- apps/expression_editor/controller.cpp | 9 +++++++++ apps/expression_editor/controller.h | 3 +++ 2 files changed, 12 insertions(+) diff --git a/apps/expression_editor/controller.cpp b/apps/expression_editor/controller.cpp index 1679d3303..888192d9f 100644 --- a/apps/expression_editor/controller.cpp +++ b/apps/expression_editor/controller.cpp @@ -29,6 +29,10 @@ void Controller::didBecomeFirstResponder() { } bool Controller::handleEvent(Ion::Events::Event event) { + if (event == Ion::Events::EXE) { + serializeLayout(); + return true; + } if (privateHandleEvent(event)) { m_view.cursorPositionChanged(); return true; @@ -139,4 +143,9 @@ bool Controller::handleDeleteEvent(Ion::Events::Event event) { return false; } +void Controller::serializeLayout() { + m_expressionLayout->writeTextInBuffer(m_buffer, k_bufferSize); + m_view.setText(const_cast(m_buffer)); +} + } diff --git a/apps/expression_editor/controller.h b/apps/expression_editor/controller.h index 3910844fa..e777e4103 100644 --- a/apps/expression_editor/controller.h +++ b/apps/expression_editor/controller.h @@ -29,9 +29,12 @@ private: bool handleMoveEvent(Ion::Events::Event event); Poincare::ExpressionLayout * handleAddEvent(Ion::Events::Event event); bool handleDeleteEvent(Ion::Events::Event event); + void serializeLayout(); ExpressionEditorView m_view; Poincare::ExpressionLayout * m_expressionLayout; Poincare::ExpressionLayoutCursor m_cursor; + static constexpr int k_bufferSize = 256; + char m_buffer[k_bufferSize]; }; }