mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[apps/calculation] Handle OK events on additional outputs pop-up - WIP
This commit is contained in:
@@ -9,8 +9,8 @@ namespace Calculation {
|
||||
|
||||
class ComplexListController : public IllustratedListController {
|
||||
public:
|
||||
ComplexListController() :
|
||||
IllustratedListController(nullptr),
|
||||
ComplexListController(EditExpressionController * editExpressionController) :
|
||||
IllustratedListController(nullptr, editExpressionController),
|
||||
m_complexGraphCell(&m_model) {}
|
||||
|
||||
// ViewController
|
||||
|
||||
@@ -7,8 +7,8 @@ namespace Calculation {
|
||||
|
||||
/* Expressions list controller */
|
||||
|
||||
ExpressionsListController::ExpressionsListController(Responder * parentResponder) :
|
||||
ListController(parentResponder),
|
||||
ExpressionsListController::ExpressionsListController(Responder * parentResponder, EditExpressionController * editExpressionController) :
|
||||
ListController(parentResponder, editExpressionController),
|
||||
m_cells{}
|
||||
{
|
||||
for (int i = 0; i < k_maxNumberOfCells; i++) {
|
||||
|
||||
@@ -10,7 +10,7 @@ namespace Calculation {
|
||||
|
||||
class ExpressionsListController : public ListController {
|
||||
public:
|
||||
ExpressionsListController(Responder * parentResponder);
|
||||
ExpressionsListController(Responder * parentResponder, EditExpressionController * editExpressionController);
|
||||
|
||||
// Responder
|
||||
void didEnterResponderChain(Responder * previousFirstResponder) override;
|
||||
|
||||
@@ -8,8 +8,8 @@ namespace Calculation {
|
||||
|
||||
/* Illustrated list controller */
|
||||
|
||||
IllustratedListController::IllustratedListController(Responder * parentResponder) :
|
||||
ListController(parentResponder, this),
|
||||
IllustratedListController::IllustratedListController(Responder * parentResponder, EditExpressionController * editExpressionController) :
|
||||
ListController(parentResponder, editExpressionController, this),
|
||||
m_additionalCalculationCells{}
|
||||
{
|
||||
for (int i = 0; i < k_maxNumberOfAdditionalCalculations; i++) {
|
||||
|
||||
@@ -11,7 +11,7 @@ namespace Calculation {
|
||||
|
||||
class IllustratedListController : public ListController, public SelectableTableViewDelegate {
|
||||
public:
|
||||
IllustratedListController(Responder * parentResponder);
|
||||
IllustratedListController(Responder * parentResponder, EditExpressionController * editExpressionController);
|
||||
|
||||
// Responder
|
||||
void viewDidDisappear() override;
|
||||
|
||||
@@ -7,8 +7,8 @@ namespace Calculation {
|
||||
|
||||
class IntegerListController : public ExpressionsListController {
|
||||
public:
|
||||
IntegerListController() :
|
||||
ExpressionsListController(nullptr) {}
|
||||
IntegerListController(EditExpressionController * editExpressionController) :
|
||||
ExpressionsListController(nullptr, editExpressionController) {}
|
||||
|
||||
//ListViewDataSource
|
||||
int numberOfRows() const override;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include "list_controller.h"
|
||||
#include "../edit_expression_controller.h"
|
||||
|
||||
using namespace Poincare;
|
||||
|
||||
@@ -20,13 +21,20 @@ void ListController::InnerListController::didBecomeFirstResponder() {
|
||||
|
||||
/* List Controller */
|
||||
|
||||
ListController::ListController(Responder * parentResponder, SelectableTableViewDelegate * delegate) :
|
||||
ListController::ListController(Responder * parentResponder, EditExpressionController * editExpressionController, SelectableTableViewDelegate * delegate) :
|
||||
StackViewController(parentResponder, &m_listController, KDColorWhite, Palette::PurpleBright, Palette::PurpleDark),
|
||||
m_listController(this, delegate)
|
||||
m_listController(this, delegate),
|
||||
m_editExpressionController(editExpressionController)
|
||||
{
|
||||
}
|
||||
|
||||
bool ListController::handleEvent(Ion::Events::Event event) {
|
||||
if (event == Ion::Events::OK || event == Ion::Events::EXE) {
|
||||
m_editExpressionController->insertTextBody("TODO");
|
||||
Container::activeApp()->dismissModalViewController();
|
||||
Container::activeApp()->setFirstResponder(m_editExpressionController);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -6,9 +6,11 @@
|
||||
|
||||
namespace Calculation {
|
||||
|
||||
class EditExpressionController;
|
||||
|
||||
class ListController : public StackViewController, public ListViewDataSource, public SelectableTableViewDataSource {
|
||||
public:
|
||||
ListController(Responder * parentResponder, SelectableTableViewDelegate * delegate = nullptr);
|
||||
ListController(Responder * parentResponder, EditExpressionController * editExpressionController, SelectableTableViewDelegate * delegate = nullptr);
|
||||
|
||||
// Responder
|
||||
bool handleEvent(Ion::Events::Event event) override;
|
||||
@@ -29,6 +31,7 @@ protected:
|
||||
SelectableTableView m_selectableTableView;
|
||||
};
|
||||
InnerListController m_listController;
|
||||
EditExpressionController * m_editExpressionController;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -7,8 +7,8 @@ namespace Calculation {
|
||||
|
||||
class RationalListController : public ExpressionsListController {
|
||||
public:
|
||||
RationalListController() :
|
||||
ExpressionsListController(nullptr) {}
|
||||
RationalListController(EditExpressionController * editExpressionController) :
|
||||
ExpressionsListController(nullptr, editExpressionController) {}
|
||||
|
||||
//ListViewDataSource
|
||||
int numberOfRows() const override;
|
||||
|
||||
@@ -9,8 +9,8 @@ namespace Calculation {
|
||||
|
||||
class TrigonometryListController : public IllustratedListController {
|
||||
public:
|
||||
TrigonometryListController() :
|
||||
IllustratedListController(nullptr),
|
||||
TrigonometryListController(EditExpressionController * editExpressionController) :
|
||||
IllustratedListController(nullptr, editExpressionController),
|
||||
m_graphCell(&m_model) {}
|
||||
void setExpression(Poincare::Expression e) override;
|
||||
private:
|
||||
|
||||
@@ -7,11 +7,15 @@ using namespace Poincare;
|
||||
|
||||
namespace Calculation {
|
||||
|
||||
HistoryController::HistoryController(Responder * parentResponder, CalculationStore * calculationStore) :
|
||||
ViewController(parentResponder),
|
||||
HistoryController::HistoryController(EditExpressionController * editExpressionController, CalculationStore * calculationStore) :
|
||||
ViewController(editExpressionController),
|
||||
m_selectableTableView(this, this, this, this),
|
||||
m_calculationHistory{},
|
||||
m_calculationStore(calculationStore)
|
||||
m_calculationStore(calculationStore),
|
||||
m_complexController(editExpressionController),
|
||||
m_integerController(editExpressionController),
|
||||
m_rationalController(editExpressionController),
|
||||
m_trigonometryController(editExpressionController)
|
||||
{
|
||||
for (int i = 0; i < k_maxNumberOfDisplayedRows; i++) {
|
||||
m_calculationHistory[i].setParentResponder(&m_selectableTableView);
|
||||
|
||||
@@ -16,7 +16,7 @@ class App;
|
||||
|
||||
class HistoryController : public ViewController, public ListViewDataSource, public SelectableTableViewDataSource, public SelectableTableViewDelegate, public HistoryViewCellDataSource {
|
||||
public:
|
||||
HistoryController(Responder * parentResponder, CalculationStore * calculationStore);
|
||||
HistoryController(EditExpressionController * editExpressionController, CalculationStore * calculationStore);
|
||||
View * view() override { return &m_selectableTableView; }
|
||||
bool handleEvent(Ion::Events::Event event) override;
|
||||
void viewWillAppear() override;
|
||||
|
||||
Reference in New Issue
Block a user