mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
111 lines
2.8 KiB
C++
111 lines
2.8 KiB
C++
#include "graph_controller.h"
|
|
|
|
namespace Regression {
|
|
|
|
GraphController::GraphController(Responder * parentResponder, HeaderViewController * headerViewController, Data * data) :
|
|
ViewController(parentResponder),
|
|
HeaderViewDelegate(headerViewController),
|
|
m_view(GraphView(data)),
|
|
m_windowButton(this, "Axes", Invocation([](void * context, void * sender) {}, this)),
|
|
m_zoomButton(this, "Zoom", Invocation([](void * context, void * sender) {}, this)),
|
|
m_defaultInitialisationButton(this, "Initialisation", Invocation([](void * context, void * sender) {}, this)),
|
|
m_data(data)
|
|
{
|
|
}
|
|
|
|
const char * GraphController::title() const {
|
|
return "Graph";
|
|
}
|
|
|
|
View * GraphController::view() {
|
|
return &m_view;
|
|
}
|
|
|
|
bool GraphController::handleEvent(Ion::Events::Event event) {
|
|
if (!m_view.isMainViewSelected()) {
|
|
if (event == Ion::Events::Down) {
|
|
headerViewController()->setSelectedButton(-1);
|
|
m_view.selectMainView(true);
|
|
m_view.reloadSelection();
|
|
return true;
|
|
}
|
|
if (event == Ion::Events::Up) {
|
|
headerViewController()->setSelectedButton(-1);
|
|
app()->setFirstResponder(tabController());
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
if (event == Ion::Events::Up) {
|
|
m_view.reloadSelection();
|
|
if (!m_data->cursorSelectUp()) {
|
|
m_view.selectMainView(false);
|
|
headerViewController()->setSelectedButton(0);
|
|
return true;
|
|
}
|
|
m_view.reloadSelection();
|
|
return true;
|
|
}
|
|
if (event == Ion::Events::Down) {
|
|
m_view.reloadSelection();
|
|
bool didMoveCursor = m_data->cursorSelectBottom();
|
|
m_view.reloadSelection();
|
|
return didMoveCursor;
|
|
}
|
|
if (event == Ion::Events::Left) {
|
|
m_view.reloadSelection();
|
|
bool didMoveCursor = m_data->cursorSelectLeft();
|
|
m_view.reloadSelection();
|
|
return didMoveCursor;
|
|
}
|
|
if (event == Ion::Events::Right) {
|
|
m_view.reloadSelection();
|
|
bool didMoveCursor = m_data->cursorSelectRight();
|
|
m_view.reloadSelection();
|
|
return didMoveCursor;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
void GraphController::didBecomeFirstResponder() {
|
|
headerViewController()->setSelectedButton(-1);
|
|
m_view.selectMainView(true);
|
|
m_view.reload();
|
|
}
|
|
|
|
|
|
int GraphController::numberOfButtons() const {
|
|
return 3;
|
|
}
|
|
Button * GraphController::buttonAtIndex(int index) {
|
|
if (index == 0) {
|
|
return &m_windowButton;
|
|
}
|
|
if (index == 1) {
|
|
return &m_zoomButton;
|
|
}
|
|
return &m_defaultInitialisationButton;
|
|
}
|
|
|
|
bool GraphController::isEmpty() {
|
|
if (m_data->numberOfPairs() == 0) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
const char * GraphController::emptyMessage() {
|
|
return "Aucune donnee a tracer";
|
|
}
|
|
|
|
Responder * GraphController::defaultController() {
|
|
return tabController();
|
|
}
|
|
|
|
Responder * GraphController::tabController() const {
|
|
return (parentResponder()->parentResponder()->parentResponder()->parentResponder());
|
|
}
|
|
|
|
}
|
|
|