diff --git a/apps/shared/Makefile b/apps/shared/Makefile index 877249272..39345ad80 100644 --- a/apps/shared/Makefile +++ b/apps/shared/Makefile @@ -39,6 +39,7 @@ app_objs += $(addprefix apps/shared/,\ range_parameter_controller.o\ regular_table_view_data_source.o\ round_cursor_view.o\ + scrollable_exact_approximate_expressions_cell.o\ scrollable_exact_approximate_expressions_view.o\ simple_interactive_curve_view_controller.o\ expression_layout_field_delegate.o\ diff --git a/apps/shared/scrollable_exact_approximate_expressions_cell.cpp b/apps/shared/scrollable_exact_approximate_expressions_cell.cpp new file mode 100644 index 000000000..61a81f6b6 --- /dev/null +++ b/apps/shared/scrollable_exact_approximate_expressions_cell.cpp @@ -0,0 +1,43 @@ +#include "scrollable_exact_approximate_expressions_cell.h" +#include +using namespace Poincare; + +namespace Shared { + +ScrollableExactApproximateExpressionsCell::ScrollableExactApproximateExpressionsCell(Responder * parentResponder) : + Responder(parentResponder), + m_view(this) +{ +} + +void ScrollableExactApproximateExpressionsCell::setHighlighted(bool highlight) { + m_view.evenOddCell()->setHighlighted(highlight); +} +void ScrollableExactApproximateExpressionsCell::setEven(bool even) { + m_view.evenOddCell()->setEven(even); +} +void ScrollableExactApproximateExpressionsCell::reloadCell() { + m_view.evenOddCell()->reloadCell(); +} + +void ScrollableExactApproximateExpressionsCell::reloadScroll() { + m_view.reloadScroll(); +} + +void ScrollableExactApproximateExpressionsCell::didBecomeFirstResponder() { + app()->setFirstResponder(&m_view); +} + +int ScrollableExactApproximateExpressionsCell::numberOfSubviews() const { + return 1; +} + +View * ScrollableExactApproximateExpressionsCell::subviewAtIndex(int index) { + return &m_view; +} + +void ScrollableExactApproximateExpressionsCell::layoutSubviews() { + m_view.setFrame(bounds()); +} + +} diff --git a/apps/shared/scrollable_exact_approximate_expressions_cell.h b/apps/shared/scrollable_exact_approximate_expressions_cell.h new file mode 100644 index 000000000..a9d861ee3 --- /dev/null +++ b/apps/shared/scrollable_exact_approximate_expressions_cell.h @@ -0,0 +1,35 @@ +#ifndef SHARED_SCROLLABLE_EXACT_APPROXIMATE_EXPRESSIONS_CELL_H +#define SHARED_SCROLLABLE_EXACT_APPROXIMATE_EXPRESSIONS_CELL_H + +#include +#include "scrollable_exact_approximate_expressions_view.h" + +namespace Shared { + +class ScrollableExactApproximateExpressionsCell : public ::EvenOddCell, public Responder { +public: + ScrollableExactApproximateExpressionsCell(Responder * parentResponder = nullptr); + void setExpressions(Poincare::ExpressionLayout ** expressionsLayout) { + return m_view.setExpressions(expressionsLayout); + } + void setEqualMessage(I18n::Message equalSignMessage) { + return m_view.setEqualMessage(equalSignMessage); + } + void setHighlighted(bool highlight) override; + void setEven(bool even) override; + void reloadCell() override; + void reloadScroll(); + Responder * responder() override { + return this; + } + void didBecomeFirstResponder() override; +private: + int numberOfSubviews() const override; + View * subviewAtIndex(int index) override; + void layoutSubviews() override; + ScrollableExactApproximateExpressionsView m_view; +}; + +} + +#endif