8 ExpressionLayout(), m_numerator_layout(numerator_layout), m_denominator_layout(denominator_layout) {
12 + k_fractionLineMargin + k_fractionLineHeight;
16 delete m_denominator_layout;
17 delete m_numerator_layout;
22 ctx->
fillRect(
KDRect(p.
x()+k_fractionBorderMargin, fractionLineY,
size().
width()-2*k_fractionBorderMargin, 1), expressionColor);
27 + 2*k_fractionBorderLength+2*k_fractionBorderMargin;
29 + k_fractionLineMargin + k_fractionLineHeight + k_fractionLineMargin
31 return KDSize(width, height);
37 return m_numerator_layout;
39 return m_denominator_layout;
48 if (
child == m_numerator_layout) {
50 }
else if (
child == m_denominator_layout) {
constexpr KDCoordinate width() const
FractionLayout(ExpressionLayout *numerator, ExpressionLayout *denominator)
void render(KDContext *ctx, KDPoint p, KDColor expressionColor, KDColor backgroundColor) override
KDPoint positionOfChild(ExpressionLayout *child) override
KDSize computeSize() override
void fillRect(KDRect rect, KDColor color)
ExpressionLayout * child(uint16_t index) override
void setParent(ExpressionLayout *parent)
constexpr KDCoordinate height() const