From 3ccfdf0365502e27100356c84e179f7036852fd5 Mon Sep 17 00:00:00 2001 From: Laury Date: Mon, 6 Dec 2021 20:43:13 +0100 Subject: [PATCH] [geometry] Also not working --- apps/geometry/Makefile | 2 ++ apps/geometry/figures/figure.h | 23 ++++++++++++ apps/geometry/{ => figures}/figure_type.h | 1 + apps/geometry/figures/point.h | 14 ++++++++ .../list/definition_type_controller.h | 2 +- apps/geometry/list/figure_definition_type.h | 12 +++++++ .../list/figure_parameters_controller.cpp | 4 ++- .../list/message_table_cell_with_selector.cpp | 8 +++-- .../list/message_table_cell_with_selector.h | 3 ++ apps/geometry/list/objects_controller.cpp | 35 +++++++++++++++++++ apps/geometry/list/objects_controller.h | 5 +-- 11 files changed, 102 insertions(+), 7 deletions(-) create mode 100644 apps/geometry/figures/figure.h rename apps/geometry/{ => figures}/figure_type.h (96%) create mode 100644 apps/geometry/figures/point.h create mode 100644 apps/geometry/list/figure_definition_type.h diff --git a/apps/geometry/Makefile b/apps/geometry/Makefile index c7b0aeb25..8eeb887fd 100644 --- a/apps/geometry/Makefile +++ b/apps/geometry/Makefile @@ -7,6 +7,8 @@ app_geometry_src = $(addprefix apps/geometry/,\ list/definition_type_controller.cpp \ list/figure_type_controller.cpp \ list/figure_parameters_controller.cpp \ + list/objects_controller.cpp \ + list/message_table_cell_with_selector.cpp \ ) apps_src += $(app_geometry_src) diff --git a/apps/geometry/figures/figure.h b/apps/geometry/figures/figure.h new file mode 100644 index 000000000..6440aec1a --- /dev/null +++ b/apps/geometry/figures/figure.h @@ -0,0 +1,23 @@ +#ifndef POINCARE_FIGURE_H +#define POINCARE_FIGURE_H + +using namespace Poincare; + +namespace Geometry { + +class FigureNode final : public TreeNode { +public: + FigureNode(const native_uint_t * digits, uint8_t numberOfDigits); + // TreeNode + size_t size() const override; + int numberOfChildren() const override { return 0; } + virtual FigureType type() const = 0; +}; + +class Figure final : public TreeHandle { + +}; + +} + +#endif diff --git a/apps/geometry/figure_type.h b/apps/geometry/figures/figure_type.h similarity index 96% rename from apps/geometry/figure_type.h rename to apps/geometry/figures/figure_type.h index 45616b1ac..83f60407f 100644 --- a/apps/geometry/figure_type.h +++ b/apps/geometry/figures/figure_type.h @@ -7,6 +7,7 @@ enum class FigureType { None = 0, // Used to trigger assert in debug mode Number, // It's not a real figure type but we use it to build figures like points Point, + Line Circle }; diff --git a/apps/geometry/figures/point.h b/apps/geometry/figures/point.h new file mode 100644 index 000000000..db3b9e695 --- /dev/null +++ b/apps/geometry/figures/point.h @@ -0,0 +1,14 @@ +#ifndef GEOMETRY_POINT_H +#define GEOMETRY_POINT_H + +namespace Geometry { + +class PointNode : public FigureNode { + size_t size() const override { return sizeof(PointNode); } +} + +class Point : public Figure + +} + +#endif diff --git a/apps/geometry/list/definition_type_controller.h b/apps/geometry/list/definition_type_controller.h index ea0d2c9df..f28c03072 100644 --- a/apps/geometry/list/definition_type_controller.h +++ b/apps/geometry/list/definition_type_controller.h @@ -3,7 +3,7 @@ #include #include "apps/i18n.h" -#include "../figure_type.h" +#include "../figure/figure_type.h" #include "figure_parameters_controller.h" namespace Geometry { diff --git a/apps/geometry/list/figure_definition_type.h b/apps/geometry/list/figure_definition_type.h new file mode 100644 index 000000000..91732d32e --- /dev/null +++ b/apps/geometry/list/figure_definition_type.h @@ -0,0 +1,12 @@ +#ifndef GEOMETRY_FIGURE_DEFINITION_TYPE_H +#define GEOMETRY_FIGURE_DEFINITION_TYPE_H + +namespace Geometry { + +class FigureDefinitionType { + +} + +} + +#endif diff --git a/apps/geometry/list/figure_parameters_controller.cpp b/apps/geometry/list/figure_parameters_controller.cpp index b907a6dbe..45a9ec15a 100644 --- a/apps/geometry/list/figure_parameters_controller.cpp +++ b/apps/geometry/list/figure_parameters_controller.cpp @@ -6,7 +6,9 @@ FigureParametersController::FigureParametersController(Responder * parentRespond ViewController(parentResponder), m_selectableTableView(this) { - + for (int i = 0; i < k_choiceCells; i++) { + m_choicesCells[i].setParentResponder(&m_selectableTableView); + } } void FigureParametersController::didBecomeFirstResponder() { diff --git a/apps/geometry/list/message_table_cell_with_selector.cpp b/apps/geometry/list/message_table_cell_with_selector.cpp index 6a153933c..652bfefea 100644 --- a/apps/geometry/list/message_table_cell_with_selector.cpp +++ b/apps/geometry/list/message_table_cell_with_selector.cpp @@ -1,4 +1,5 @@ #include "message_table_cell_with_selector.h" +#include namespace Geometry { @@ -6,14 +7,15 @@ MessageTableCellWithSelector::MessageTableCellWithSelector(ToolboxMessageTree * Responder(nullptr), MessageTableCell((I18n::Message)0, font), m_objectsRoot(root), - m_selectedMessage(nullptr) + m_selectedMessage(nullptr), + m_toolbox(this) { } -MessageTableCellWithSelector::handleEvent(Ion::Events::Event event) { +bool MessageTableCellWithSelector::handleEvent(Ion::Events::Event event) { if (event == Ion::Events::OK || event == Ion::Events::EXE) { - //Container::activeApp()->displayModalViewController(m_toolbox, 0.f, 0.f) + Container::activeApp()->displayModalViewController(&m_toolbox, 0.f, 0.f, Metric::PopUpTopMargin, Metric::PopUpLeftMargin, 0, Metric::PopUpRightMargin); return true; } return false; diff --git a/apps/geometry/list/message_table_cell_with_selector.h b/apps/geometry/list/message_table_cell_with_selector.h index ae2d6680f..1ebc46116 100644 --- a/apps/geometry/list/message_table_cell_with_selector.h +++ b/apps/geometry/list/message_table_cell_with_selector.h @@ -12,6 +12,9 @@ public: MessageTableCellWithSelector(ToolboxMessageTree * root = nullptr, const KDFont * font = KDFont::SmallFont); ToolboxMessageTree * getSelectedMessage() const { return m_selectedMessage; }; bool handleEvent(Ion::Events::Event event); + Responder * responder() override { + return this; + } private: ToolboxMessageTree * m_objectsRoot; ToolboxMessageTree * m_selectedMessage; diff --git a/apps/geometry/list/objects_controller.cpp b/apps/geometry/list/objects_controller.cpp index e69de29bb..d84cafc62 100644 --- a/apps/geometry/list/objects_controller.cpp +++ b/apps/geometry/list/objects_controller.cpp @@ -0,0 +1,35 @@ +#include "objects_controller.h" + +namespace Geometry { + +ObjectsController::ObjectsController(Responder * responder) : + NestedMenuController(this) +{ + +} + +int ObjectsController::numberOfRows() const { + return 0; +} + +int ObjectsController::reusableCellCount(int type) { + return 0; +} + +int ObjectsController::typeAtLocation(int i, int j) { + return 0; +} + +bool ObjectsController::selectLeaf(int type) { + return false; +} + +HighlightCell * ObjectsController::leafCellAtIndex(int index) { + return nullptr; +} + +HighlightCell * ObjectsController::nodeCellAtIndex(int index) { + return nullptr; +} + +} diff --git a/apps/geometry/list/objects_controller.h b/apps/geometry/list/objects_controller.h index 71369606b..13fe85670 100644 --- a/apps/geometry/list/objects_controller.h +++ b/apps/geometry/list/objects_controller.h @@ -1,11 +1,12 @@ -#ifndef APPS_MATH_VARIABLE_BOX_CONTROLLER_H -#define APPS_MATH_VARIABLE_BOX_CONTROLLER_H +#ifndef GEOMETRY_OBJECTS_CONTROLLER_H +#define GEOMETRY_OBJECTS_CONTROLLER_H #include namespace Geometry { class ObjectsController : public NestedMenuController { +public: ObjectsController(Responder * parentResponder); virtual int numberOfRows() const override; virtual int reusableCellCount(int type) override;