[apps/calculation] Handle OK events on additional outputs pop-up - WIP

This commit is contained in:
Émilie Feral
2020-01-13 13:45:14 +01:00
committed by Léa Saviot
parent 3d4d46c489
commit fef0538941
12 changed files with 36 additions and 21 deletions

View File

@@ -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

View File

@@ -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++) {

View File

@@ -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;

View File

@@ -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++) {

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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;
};
}

View File

@@ -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;

View File

@@ -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:

View File

@@ -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);

View File

@@ -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;