mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-18 21:30:38 +01:00
[apps/sequence] Create a first version of sequence structure
Change-Id: I4413365dcf7dc53ece23cce453215660258d9835
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
app_objs += $(addprefix apps/sequence/,\
|
||||
app.o\
|
||||
values/values_controller.o\
|
||||
sequence.o\
|
||||
sequence_store.o\
|
||||
)
|
||||
|
||||
36
apps/sequence/app.cpp
Normal file
36
apps/sequence/app.cpp
Normal file
@@ -0,0 +1,36 @@
|
||||
#include "app.h"
|
||||
#include "sequence_icon.h"
|
||||
|
||||
using namespace Poincare;
|
||||
|
||||
namespace Sequence {
|
||||
|
||||
App::App(Container * container, Context * context) :
|
||||
TextFieldDelegateApp(container, &m_inputViewController, "Suites", "SUITES", ImageStore::SequenceIcon),
|
||||
m_sequenceStore(SequenceStore()),
|
||||
m_nContext(VariableContext('n', context)),
|
||||
m_listController(&m_listHeader, &m_sequenceStore, &m_listHeader),
|
||||
m_listHeader(HeaderViewController(nullptr, &m_listController, &m_listController)),
|
||||
m_listStackViewController(StackViewController(&m_tabViewController, &m_listHeader)),
|
||||
m_graphController(&m_graphAlternateEmptyViewController, &m_sequenceStore, &m_graphHeader),
|
||||
m_graphAlternateEmptyViewController(AlternateEmptyViewController(&m_graphHeader, &m_graphController, &m_graphController)),
|
||||
m_graphHeader(HeaderViewController(nullptr, &m_graphAlternateEmptyViewController, &m_graphController)),
|
||||
m_graphStackViewController(StackViewController(&m_tabViewController, &m_graphHeader)),
|
||||
m_valuesController(&m_valuesAlternateEmptyViewController, &m_sequenceStore, &m_valuesHeader),
|
||||
m_valuesAlternateEmptyViewController(AlternateEmptyViewController(&m_valuesHeader, &m_valuesController, &m_valuesController)),
|
||||
m_valuesHeader(HeaderViewController(nullptr, &m_valuesAlternateEmptyViewController, &m_valuesController)),
|
||||
m_valuesStackViewController(StackViewController(&m_tabViewController, &m_valuesHeader)),
|
||||
m_tabViewController(&m_inputViewController, &m_listStackViewController, &m_graphStackViewController, &m_valuesStackViewController),
|
||||
m_inputViewController(&m_modalViewController, &m_tabViewController, this)
|
||||
{
|
||||
}
|
||||
|
||||
InputViewController * App::inputViewController() {
|
||||
return &m_inputViewController;
|
||||
}
|
||||
|
||||
Context * App::localContext() {
|
||||
return &m_nContext;
|
||||
}
|
||||
|
||||
}
|
||||
37
apps/sequence/app.h
Normal file
37
apps/sequence/app.h
Normal file
@@ -0,0 +1,37 @@
|
||||
#ifndef SEQUENCE_APP_H
|
||||
#define SEQUENCE_APP_H
|
||||
|
||||
#include <escher.h>
|
||||
#include <poincare.h>
|
||||
#include "sequence_store.h"
|
||||
#include "values/values_controller.h"
|
||||
#include "../shared/text_field_delegate_app.h"
|
||||
|
||||
namespace Sequence {
|
||||
|
||||
class App : public Shared::TextFieldDelegateApp {
|
||||
public:
|
||||
App(Container * container, Poincare::Context * context);
|
||||
InputViewController * inputViewController();
|
||||
Poincare::Context * localContext() override;
|
||||
private:
|
||||
SequenceStore m_sequenceStore;
|
||||
Poincare::VariableContext m_nContext;
|
||||
ValuesController m_listController;
|
||||
HeaderViewController m_listHeader;
|
||||
StackViewController m_listStackViewController;
|
||||
ValuesController m_graphController;
|
||||
AlternateEmptyViewController m_graphAlternateEmptyViewController;
|
||||
HeaderViewController m_graphHeader;
|
||||
StackViewController m_graphStackViewController;
|
||||
ValuesController m_valuesController;
|
||||
AlternateEmptyViewController m_valuesAlternateEmptyViewController;
|
||||
HeaderViewController m_valuesHeader;
|
||||
StackViewController m_valuesStackViewController;
|
||||
TabViewController m_tabViewController;
|
||||
InputViewController m_inputViewController;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
52
apps/sequence/values/values_controller.cpp
Normal file
52
apps/sequence/values/values_controller.cpp
Normal file
@@ -0,0 +1,52 @@
|
||||
#include "values_controller.h"
|
||||
|
||||
namespace Sequence {
|
||||
|
||||
ValuesController::ValuesController(Responder * parentResponder, SequenceStore * sequenceStore,
|
||||
HeaderViewController * header) :
|
||||
ViewController(parentResponder),
|
||||
HeaderViewDelegate(header),
|
||||
m_view(SolidColorView(KDColorRed)),
|
||||
m_sequenceStore(sequenceStore)
|
||||
{
|
||||
}
|
||||
|
||||
const char * ValuesController::title() const {
|
||||
return "Valeurs";
|
||||
}
|
||||
|
||||
View * ValuesController::view() {
|
||||
return &m_view;
|
||||
}
|
||||
|
||||
void ValuesController::didBecomeFirstResponder() {
|
||||
headerViewController()->setSelectedButton(-1);
|
||||
}
|
||||
|
||||
int ValuesController::numberOfButtons() const {
|
||||
return 0;
|
||||
}
|
||||
|
||||
Button * ValuesController::buttonAtIndex(int index) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
bool ValuesController::isEmpty() const {
|
||||
if (m_sequenceStore->numberOfActiveFunctions() == 0) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
const char * ValuesController::emptyMessage() {
|
||||
if (m_sequenceStore->numberOfDefinedFunctions() == 0) {
|
||||
return "Aucune fonction";
|
||||
}
|
||||
return "Aucune fonction selectionnee";
|
||||
}
|
||||
|
||||
Responder * ValuesController::defaultController() {
|
||||
return (parentResponder()->parentResponder()->parentResponder()->parentResponder());
|
||||
}
|
||||
|
||||
}
|
||||
27
apps/sequence/values/values_controller.h
Normal file
27
apps/sequence/values/values_controller.h
Normal file
@@ -0,0 +1,27 @@
|
||||
#ifndef SEQUENCE_VALUES_CONTROLLER_H
|
||||
#define SEQUENCE_VALUES_CONTROLLER_H
|
||||
|
||||
#include <escher.h>
|
||||
#include "../sequence_store.h"
|
||||
|
||||
namespace Sequence {
|
||||
|
||||
class ValuesController : public ViewController, public HeaderViewDelegate, public AlternateEmptyViewDelegate {
|
||||
public:
|
||||
ValuesController(Responder * parentResponder, SequenceStore * sequenceStore, HeaderViewController * header);
|
||||
const char * title() const override;
|
||||
View * view() override;
|
||||
void didBecomeFirstResponder() override;
|
||||
int numberOfButtons() const override;
|
||||
Button * buttonAtIndex(int index) override;
|
||||
bool isEmpty() const override;
|
||||
const char * emptyMessage() override;
|
||||
Responder * defaultController() override;
|
||||
private:
|
||||
SolidColorView m_view;
|
||||
SequenceStore * m_sequenceStore;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user