diff --git a/apps/geometry/Makefile b/apps/geometry/Makefile index 0047120de..1f02e839b 100644 --- a/apps/geometry/Makefile +++ b/apps/geometry/Makefile @@ -10,6 +10,8 @@ app_geometry_src = $(addprefix apps/geometry/,\ list/objects_controller.cpp \ list/message_table_cell_with_selector.cpp \ figure_store.cpp \ + graph/graph_controller.cpp \ + graph/banner_view.cpp \ ) apps_src += $(app_geometry_src) diff --git a/apps/geometry/app.cpp b/apps/geometry/app.cpp index d46d48555..73a8fdd28 100644 --- a/apps/geometry/app.cpp +++ b/apps/geometry/app.cpp @@ -36,7 +36,7 @@ App::App(Snapshot * snapshot) : TextFieldDelegateApp(snapshot, &m_tabViewController), m_figuresController(&m_stackViewController), m_stackViewController(&m_tabViewController, &m_figuresController), - m_graphController(&m_graphAlternateEmptyViewController), + m_graphController(&m_graphAlternateEmptyViewController, this, &m_graphHeader, nullptr, nullptr, nullptr), m_graphAlternateEmptyViewController(&m_graphHeader, &m_graphController, &m_graphController), m_graphHeader(&m_graphStackViewController, &m_graphAlternateEmptyViewController, &m_graphController), m_graphStackViewController(&m_tabViewController, &m_graphHeader), diff --git a/apps/geometry/base.universal.i18n b/apps/geometry/base.universal.i18n index ed3603839..66127a534 100644 --- a/apps/geometry/base.universal.i18n +++ b/apps/geometry/base.universal.i18n @@ -1,5 +1,5 @@ FiguresTab = "Figures" -NoFigures = "Aucune figure à dessiner" +NoFigures = "Aucune figure à afficher" OtherTab = "TODO" Coordinates = "Coordonnées" Middle = "Milieu" diff --git a/apps/geometry/graph/banner_view.cpp b/apps/geometry/graph/banner_view.cpp new file mode 100644 index 000000000..f98947571 --- /dev/null +++ b/apps/geometry/graph/banner_view.cpp @@ -0,0 +1,15 @@ +#include "banner_view.h" + +namespace Geometry { + +BannerView::BannerView( + Responder * parentResponder, + InputEventHandlerDelegate * inputEventHandlerDelegate, + TextFieldDelegate * textFieldDelegate +) : + Shared::XYBannerView(parentResponder, inputEventHandlerDelegate, textFieldDelegate) +{ + +} + +} diff --git a/apps/geometry/graph/banner_view.h b/apps/geometry/graph/banner_view.h new file mode 100644 index 000000000..487ccd5d6 --- /dev/null +++ b/apps/geometry/graph/banner_view.h @@ -0,0 +1,15 @@ +#ifndef GEOMETRY_BANNER_VIEW_H +#define GEOMETRY_BANNER_VIEW_H + +#include "../../shared/xy_banner_view.h" + +namespace Geometry { + +class BannerView : public Shared::XYBannerView { +public: + BannerView(Responder * parentResponder, InputEventHandlerDelegate * inputEventHandlerDelegate, TextFieldDelegate * textFieldDelegate); +}; + +} + +#endif \ No newline at end of file diff --git a/apps/geometry/graph/graph_controller.cpp b/apps/geometry/graph/graph_controller.cpp new file mode 100644 index 000000000..b13682d94 --- /dev/null +++ b/apps/geometry/graph/graph_controller.cpp @@ -0,0 +1,11 @@ +#include "graph_controller.h" + +namespace Geometry { + +GraphController::GraphController(Responder * parentResponder, InputEventHandlerDelegate * inputEventHandlerDelegate, ButtonRowController * header, Shared::InteractiveCurveViewRange/*TODO -> Store*/ * store, Shared::CurveViewCursor * cursor, uint32_t * rangeVersion) : + InteractiveCurveViewController(parentResponder, inputEventHandlerDelegate, header, store, nullptr, cursor, rangeVersion) +{ + /* WHEREIWAS: Now i must make the app launch again without crash, by replacing the multiples nullptr that I used... */ +} + +} diff --git a/apps/geometry/graph/graph_controller.h b/apps/geometry/graph/graph_controller.h index c0159cea0..af748cede 100644 --- a/apps/geometry/graph/graph_controller.h +++ b/apps/geometry/graph/graph_controller.h @@ -2,25 +2,30 @@ #define GRAPH_VIEW_CONTROLLER_H #include "../shared/interactive_curve_view_controller.h" -#include "../shared/curve_view_cursor.h" -#include "../shared/cursor_view.h" -#include "../shared/round_cursor_view.h" namespace Geometry { -class GraphController : public ViewController, public ButtonRowDelegate, public AlternateEmptyViewDefaultDelegate { +class GraphController : public Shared::InteractiveCurveViewController { public: - GraphController(Responder * parentResponder): - ViewController(parentResponder), - ButtonRowDelegate(nullptr, nullptr) {} - /* ViewController */ - View * view() override { return nullptr; } - const char * title() override { return I18n::translate(I18n::Message::GraphTab); } + GraphController(Responder * parentResponder, InputEventHandlerDelegate * inputEventHandlerDelegate, ButtonRowController * header, Shared::InteractiveCurveViewRange * store, Shared::CurveViewCursor * cursor, uint32_t * rangeVersion); + + virtual Shared::InteractiveCurveViewRange * interactiveCurveViewRange() override { return nullptr; } //TOIMPLEMENT + virtual Shared::CurveView * curveView() override { return nullptr; } //TOIMPLEMENT + virtual void reloadBannerView() override { } //TOIMPLEMENT + virtual bool handleEnter() override { return false; } //TOIMPLEMENT + virtual void initCursorParameters() override { } //TOIMPLEMENT + virtual bool moveCursorVertically(int direction) override { return false; } //TOIMPLEMENT + virtual uint32_t rangeVersion() override { return 0; } //TOIMPLEMENT + virtual bool cursorMatchesModel() override { return false; } //TOIMPLEMENT + virtual Poincare::Coordinate2D xyValues(int curveIndex, double t, Poincare::Context * context) const override { return Poincare::Coordinate2D(0, 0); } //TOIMPLEMENT + virtual bool closestCurveIndexIsSuitable(int newIndex, int currentIndex) const override { return false; } + virtual int selectedCurveIndex() const override { return 0; } + virtual int numberOfCurves() const override { return 0; } /* AlternateEmptyViewDefaultDelegate */ - virtual bool isEmpty() const override { return true; } - virtual Responder * defaultController() override { return nullptr; } + virtual bool isEmpty() const override { return false; } virtual I18n::Message emptyMessage() override { return I18n::Message::NoFigures; } +private: }; } diff --git a/apps/geometry/list/figures_controller.cpp b/apps/geometry/list/figures_controller.cpp index 95d69b446..f28b42ed3 100644 --- a/apps/geometry/list/figures_controller.cpp +++ b/apps/geometry/list/figures_controller.cpp @@ -24,6 +24,12 @@ bool FiguresController::handleEvent(Ion::Events::Event event) { return true; } } + if (event == Ion::Events::Up && selectedRow() == 0) { + m_selectableTableView.deselectTable(); + assert(selectedRow() == -1); + Container::activeApp()->setFirstResponder(parentResponder()->parentResponder()); + return true; + } return false; }