#ifndef POINCARE_CONDENSED_SUM_LAYOUT_H #define POINCARE_CONDENSED_SUM_LAYOUT_H #include #include #include namespace Poincare { class CondensedSumLayout : public StaticLayoutHierarchy<3> { public: using StaticLayoutHierarchy::StaticLayoutHierarchy; ExpressionLayout * clone() const override; /* Tree navigation * CondensedSumLayout is only used in apps/shared/sum_graph_controller.cpp, in * a view with no cursor. */ ExpressionLayoutCursor cursorLeftOf(ExpressionLayoutCursor cursor, bool * shouldRecomputeLayout) override { assert(false); return ExpressionLayoutCursor(); } ExpressionLayoutCursor cursorRightOf(ExpressionLayoutCursor cursor, bool * shouldRecomputeLayout) override { assert(false); return ExpressionLayoutCursor(); } ExpressionLayoutCursor cursorAbove(ExpressionLayoutCursor cursor, bool * shouldRecomputeLayout, bool equivalentPositionVisited = false) override { assert(false); return ExpressionLayoutCursor(); } ExpressionLayoutCursor cursorUnder(ExpressionLayoutCursor cursor, bool * shouldRecomputeLayout, bool equivalentPositionVisited = false) override { assert(false); return ExpressionLayoutCursor(); } // Serialization int writeTextInBuffer(char * buffer, int bufferSize) const override { return LayoutEngine::writePrefixExpressionLayoutTextInBuffer(this, buffer, bufferSize, "sum"); } // Other ExpressionLayout * layoutToPointWhenInserting() override { assert(false); return nullptr; } protected: void render(KDContext * ctx, KDPoint p, KDColor expressionColor, KDColor backgroundColor) override {} KDSize computeSize() override; void computeBaseline() override; KDPoint positionOfChild(ExpressionLayout * child) override; private: ExpressionLayout * baseLayout() { return editableChild(0); } ExpressionLayout * subscriptLayout() { return editableChild(1); } ExpressionLayout * superscriptLayout() { return editableChild(2); } }; } #endif