From 60b34cea8ab462398c2136ce6dcc5ade2cffe0d3 Mon Sep 17 00:00:00 2001 From: Romain Goyet Date: Tue, 22 Sep 2015 12:14:54 +0200 Subject: [PATCH] [poincare] Cleanup --- poincare/src/layout/fraction_layout.cpp | 10 +++++----- poincare/src/layout/fraction_layout.h | 2 +- poincare/src/layout/horizontal_layout.cpp | 9 ++++++++- poincare/src/layout/horizontal_layout.h | 2 +- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/poincare/src/layout/fraction_layout.cpp b/poincare/src/layout/fraction_layout.cpp index a30bb0225..6fb3d2d30 100644 --- a/poincare/src/layout/fraction_layout.cpp +++ b/poincare/src/layout/fraction_layout.cpp @@ -22,11 +22,11 @@ FractionLayout::~FractionLayout() { delete m_numerator; } -void FractionLayout::render(KDPoint origin) { - KDCoordinate fractionLineY = m_numerator->size().height + FRACTION_LINE_MARGIN; +void FractionLayout::render(KDPoint point) { + KDCoordinate fractionLineY = point.y + m_numerator->size().height + FRACTION_LINE_MARGIN; - KDDrawLine((KDPoint){.x = 0, .y = fractionLineY}, - (KDPoint){.x = size().width, .y = fractionLineY}); + KDDrawLine((KDPoint){.x = point.x, .y = fractionLineY}, + (KDPoint){.x = (KDCoordinate)(point.x + size().width), .y = fractionLineY}); } KDSize FractionLayout::computeSize() { @@ -54,7 +54,7 @@ KDPoint FractionLayout::positionOfChild(ExpressionLayout * child) { p.y = 0; } else if (child == m_denominator) { p.x = (KDCoordinate)((size().width - m_denominator->size().width)/2); - p.y = (KDCoordinate)(size().height + 2*FRACTION_LINE_MARGIN + FRACTION_LINE_HEIGHT); + p.y = (KDCoordinate)(m_numerator->size().height + 2*FRACTION_LINE_MARGIN + FRACTION_LINE_HEIGHT); } else { assert(false); // Should not happen } diff --git a/poincare/src/layout/fraction_layout.h b/poincare/src/layout/fraction_layout.h index 03be7b995..56e531d64 100644 --- a/poincare/src/layout/fraction_layout.h +++ b/poincare/src/layout/fraction_layout.h @@ -9,7 +9,7 @@ class FractionLayout : public ExpressionLayout { FractionLayout(ExpressionLayout * parent, Expression * numerator, Expression * denominator); ~FractionLayout(); protected: - void render(KDPoint origin) override; + void render(KDPoint point) override; KDSize computeSize() override; ExpressionLayout * child(uint16_t index) override; KDPoint positionOfChild(ExpressionLayout * child) override; diff --git a/poincare/src/layout/horizontal_layout.cpp b/poincare/src/layout/horizontal_layout.cpp index 9390f5006..f709f3040 100644 --- a/poincare/src/layout/horizontal_layout.cpp +++ b/poincare/src/layout/horizontal_layout.cpp @@ -31,7 +31,6 @@ void HorizontalLayout::render(KDPoint point) { KDSize HorizontalLayout::computeSize() { KDSize size = (KDSize){.width = 0, .height = 0}; - KDCoordinate width = 0, height = 0; int i = 0; while (ExpressionLayout * c = child(i++)) { KDSize childSize = c->size(); @@ -52,6 +51,7 @@ ExpressionLayout * HorizontalLayout::child(uint16_t index) { KDPoint HorizontalLayout::positionOfChild(ExpressionLayout * child) { KDPoint position = (KDPoint){.x = 0, .y = 0}; +#if 1 uint16_t index = 0; for (int i=0;i<3;i++) { if (m_children[i] == child) { @@ -64,6 +64,13 @@ KDPoint HorizontalLayout::positionOfChild(ExpressionLayout * child) { assert(previousChild != nullptr); position.x = previousChild->origin().x + previousChild->size().width; } +#else + int i = 0; + while(i<3 && m_children[i] != child) { + position.x += m_children[i]->size().width; + i++; + } +#endif position.y = (size().height - child->size().height)/2; return position; } diff --git a/poincare/src/layout/horizontal_layout.h b/poincare/src/layout/horizontal_layout.h index 984f74297..d4cb6a04a 100644 --- a/poincare/src/layout/horizontal_layout.h +++ b/poincare/src/layout/horizontal_layout.h @@ -9,7 +9,7 @@ class HorizontalLayout : public ExpressionLayout { HorizontalLayout(ExpressionLayout * parent, Expression * left_expression, char symbol, Expression * right_expression); ~HorizontalLayout(); protected: - void render(KDPoint origin) override; + void render(KDPoint point) override; KDSize computeSize() override; ExpressionLayout * child(uint16_t index) override; KDPoint positionOfChild(ExpressionLayout * child) override;