mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[apps] Use even odd editable text cell in values controller
Change-Id: I8d5f6dc7656a50000849de85f5b3ba537756eaf1
This commit is contained in:
@@ -19,7 +19,6 @@ app_objs += $(addprefix apps/graph/,\
|
||||
local_context.o\
|
||||
values/abscissa_parameter_controller.o\
|
||||
values/derivative_parameter_controller.o\
|
||||
values/editable_value_cell.o\
|
||||
values/function_parameter_controller.o\
|
||||
values/interval.o\
|
||||
values/interval_parameter_controller.o\
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
#include "editable_value_cell.h"
|
||||
#include "../../apps_container.h"
|
||||
#include <assert.h>
|
||||
#include "../app.h"
|
||||
|
||||
namespace Graph {
|
||||
|
||||
EditableValueCell::EditableValueCell(char * draftTextBuffer) :
|
||||
EvenOddCell(),
|
||||
Responder(nullptr),
|
||||
m_textField(TextField(this, m_textBody, draftTextBuffer, 255, nullptr, 1.0f, 0.5f, KDColorBlack, KDColorWhite))
|
||||
{
|
||||
}
|
||||
|
||||
void EditableValueCell::setDelegate(TextFieldDelegate * delegate) {
|
||||
m_textField.setTextFieldDelegate(delegate);
|
||||
}
|
||||
|
||||
void EditableValueCell::reloadCell() {
|
||||
EvenOddCell::reloadCell();
|
||||
m_textField.setBackgroundColor(backgroundColor());
|
||||
}
|
||||
|
||||
const char * EditableValueCell::text() const {
|
||||
return m_textField.text();
|
||||
}
|
||||
|
||||
void EditableValueCell::setText(const char * textContent) {
|
||||
m_textField.setText(textContent);
|
||||
}
|
||||
|
||||
int EditableValueCell::numberOfSubviews() const {
|
||||
return 1;
|
||||
}
|
||||
|
||||
View * EditableValueCell::subviewAtIndex(int index) {
|
||||
assert(index == 0);
|
||||
return &m_textField;
|
||||
}
|
||||
|
||||
void EditableValueCell::layoutSubviews() {
|
||||
m_textField.setFrame(bounds());
|
||||
}
|
||||
|
||||
void EditableValueCell::didBecomeFirstResponder() {
|
||||
app()->setFirstResponder(&m_textField);
|
||||
}
|
||||
|
||||
void EditableValueCell::setEditing(bool isEditing) {
|
||||
m_textField.setEditing(isEditing);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
#ifndef GRAPH_EDITABLE_VALUE_CELL_H
|
||||
#define GRAPH_EDITABLE_VALUE_CELL_H
|
||||
|
||||
#include <escher.h>
|
||||
#include <poincare.h>
|
||||
|
||||
namespace Graph {
|
||||
class EditableValueCell : public EvenOddCell, public Responder {
|
||||
public:
|
||||
EditableValueCell(char * draftTextBuffer);
|
||||
void setDelegate(TextFieldDelegate * delegate);
|
||||
void reloadCell() override;
|
||||
const char * text() const;
|
||||
void setText(const char * textContent);
|
||||
int numberOfSubviews() const override;
|
||||
View * subviewAtIndex(int index) override;
|
||||
void layoutSubviews() override;
|
||||
void didBecomeFirstResponder() override;
|
||||
void setEditing(bool isEditing);
|
||||
constexpr static int k_bufferLength = 255;
|
||||
private:
|
||||
TextField m_textField;
|
||||
char m_textBody[k_bufferLength];
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -10,8 +10,8 @@ ValuesController::ValuesController(Responder * parentResponder, FunctionStore *
|
||||
ViewController(parentResponder),
|
||||
HeaderViewDelegate(header),
|
||||
m_selectableTableView(SelectableTableView(this, this, k_topMargin, k_rightMargin, k_bottomMargin, k_leftMargin, this)),
|
||||
m_abscissaCells{EditableValueCell(m_draftTextBuffer), EditableValueCell(m_draftTextBuffer), EditableValueCell(m_draftTextBuffer),EditableValueCell(m_draftTextBuffer),
|
||||
EditableValueCell(m_draftTextBuffer), EditableValueCell(m_draftTextBuffer), EditableValueCell(m_draftTextBuffer), EditableValueCell(m_draftTextBuffer)},
|
||||
m_abscissaCells{EvenOddEditableTextCell(m_draftTextBuffer), EvenOddEditableTextCell(m_draftTextBuffer), EvenOddEditableTextCell(m_draftTextBuffer),EvenOddEditableTextCell(m_draftTextBuffer),
|
||||
EvenOddEditableTextCell(m_draftTextBuffer), EvenOddEditableTextCell(m_draftTextBuffer), EvenOddEditableTextCell(m_draftTextBuffer), EvenOddEditableTextCell(m_draftTextBuffer)},
|
||||
m_functionStore(functionStore),
|
||||
m_intervalParameterController(IntervalParameterController(this, &m_interval)),
|
||||
m_abscissaParameterController(AbscissaParameterController(this, &m_intervalParameterController)),
|
||||
@@ -246,12 +246,12 @@ void ValuesController::configureDerivativeFunction() {
|
||||
|
||||
void ValuesController::tableViewDidChangeSelection(SelectableTableView * t, int previousSelectedCellX, int previousSelectedCellY) {
|
||||
if (previousSelectedCellX == 0 && previousSelectedCellY > 0) {
|
||||
EditableValueCell * myCell = (EditableValueCell *)t->cellAtLocation(previousSelectedCellX, previousSelectedCellY);
|
||||
EvenOddEditableTextCell * myCell = (EvenOddEditableTextCell *)t->cellAtLocation(previousSelectedCellX, previousSelectedCellY);
|
||||
myCell->setEditing(false);
|
||||
app()->setFirstResponder(t);
|
||||
}
|
||||
if (t->selectedRow() > 0 && t->selectedColumn() == 0) {
|
||||
EditableValueCell * myCell = (EditableValueCell *)t->cellAtLocation(t->selectedColumn(), t->selectedRow());
|
||||
EvenOddEditableTextCell * myCell = (EvenOddEditableTextCell *)t->cellAtLocation(t->selectedColumn(), t->selectedRow());
|
||||
app()->setFirstResponder(myCell);
|
||||
}
|
||||
}
|
||||
@@ -343,7 +343,7 @@ void ValuesController::willDisplayCellAtLocation(TableViewCell * cell, int i, in
|
||||
if (numberOfIntervalElements < Interval::k_maxNumberOfElements) {
|
||||
buffer[0] = 0;
|
||||
if (i == 0) {
|
||||
EditableValueCell * myEditableValueCell = (EditableValueCell *)cell;
|
||||
EvenOddEditableTextCell * myEditableValueCell = (EvenOddEditableTextCell *)cell;
|
||||
myEditableValueCell->setText(buffer);
|
||||
} else {
|
||||
ValueCell * myValueCell = (ValueCell *)cell;
|
||||
@@ -354,7 +354,7 @@ void ValuesController::willDisplayCellAtLocation(TableViewCell * cell, int i, in
|
||||
}
|
||||
// Special case: first column
|
||||
if (i == 0){
|
||||
EditableValueCell * myEditableValueCell = (EditableValueCell *)cell;
|
||||
EvenOddEditableTextCell * myEditableValueCell = (EvenOddEditableTextCell *)cell;
|
||||
Float(m_interval.element(j-1)).convertFloatToText(buffer, Constant::FloatBufferSizeInScientificMode, Constant::NumberOfDigitsInMantissaInScientificMode);
|
||||
myEditableValueCell->setText(buffer);
|
||||
return;
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
#include "../function_store.h"
|
||||
#include "../function_title_cell.h"
|
||||
#include "value_cell.h"
|
||||
#include "editable_value_cell.h"
|
||||
#include "title_cell.h"
|
||||
#include "interval.h"
|
||||
#include "abscissa_parameter_controller.h"
|
||||
@@ -76,8 +75,8 @@ private:
|
||||
TitleCell m_abscissaTitleCell;
|
||||
FunctionTitleCell m_functionTitleCells[k_maxNumberOfFunctions];
|
||||
ValueCell m_floatCells[k_maxNumberOfCells];
|
||||
char m_draftTextBuffer[EditableValueCell::k_bufferLength];
|
||||
EditableValueCell m_abscissaCells[k_maxNumberOfAbscissaCells];
|
||||
char m_draftTextBuffer[EditableTextCell::k_bufferLength];
|
||||
EvenOddEditableTextCell m_abscissaCells[k_maxNumberOfAbscissaCells];
|
||||
FunctionStore * m_functionStore;
|
||||
Interval m_interval;
|
||||
IntervalParameterController m_intervalParameterController;
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
|
||||
#include <escher.h>
|
||||
#include "../graph/values/title_cell.h"
|
||||
#include "../graph/values/editable_value_cell.h"
|
||||
|
||||
namespace Statistics {
|
||||
|
||||
@@ -33,7 +32,7 @@ private:
|
||||
constexpr static int k_maxNumberOfEditableCells = 20;
|
||||
constexpr static int k_numberOfTitleCells = 2;
|
||||
Responder * tabController() const;
|
||||
//Graph::EditableValueCell m_editableCells[k_maxNumberOfEditableCells];
|
||||
//EvenOddEditableTextCell m_editableCells[k_maxNumberOfEditableCells];
|
||||
Graph::TitleCell m_titleCells[k_numberOfTitleCells];
|
||||
SelectableTableView m_selectableTableView;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user