#include "function_expression_cell.h" #include namespace Shared { FunctionExpressionCell::FunctionExpressionCell() : EvenOddCell(), m_function(nullptr), m_expressionView(ExpressionView()) { } void FunctionExpressionCell::setFunction(Function * f) { m_function = f; m_expressionView.setExpression(m_function->layout()); } void FunctionExpressionCell::reloadCell() { EvenOddCell::reloadCell(); m_expressionView.setBackgroundColor(backgroundColor()); if (m_function) { bool active = m_function->isActive(); KDColor textColor = active ? KDColorBlack : Palette::GreyDark; m_expressionView.setTextColor(textColor); } } Function * FunctionExpressionCell::function() { return m_function; } int FunctionExpressionCell::numberOfSubviews() const { return 1; } View * FunctionExpressionCell::subviewAtIndex(int index) { assert(index == 0); return &m_expressionView; } void FunctionExpressionCell::layoutSubviews() { KDRect expressionFrame(k_separatorThickness, 0, bounds().width() - k_separatorThickness, bounds().height()); m_expressionView.setFrame(expressionFrame); } void FunctionExpressionCell::drawRect(KDContext * ctx, KDRect rect) const { EvenOddCell::drawRect(ctx, rect); // Color the separator ctx->fillRect(KDRect(0, 0, k_separatorThickness, bounds().height()), Palette::GreyBright); } }