mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-18 16:27:34 +01:00
[geometry] Make the app multi-tabs
This commit is contained in:
@@ -33,9 +33,15 @@ App::Descriptor * App::Snapshot::descriptor()
|
||||
}
|
||||
|
||||
App::App(Snapshot * snapshot) :
|
||||
TextFieldDelegateApp(snapshot, &m_stackViewController),
|
||||
TextFieldDelegateApp(snapshot, &m_tabViewController),
|
||||
m_figuresController(&m_stackViewController),
|
||||
m_stackViewController(&m_modalViewController, &m_figuresController)
|
||||
m_stackViewController(&m_tabViewController, &m_figuresController),
|
||||
m_graphController(&m_graphAlternateEmptyViewController),
|
||||
m_graphAlternateEmptyViewController(&m_graphHeader, &m_graphController, &m_graphController),
|
||||
m_graphHeader(&m_graphStackViewController, &m_graphAlternateEmptyViewController, &m_graphController),
|
||||
m_graphStackViewController(&m_tabViewController, &m_graphHeader),
|
||||
m_otherViewController(&m_tabViewController),
|
||||
m_tabViewController(&m_modalViewController, snapshot, &m_stackViewController, &m_graphAlternateEmptyViewController, &m_otherViewController)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -3,23 +3,21 @@
|
||||
|
||||
#include <escher.h>
|
||||
#include "list/figures_controller.h"
|
||||
#include "graph/graph_controller.h"
|
||||
#include "other/other_view_controller.h"
|
||||
#include "../shared/text_field_delegate_app.h"
|
||||
|
||||
namespace Geometry
|
||||
{
|
||||
namespace Geometry {
|
||||
|
||||
class App : public Shared::TextFieldDelegateApp
|
||||
{
|
||||
class App : public Shared::TextFieldDelegateApp {
|
||||
public:
|
||||
class Descriptor : public ::App::Descriptor
|
||||
{
|
||||
class Descriptor : public ::App::Descriptor {
|
||||
public:
|
||||
I18n::Message name() override;
|
||||
I18n::Message upperName() override;
|
||||
const Image * icon() override;
|
||||
};
|
||||
class Snapshot : public ::App::Snapshot
|
||||
{
|
||||
class Snapshot : public ::App::Snapshot, public TabViewDataSource {
|
||||
public:
|
||||
App * unpack(Container * container) override;
|
||||
Descriptor * descriptor() override;
|
||||
@@ -29,6 +27,12 @@ private:
|
||||
|
||||
FiguresController m_figuresController;
|
||||
StackViewController m_stackViewController;
|
||||
GraphController m_graphController;
|
||||
AlternateEmptyViewController m_graphAlternateEmptyViewController;
|
||||
StackViewController m_graphStackViewController;
|
||||
ButtonRowController m_graphHeader;
|
||||
OtherViewController m_otherViewController;
|
||||
TabViewController m_tabViewController;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
FiguresTab = "Figures"
|
||||
NoFigures = "Aucune figure à dessiner"
|
||||
OtherTab = "TODO"
|
||||
Coordinates = "Coordonnées"
|
||||
Middle = "Milieu"
|
||||
VectorProject = "Projeté vectoriel"
|
||||
|
||||
28
apps/geometry/graph/graph_controller.h
Normal file
28
apps/geometry/graph/graph_controller.h
Normal file
@@ -0,0 +1,28 @@
|
||||
#ifndef GRAPH_VIEW_CONTROLLER_H
|
||||
#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 {
|
||||
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); }
|
||||
|
||||
/* AlternateEmptyViewDefaultDelegate */
|
||||
virtual bool isEmpty() const override { return true; }
|
||||
virtual Responder * defaultController() override { return nullptr; }
|
||||
virtual I18n::Message emptyMessage() override { return I18n::Message::NoFigures; }
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -15,7 +15,8 @@ public:
|
||||
|
||||
/* ViewController */
|
||||
View * view() override { return &m_selectableTableView; }
|
||||
|
||||
const char * title() override { return I18n::translate(I18n::Message::FiguresTab); }
|
||||
virtual DisplayParameter displayParameter() override { return DisplayParameter::DoNotShowOwnTitle; }
|
||||
/* Responder */
|
||||
bool handleEvent(Ion::Events::Event event) override; // TO IMPLEMENT
|
||||
void didBecomeFirstResponder() override;
|
||||
|
||||
16
apps/geometry/other/other_view_controller.h
Normal file
16
apps/geometry/other/other_view_controller.h
Normal file
@@ -0,0 +1,16 @@
|
||||
#ifndef OTHER_VIEW_CONTROLLER_H
|
||||
#define OTHER_VIEW_CONTROLLER_H
|
||||
|
||||
namespace Geometry {
|
||||
|
||||
class OtherViewController : public ViewController {
|
||||
public:
|
||||
OtherViewController(Responder * parentResponder):
|
||||
ViewController(parentResponder) {}
|
||||
View * view() override { return nullptr; }
|
||||
const char * title() override { return I18n::translate(I18n::Message::OtherTab); }
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user