diff --git a/apps/regression/regression_context.cpp b/apps/regression/regression_context.cpp index da8443c20..bd79b9247 100644 --- a/apps/regression/regression_context.cpp +++ b/apps/regression/regression_context.cpp @@ -23,9 +23,9 @@ const Expression RegressionContext::expressionForSymbol(const SymbolAbstract & s assert(m_seriesPairIndex >= 0); assert(m_seriesPairIndex < m_store->numberOfPairsOfSeries(series)); return Float(m_store->get(series, storeI, m_seriesPairIndex)); + } else { + return m_parentContext->expressionForSymbol(symbol); } -} else { - return m_parentContext->expressionForSymbol(symbol); } } diff --git a/apps/regression/regression_context.h b/apps/regression/regression_context.h index b3bfaf20d..fe9e9bf24 100644 --- a/apps/regression/regression_context.h +++ b/apps/regression/regression_context.h @@ -9,7 +9,7 @@ namespace Regression { class RegressionContext : public Shared::StoreContext { public: using Shared::StoreContext::StoreContext; - const Poincare::Expression expressionForSymbol(const Poincare::Symbol & symbol) override; + const Poincare::Expression expressionForSymbol(const Poincare::SymbolAbstract & symbol) override; }; } diff --git a/apps/sequence/cache_context.cpp b/apps/sequence/cache_context.cpp index 878e6d82b..cd33e57a0 100644 --- a/apps/sequence/cache_context.cpp +++ b/apps/sequence/cache_context.cpp @@ -21,7 +21,8 @@ const Expression CacheContext::expressionForSymbol(const SymbolAbstract & sym && (symbol.name()[0] == SequenceStore::k_sequenceNames[0][0] || symbol.name()[0] == SequenceStore::k_sequenceNames[1][0]) && (strcmp(symbol.name()+1, "(n)") == 0 || strcmp(symbol.name()+1, "(n+1)") == 0)) { - return Float(m_values[nameIndexForSymbol(symbol)][rankIndexForSymbol(symbol)]); + Symbol s = const_cast(static_cast(symbol)); + return Float(m_values[nameIndexForSymbol(s)][rankIndexForSymbol(s)]); } return VariableContext::expressionForSymbol(symbol); } diff --git a/apps/sequence/cache_context.h b/apps/sequence/cache_context.h index 0157cde4e..4ae6b556a 100644 --- a/apps/sequence/cache_context.h +++ b/apps/sequence/cache_context.h @@ -13,7 +13,7 @@ template class CacheContext : public Poincare::VariableContext { public: CacheContext(Poincare::Context * parentContext); - const Poincare::Expression expressionForSymbol(const Poincare::Symbol & symbol) override; + const Poincare::Expression expressionForSymbol(const Poincare::SymbolAbstract & symbol) override; void setValueForSymbol(T value, const Poincare::Symbol & symbol); private: int nameIndexForSymbol(const Poincare::Symbol & symbol); diff --git a/apps/sequence/list/list_controller.cpp b/apps/sequence/list/list_controller.cpp index 591c56ed4..a446f826f 100644 --- a/apps/sequence/list/list_controller.cpp +++ b/apps/sequence/list/list_controller.cpp @@ -174,7 +174,7 @@ int ListController::maxNumberOfRows() { return k_maxNumberOfRows; } -HighlightCell * ListController::titleCells(int index) { +FunctionTitleCell * ListController::titleCells(int index) { assert(index >= 0 && index < k_maxNumberOfRows); return &m_sequenceTitleCells[index]; } diff --git a/apps/sequence/list/list_parameter_controller.cpp b/apps/sequence/list/list_parameter_controller.cpp index 668f78a82..30b317bb8 100644 --- a/apps/sequence/list/list_parameter_controller.cpp +++ b/apps/sequence/list/list_parameter_controller.cpp @@ -113,7 +113,7 @@ void ListParameterController::willDisplayCellForIndex(HighlightCell * cell, int return; } char buffer[Sequence::k_initialRankNumberOfDigits+1]; - Integer(m_sequence->initialRank()).serialize(buffer, Sequence::k_initialRankNumberOfDigits+1); + Poincare::Integer(m_sequence->initialRank()).serialize(buffer, Sequence::k_initialRankNumberOfDigits+1); myCell->setAccessoryText(buffer); } } diff --git a/apps/sequence/sequence_context.h b/apps/sequence/sequence_context.h index 94ae593cf..121bc3390 100644 --- a/apps/sequence/sequence_context.h +++ b/apps/sequence/sequence_context.h @@ -45,10 +45,10 @@ public: * context respective methods. Indeed, special chars like n, u(n), u(n+1), * v(n), v(n+1) are taken into accound only when evaluating sequences which * is done in another context. */ - const Poincare::Expression expressionForSymbol(const Poincare::Symbol & symbol) override { + const Poincare::Expression expressionForSymbol(const Poincare::SymbolAbstract & symbol) override { return m_parentContext->expressionForSymbol(symbol); } - void setExpressionForSymbol(const Poincare::Expression & expression, const Poincare::Symbol & symbol, Poincare::Context & context) override { + void setExpressionForSymbol(const Poincare::Expression & expression, const Poincare::SymbolAbstract & symbol, Poincare::Context & context) override { m_parentContext->setExpressionForSymbol(expression, symbol, context); } template T valueOfSequenceAtPreviousRank(int sequenceIndex, int rank) const { diff --git a/apps/sequence/sequence_title_cell.h b/apps/sequence/sequence_title_cell.h index b1b59f241..31fc904d0 100644 --- a/apps/sequence/sequence_title_cell.h +++ b/apps/sequence/sequence_title_cell.h @@ -2,6 +2,7 @@ #define SEQUENCE_SEQUENCE_TITLE_CELL_H #include "../shared/function_title_cell.h" +#include namespace Sequence { @@ -12,6 +13,9 @@ public: void setEven(bool even) override; void setHighlighted(bool highlight) override; void setColor(KDColor color) override; + KDText::FontSize fontSize() const override { + return Poincare::CharLayoutNode::k_defaultFontSize; + } Poincare::Layout layout() const override { return m_titleTextView.layout(); } diff --git a/apps/statistics/statistics_context.h b/apps/statistics/statistics_context.h index 9a0206af0..8cdd2f082 100644 --- a/apps/statistics/statistics_context.h +++ b/apps/statistics/statistics_context.h @@ -8,7 +8,7 @@ namespace Statistics { class StatisticsContext : public Shared::StoreContext { public: using Shared::StoreContext::StoreContext; - const Poincare::Expression expressionForSymbol(const Poincare::Symbol & symbol) override; + const Poincare::Expression expressionForSymbol(const Poincare::SymbolAbstract & symbol) override; }; } diff --git a/poincare/include/poincare/char_layout.h b/poincare/include/poincare/char_layout.h index 874f9a720..7e944649e 100644 --- a/poincare/include/poincare/char_layout.h +++ b/poincare/include/poincare/char_layout.h @@ -9,7 +9,8 @@ namespace Poincare { class CharLayoutNode final : public LayoutNode { public: - CharLayoutNode(char c = Ion::Charset::Empty, const KDFont * font = KDFont::LargeFont) : + static constexpr KDFont * k_defaultFontSize = KDFont::LargeFont; + CharLayoutNode(char c = Ion::Charset::Empty, const KDFont * font = k_defaultFontSize) : LayoutNode(), m_char(c), m_font(font)