From 66d27131625378967f387ea5167df4377f2c37ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Sat, 14 Jan 2017 08:37:22 +0100 Subject: [PATCH] [poincare] improve the sum layout Change-Id: I59149dfd618b3882a906aac3a0497e62c8eb7d91 --- poincare/include/poincare/sum.h | 1 + poincare/src/sum.cpp | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/poincare/include/poincare/sum.h b/poincare/include/poincare/sum.h index f9afbcc0e..283416e75 100644 --- a/poincare/include/poincare/sum.h +++ b/poincare/include/poincare/sum.h @@ -11,6 +11,7 @@ public: Type type() const override; Expression * cloneWithDifferentOperands(Expression ** newOperands, int numberOfOperands, bool cloneOperands = true) const override; + ExpressionLayout * createLayout() const override; }; #endif diff --git a/poincare/src/sum.cpp b/poincare/src/sum.cpp index e5a2785d7..34d4e2c2d 100644 --- a/poincare/src/sum.cpp +++ b/poincare/src/sum.cpp @@ -1,9 +1,12 @@ #include #include #include - +#include "layout/sum_layout.h" +#include "layout/string_layout.h" +#include "layout/horizontal_layout.h" extern "C" { #include +#include } Sum::Sum() : @@ -37,3 +40,10 @@ float Sum::approximate(Context& context) const { } return result; } + +ExpressionLayout * Sum::createLayout() const { + ExpressionLayout ** childrenLayouts = (ExpressionLayout **)malloc(2*sizeof(ExpressionLayout *)); + childrenLayouts[0] = new StringLayout("n=", 2); + childrenLayouts[1] = m_args[1]->createLayout(); + return new SumLayout(new HorizontalLayout(childrenLayouts, 2), m_args[2]->createLayout(), m_args[0]->createLayout()); +}