mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-18 21:30:38 +01:00
[apps] More generic VariableBoxController methods
Before, the class differentiated between TextField and ExpressionLayoutField Change-Id: I1fce8bb650a0bfccb11ddf61d05335e452374abb
This commit is contained in:
@@ -48,7 +48,7 @@ bool ExpressionFieldDelegateApp::expressionLayoutFieldDidReceiveEvent(Expression
|
||||
}
|
||||
AppsContainer * appsContainer = (AppsContainer *)expressionLayoutField->app()->container();
|
||||
VariableBoxController * variableBoxController = appsContainer->variableBoxController();
|
||||
variableBoxController->setExpressionLayoutFieldSender(expressionLayoutField);
|
||||
variableBoxController->setSender(expressionLayoutField);
|
||||
expressionLayoutField->app()->displayModalViewController(variableBoxController, 0.f, 0.f, Metric::PopUpTopMargin, Metric::PopUpLeftMargin, 0, Metric::PopUpRightMargin);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -93,7 +93,7 @@ bool TextFieldDelegateApp::textFieldDidReceiveEvent(TextField * textField, Ion::
|
||||
}
|
||||
AppsContainer * appsContainer = (AppsContainer *)textField->app()->container();
|
||||
VariableBoxController * variableBoxController = appsContainer->variableBoxController();
|
||||
variableBoxController->setTextFieldSender(textField);
|
||||
variableBoxController->setSender(textField);
|
||||
textField->app()->displayModalViewController(variableBoxController, 0.f, 0.f, Metric::PopUpTopMargin, Metric::PopUpLeftMargin, 0, Metric::PopUpRightMargin);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ bool VariableBoxController::ContentViewController::handleEvent(Ion::Events::Even
|
||||
char label[3];
|
||||
putLabelAtIndexInBuffer(selectedRow(), label);
|
||||
const char * editedText = label;
|
||||
m_insertTextAction(m_sender, editedText);
|
||||
m_sender->handleEventWithText(editedText);
|
||||
#if MATRIX_VARIABLES
|
||||
m_selectableTableView.deselectTable();
|
||||
m_currentPage = Page::RootMenu;
|
||||
@@ -195,16 +195,6 @@ int VariableBoxController::ContentViewController::typeAtLocation(int i, int j) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
void VariableBoxController::ContentViewController::setTextFieldSender(TextField * textField) {
|
||||
m_sender = textField;
|
||||
m_insertTextAction = &insertTextInTextInput;
|
||||
}
|
||||
|
||||
void VariableBoxController::ContentViewController::setExpressionLayoutFieldSender(ExpressionLayoutField * expressionLayoutField) {
|
||||
m_sender = expressionLayoutField;
|
||||
m_insertTextAction = &insertTextInExpressionLayoutField;
|
||||
}
|
||||
|
||||
void VariableBoxController::ContentViewController::reloadData() {
|
||||
m_selectableTableView.reloadData();
|
||||
}
|
||||
@@ -290,19 +280,6 @@ ExpressionLayout * VariableBoxController::ContentViewController::expressionLayou
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void VariableBoxController::ContentViewController::insertTextInTextInput(void * sender, const char * textToInsert) {
|
||||
TextInput * textInput = static_cast<TextInput *>(sender);
|
||||
textInput->handleEventWithText(textToInsert);
|
||||
}
|
||||
|
||||
void VariableBoxController::ContentViewController::insertTextInExpressionLayoutField(void * sender, const char * textToInsert) {
|
||||
ExpressionLayoutField * expressionLayoutField = static_cast<ExpressionLayoutField *>(sender);
|
||||
if (!expressionLayoutField->isEditing()) {
|
||||
expressionLayoutField->setEditing(true);
|
||||
}
|
||||
expressionLayoutField->insertLayoutFromTextAtCursor(textToInsert);
|
||||
}
|
||||
|
||||
VariableBoxController::VariableBoxController(GlobalContext * context) :
|
||||
StackViewController(nullptr, &m_contentViewController, KDColorWhite, Palette::PurpleBright, Palette::PurpleDark),
|
||||
m_contentViewController(this, context)
|
||||
@@ -313,12 +290,8 @@ void VariableBoxController::didBecomeFirstResponder() {
|
||||
app()->setFirstResponder(&m_contentViewController);
|
||||
}
|
||||
|
||||
void VariableBoxController::setTextFieldSender(TextField * textField) {
|
||||
m_contentViewController.setTextFieldSender(textField);
|
||||
}
|
||||
|
||||
void VariableBoxController::setExpressionLayoutFieldSender(ExpressionLayoutField * expressionLayoutField) {
|
||||
m_contentViewController.setExpressionLayoutFieldSender(expressionLayoutField);
|
||||
void VariableBoxController::setSender(Responder * sender) {
|
||||
m_contentViewController.setSender(sender);
|
||||
}
|
||||
|
||||
void VariableBoxController::viewWillAppear() {
|
||||
|
||||
@@ -10,11 +10,9 @@
|
||||
|
||||
class VariableBoxController : public StackViewController {
|
||||
public:
|
||||
typedef void (*Action)(void * sender, const char * text);
|
||||
VariableBoxController(Poincare::GlobalContext * context);
|
||||
void didBecomeFirstResponder() override;
|
||||
void setTextFieldSender(TextField * textField);
|
||||
void setExpressionLayoutFieldSender(ExpressionLayoutField * expressionLayoutField);
|
||||
void setSender(Responder * sender);
|
||||
void viewWillAppear() override;
|
||||
void viewDidDisappear() override;
|
||||
private:
|
||||
@@ -33,8 +31,7 @@ private:
|
||||
KDCoordinate cumulatedHeightFromIndex(int j) override;
|
||||
int indexFromCumulatedHeight(KDCoordinate offsetY) override;
|
||||
int typeAtLocation(int i, int j) override;
|
||||
void setTextFieldSender(TextField * textField);
|
||||
void setExpressionLayoutFieldSender(ExpressionLayoutField * expressionLayoutField);
|
||||
void setSender(Responder * responder) { m_sender = responder; }
|
||||
void reloadData();
|
||||
void resetPage();
|
||||
void viewDidDisappear() override;
|
||||
@@ -59,11 +56,8 @@ private:
|
||||
I18n::Message nodeLabelAtIndex(int index);
|
||||
const Poincare::Expression * expressionForIndex(int index);
|
||||
Poincare::ExpressionLayout * expressionLayoutForIndex(int index);
|
||||
static void insertTextInTextInput(void * sender, const char * textToInsert);
|
||||
static void insertTextInExpressionLayoutField(void * sender, const char * textToInsert);
|
||||
Poincare::GlobalContext * m_context;
|
||||
Responder * m_sender;
|
||||
Action m_insertTextAction;
|
||||
int m_firstSelectedRow;
|
||||
int m_previousSelectedRow;
|
||||
Page m_currentPage;
|
||||
|
||||
Reference in New Issue
Block a user