mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-18 16:27:34 +01:00
[escher] Rework of timers and bigger text in toolboxes
This commit is contained in:
@@ -58,6 +58,11 @@ AppsContainer::AppsContainer() :
|
||||
Poincare::Expression::SetCircuitBreaker(AppsContainer::poincareCircuitBreaker);
|
||||
// #endif
|
||||
Ion::Storage::sharedStorage()->setDelegate(this);
|
||||
|
||||
addTimer(&m_batteryTimer);
|
||||
addTimer(&m_suspendTimer);
|
||||
addTimer(&m_backlightDimmingTimer);
|
||||
addTimer(&m_clockTimer);
|
||||
}
|
||||
|
||||
bool AppsContainer::poincareCircuitBreaker() {
|
||||
@@ -458,15 +463,6 @@ Window * AppsContainer::window() {
|
||||
return &m_window;
|
||||
}
|
||||
|
||||
int AppsContainer::numberOfContainerTimers() {
|
||||
return 4;
|
||||
}
|
||||
|
||||
Timer * AppsContainer::containerTimerAtIndex(int i) {
|
||||
Timer * timers[4] = {&m_batteryTimer, &m_suspendTimer, &m_backlightDimmingTimer, &m_clockTimer};
|
||||
return timers[i];
|
||||
}
|
||||
|
||||
void AppsContainer::resetShiftAlphaStatus() {
|
||||
Ion::Events::setShiftAlphaStatus(Ion::Events::ShiftAlphaStatus::Default);
|
||||
updateAlphaLock();
|
||||
|
||||
@@ -59,8 +59,6 @@ protected:
|
||||
Home::App::Snapshot * homeAppSnapshot() { return &m_homeSnapshot; }
|
||||
private:
|
||||
Window * window() override;
|
||||
int numberOfContainerTimers() override;
|
||||
Timer * containerTimerAtIndex(int i) override;
|
||||
bool processEvent(Ion::Events::Event event);
|
||||
void resetShiftAlphaStatus();
|
||||
bool updateAlphaLock();
|
||||
|
||||
@@ -112,7 +112,7 @@ int UnitListController::numberOfRows() const {
|
||||
|
||||
void UnitListController::willDisplayCellForIndex(HighlightCell * cell, int index) {
|
||||
if (index == 0) {
|
||||
MessageTableCell * messageTableCell = (MessageTableCell *)cell;
|
||||
MessageTableCell<> * messageTableCell = (MessageTableCell<> *)cell;
|
||||
messageTableCell->setMessage(m_dimensionMessage);
|
||||
} else {
|
||||
ExpressionsListController::willDisplayCellForIndex(cell, index - 1);
|
||||
|
||||
@@ -23,7 +23,7 @@ public:
|
||||
private:
|
||||
I18n::Message messageAtIndex(int index) override;
|
||||
I18n::Message m_dimensionMessage;
|
||||
MessageTableCell m_dimensionCell;
|
||||
MessageTableCell<> m_dimensionCell;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -75,7 +75,7 @@ public:
|
||||
|
||||
VariableBoxController * variableBoxController() { return &m_variableBoxController; }
|
||||
|
||||
static constexpr int k_pythonHeapSize = 70000;
|
||||
static constexpr int k_pythonHeapSize = 69500;
|
||||
|
||||
private:
|
||||
/* Python delegate:
|
||||
|
||||
@@ -10,22 +10,22 @@ extern "C" {
|
||||
namespace Code {
|
||||
|
||||
const ToolboxMessageTree forLoopChildren[] = {
|
||||
ToolboxMessageTree::Leaf(I18n::Message::ForInRange1ArgLoopWithArg, I18n::Message::Default, false, I18n::Message::ForInRange1ArgLoop),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::ForInRange2ArgsLoopWithArg, I18n::Message::Default, false, I18n::Message::ForInRange2ArgsLoop),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::ForInRange3ArgsLoopWithArg, I18n::Message::Default, false, I18n::Message::ForInRange3ArgsLoop),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::ForInListLoopWithArg, I18n::Message::Default, false, I18n::Message::ForInListLoop)
|
||||
ToolboxMessageTree::Leaf(I18n::Message::ForInRange1ArgLoopWithArg, I18n::Message::Default, false, I18n::Message::ForInRange1ArgLoop, true, 2),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::ForInRange2ArgsLoopWithArg, I18n::Message::Default, false, I18n::Message::ForInRange2ArgsLoop, true, 2),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::ForInRange3ArgsLoopWithArg, I18n::Message::Default, false, I18n::Message::ForInRange3ArgsLoop, true, 2),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::ForInListLoopWithArg, I18n::Message::Default, false, I18n::Message::ForInListLoop, true, 2)
|
||||
};
|
||||
|
||||
const ToolboxMessageTree ifStatementChildren[] = {
|
||||
ToolboxMessageTree::Leaf(I18n::Message::IfElseStatementWithArg, I18n::Message::Default, false, I18n::Message::IfElseStatement),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::IfThenStatementWithArg, I18n::Message::Default, false, I18n::Message::IfThenStatement),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::IfElifElseStatementWithArg, I18n::Message::Default, false, I18n::Message::IfElifElseStatement),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::IfAndIfElseStatementWithArg, I18n::Message::Default, false, I18n::Message::IfAndIfElseStatement),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::IfOrIfElseStatementWithArg, I18n::Message::Default, false, I18n::Message::IfOrIfElseStatement)
|
||||
ToolboxMessageTree::Leaf(I18n::Message::IfElseStatementWithArg, I18n::Message::Default, false, I18n::Message::IfElseStatement, true, 4),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::IfThenStatementWithArg, I18n::Message::Default, false, I18n::Message::IfThenStatement, true, 2),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::IfElifElseStatementWithArg, I18n::Message::Default, false, I18n::Message::IfElifElseStatement, true, 6),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::IfAndIfElseStatementWithArg, I18n::Message::Default, false, I18n::Message::IfAndIfElseStatement, true, 4),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::IfOrIfElseStatementWithArg, I18n::Message::Default, false, I18n::Message::IfOrIfElseStatement, true, 4)
|
||||
};
|
||||
|
||||
const ToolboxMessageTree whileLoopChildren[] = {
|
||||
ToolboxMessageTree::Leaf(I18n::Message::WhileLoopWithArg, I18n::Message::Default, false, I18n::Message::WhileLoop)
|
||||
ToolboxMessageTree::Leaf(I18n::Message::WhileLoopWithArg, I18n::Message::Default, false, I18n::Message::WhileLoop, true, 2)
|
||||
};
|
||||
|
||||
const ToolboxMessageTree conditionsChildren[] = {
|
||||
@@ -683,10 +683,10 @@ const ToolboxMessageTree fileChildren[] {
|
||||
};
|
||||
|
||||
const ToolboxMessageTree exceptionsChildren[] = {
|
||||
ToolboxMessageTree::Leaf(I18n::Message::TryExcept1ErrorWithArg, I18n::Message::Default, false, I18n::Message::TryExcept1Error),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::TryExcept1ErrorElseWithArg, I18n::Message::Default, false, I18n::Message::TryExcept1ErrorElse),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::TryExcept2ErrorWithArg, I18n::Message::Default, false, I18n::Message::TryExcept2Error),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::WithInstructionWithArg, I18n::Message::Default, false, I18n::Message::WithInstruction),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::TryExcept1ErrorWithArg, I18n::Message::Default, false, I18n::Message::TryExcept1Error, true, 4),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::TryExcept1ErrorElseWithArg, I18n::Message::Default, false, I18n::Message::TryExcept1ErrorElse, true, 6),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::TryExcept2ErrorWithArg, I18n::Message::Default, false, I18n::Message::TryExcept2Error, true, 4),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::WithInstructionWithArg, I18n::Message::Default, false, I18n::Message::WithInstruction, true, 2),
|
||||
};
|
||||
|
||||
const ToolboxMessageTree menu[] = {
|
||||
@@ -704,6 +704,10 @@ const ToolboxMessageTree toolboxModel = ToolboxMessageTree::Node(I18n::Message::
|
||||
PythonToolbox::PythonToolbox() :
|
||||
Toolbox(nullptr, rootModel()->label())
|
||||
{
|
||||
for (int i=0; i < k_maxNumberOfDisplayedRows; i++) {
|
||||
m_leafCells[i].setMessageFont(KDFont::LargeFont);
|
||||
m_nodeCells[i].setMessageFont(KDFont::LargeFont);
|
||||
}
|
||||
}
|
||||
|
||||
const ToolboxMessageTree * PythonToolbox::moduleChildren(const char * name, int * numberOfNodes) const {
|
||||
@@ -734,19 +738,17 @@ bool PythonToolbox::handleEvent(Ion::Events::Event event) {
|
||||
return false;
|
||||
}
|
||||
|
||||
void PythonToolbox::willDisplayCellForIndex(HighlightCell * cell, int index) {
|
||||
Toolbox::willDisplayCellForIndex(cell, index);
|
||||
const ToolboxMessageTree * messageTree = static_cast<const ToolboxMessageTree *>(m_messageTreeModel->childAtIndex(index));
|
||||
MessageTableCell<SlideableMessageTextView> * myCell = static_cast<MessageTableCell<SlideableMessageTextView> *>(cell);
|
||||
myCell->setMessageFont(messageTree->isMultiLine() ? KDFont::SmallFont : KDFont::LargeFont);
|
||||
}
|
||||
|
||||
KDCoordinate PythonToolbox::rowHeight(int j) {
|
||||
if (typeAtLocation(0, j) == Toolbox::LeafCellType && (m_messageTreeModel->label() == I18n::Message::IfStatementMenu || m_messageTreeModel->label() == I18n::Message::Exceptions)) {
|
||||
/* To get the exact height needed for each cell, we have to compute its
|
||||
* text size, which means scan the text char by char to look for '\n'
|
||||
* chars. This is very costly and ruins the speed performance when
|
||||
* scrolling at the bottom of a long table: to compute a position on the
|
||||
* kth row, we call cumulatedHeightFromIndex(k), which calls rowHeight k
|
||||
* times.
|
||||
* We thus decided to compute the real height only for the ifStatement
|
||||
* children of the toolbox, which is the only menu that has special height
|
||||
* rows. */
|
||||
const ToolboxMessageTree * messageTree = static_cast<const ToolboxMessageTree *>(m_messageTreeModel->childAtIndex(j));
|
||||
return k_font->stringSize(I18n::translate(messageTree->label())).height() + 2*Metric::TableCellVerticalMargin + (messageTree->text() == I18n::Message::Default ? 0 : Toolbox::rowHeight(j));
|
||||
const ToolboxMessageTree * messageTree = static_cast<const ToolboxMessageTree *>(m_messageTreeModel->childAtIndex(j));
|
||||
if (messageTree->isMultiLine()) {
|
||||
return k_fontForMultiLine->glyphSize().height() * messageTree->numberOfLines() + 2*Metric::TableCellVerticalMargin + (messageTree->text() == I18n::Message::Default ? 0 : Toolbox::rowHeight(j));
|
||||
}
|
||||
return Toolbox::rowHeight(j);
|
||||
}
|
||||
@@ -791,12 +793,12 @@ const ToolboxMessageTree * PythonToolbox::rootModel() const {
|
||||
return &toolboxModel;
|
||||
}
|
||||
|
||||
MessageTableCellWithMessage * PythonToolbox::leafCellAtIndex(int index) {
|
||||
MessageTableCellWithMessage<SlideableMessageTextView> * PythonToolbox::leafCellAtIndex(int index) {
|
||||
assert(index >= 0 && index < k_maxNumberOfDisplayedRows);
|
||||
return &m_leafCells[index];
|
||||
}
|
||||
|
||||
MessageTableCellWithChevron* PythonToolbox::nodeCellAtIndex(int index) {
|
||||
MessageTableCellWithChevron<SlideableMessageTextView> * PythonToolbox::nodeCellAtIndex(int index) {
|
||||
assert(index >= 0 && index < k_maxNumberOfDisplayedRows);
|
||||
return &m_nodeCells[index];
|
||||
}
|
||||
|
||||
@@ -18,23 +18,27 @@ public:
|
||||
// Toolbox
|
||||
bool handleEvent(Ion::Events::Event event) override;
|
||||
const ToolboxMessageTree * rootModel() const override;
|
||||
|
||||
// ListViewDataSource
|
||||
void willDisplayCellForIndex(HighlightCell * cell, int index) override;
|
||||
|
||||
protected:
|
||||
KDCoordinate rowHeight(int j) override;
|
||||
bool selectLeaf(int selectedRow, bool quitToolbox) override;
|
||||
bool selectSubMenu(int selectedRow) override;
|
||||
MessageTableCellWithMessage * leafCellAtIndex(int index) override;
|
||||
MessageTableCellWithChevron* nodeCellAtIndex(int index) override;
|
||||
MessageTableCellWithMessage<SlideableMessageTextView> * leafCellAtIndex(int index) override;
|
||||
MessageTableCellWithChevron<SlideableMessageTextView> * nodeCellAtIndex(int index) override;
|
||||
int maxNumberOfDisplayedRows() override;
|
||||
bool canStayInMenu() override { return true; }
|
||||
constexpr static int k_maxNumberOfDisplayedRows = 13; // = 240/(13+2*3)
|
||||
// 13 = minimal string height size
|
||||
// 3 = vertical margins
|
||||
private:
|
||||
constexpr static const KDFont * k_font = KDFont::SmallFont;
|
||||
constexpr static const KDFont * k_fontForMultiLine = KDFont::SmallFont;
|
||||
void scrollToLetter(char letter);
|
||||
void scrollToAndSelectChild(int i);
|
||||
MessageTableCellWithMessage m_leafCells[k_maxNumberOfDisplayedRows];
|
||||
MessageTableCellWithChevron m_nodeCells[k_maxNumberOfDisplayedRows];
|
||||
MessageTableCellWithMessage<SlideableMessageTextView> m_leafCells[k_maxNumberOfDisplayedRows];
|
||||
MessageTableCellWithChevron<SlideableMessageTextView> m_nodeCells[k_maxNumberOfDisplayedRows];
|
||||
ToolboxIonKeys m_ionKeys;
|
||||
};
|
||||
|
||||
|
||||
@@ -34,11 +34,11 @@ private:
|
||||
constexpr static int k_totalNumberOfCell = 6;
|
||||
StackViewController * stackViewController();
|
||||
I18n::Message m_pageTitle;
|
||||
MessageTableCell m_executeScript;
|
||||
MessageTableCell m_renameScript;
|
||||
MessageTableCell<> m_executeScript;
|
||||
MessageTableCell<> m_renameScript;
|
||||
MessageTableCellWithSwitch m_autoImportScript;
|
||||
MessageTableCell m_deleteScript;
|
||||
MessageTableCell m_duplicateScript;
|
||||
MessageTableCell<> m_deleteScript;
|
||||
MessageTableCell<> m_duplicateScript;
|
||||
MessageTableCellWithBuffer m_size;
|
||||
void GetScriptSize(MessageTableCellWithBuffer* myCell);
|
||||
SelectableTableView m_selectableTableView;
|
||||
|
||||
@@ -128,7 +128,7 @@ void VariableBoxController::willDisplayCellForIndex(HighlightCell * cell, int in
|
||||
I18n::Message::BuiltinsAndKeywords,
|
||||
I18n::Message::ImportedModulesAndScripts
|
||||
};
|
||||
static_cast<MessageTableCell *>(cell)->setMessage(subtitleMessages[(int)cellOrigin]);
|
||||
static_cast<MessageTableCell<> *>(cell)->setMessage(subtitleMessages[(int)cellOrigin]);
|
||||
}
|
||||
|
||||
void VariableBoxController::tableViewDidChangeSelection(SelectableTableView * t, int previousSelectedCellX, int previousSelectedCellY, bool withinTemporarySelection) {
|
||||
|
||||
@@ -104,7 +104,7 @@ private:
|
||||
ScriptNode m_builtinNodes[k_totalBuiltinNodesCount];
|
||||
ScriptNode m_importedNodes[k_maxScriptNodesCount];
|
||||
ScriptNodeCell m_itemCells[k_maxNumberOfDisplayedItems];
|
||||
MessageTableCell m_subtitleCells[k_scriptOriginsCount];
|
||||
MessageTableCell<> m_subtitleCells[k_scriptOriginsCount];
|
||||
ScriptStore * m_scriptStore;
|
||||
size_t m_currentScriptNodesCount;
|
||||
size_t m_builtinNodesCount;
|
||||
|
||||
@@ -109,7 +109,7 @@ void CalculationParameterController::willDisplayCellForIndex(HighlightCell * cel
|
||||
assert(index >= 0 && index <= numberOfRows());
|
||||
if (cell != &m_preimageCell) {
|
||||
I18n::Message titles[] = {I18n::Message::Intersection, I18n::Message::Maximum, I18n::Message::Minimum, I18n::Message::Zeros, I18n::Message::Tangent, I18n::Message::Integral};
|
||||
static_cast<MessageTableCell *>(cell)->setMessage(titles[index - 1 + !shouldDisplayIntersection()]);
|
||||
static_cast<MessageTableCell<> *>(cell)->setMessage(titles[index - 1 + !shouldDisplayIntersection()]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -32,9 +32,9 @@ public:
|
||||
void setRecord(Ion::Storage::Record record);
|
||||
private:
|
||||
bool shouldDisplayIntersection() const;
|
||||
MessageTableCellWithChevron m_preimageCell;
|
||||
MessageTableCellWithChevron<> m_preimageCell;
|
||||
constexpr static int k_totalNumberOfReusableCells = 6;
|
||||
MessageTableCell m_cells[k_totalNumberOfReusableCells];
|
||||
MessageTableCell<> m_cells[k_totalNumberOfReusableCells];
|
||||
SelectableTableView m_selectableTableView;
|
||||
Ion::Storage::Record m_record;
|
||||
PreimageParameterController m_preimageParameterController;
|
||||
|
||||
@@ -25,7 +25,7 @@ private:
|
||||
Shared::FunctionGoToParameterController * goToParameterController() override;
|
||||
Shared::FunctionGoToParameterController m_goToParameterController;
|
||||
GraphController * m_graphController;
|
||||
MessageTableCellWithChevron m_calculationCell;
|
||||
MessageTableCellWithChevron<> m_calculationCell;
|
||||
MessageTableCellWithSwitch m_derivativeCell;
|
||||
CalculationParameterController m_calculationParameterController;
|
||||
};
|
||||
|
||||
@@ -28,7 +28,7 @@ private:
|
||||
MessageTableCellWithChevronAndBuffer m_functionDomain;
|
||||
TypeParameterController m_typeParameterController;
|
||||
DomainParameterController m_domainParameterController;
|
||||
MessageTableCell m_renameCell;
|
||||
MessageTableCell<> m_renameCell;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -33,9 +33,9 @@ private:
|
||||
#endif
|
||||
constexpr static int k_maxNumberOfCharsInTitle = Shared::Function::k_maxNameWithArgumentSize + 1; // +1 for the ' of the derivative
|
||||
char m_pageTitle[k_maxNumberOfCharsInTitle];
|
||||
MessageTableCell m_hideColumn;
|
||||
MessageTableCell<> m_hideColumn;
|
||||
#if COPY_COLUMN
|
||||
MessageTableCellWithChevron m_copyColumn;
|
||||
MessageTableCellWithChevron<> m_copyColumn;
|
||||
#endif
|
||||
SelectableTableView m_selectableTableView;
|
||||
Ion::Storage::Record m_record;
|
||||
|
||||
@@ -69,7 +69,7 @@ int IntervalParameterSelectorController::reusableCellCount() const {
|
||||
void IntervalParameterSelectorController::willDisplayCellForIndex(HighlightCell * cell, int index) {
|
||||
assert(0 <= index && index < numberOfRows());
|
||||
Shared::ContinuousFunction::PlotType plotType = plotTypeAtRow(index);
|
||||
static_cast<MessageTableCellWithChevron *>(cell)->setMessage(messageForType(plotType));
|
||||
static_cast<MessageTableCellWithChevron<> *>(cell)->setMessage(messageForType(plotType));
|
||||
}
|
||||
|
||||
Shared::ContinuousFunction::PlotType IntervalParameterSelectorController::plotTypeAtRow(int j) const {
|
||||
|
||||
@@ -24,7 +24,7 @@ public:
|
||||
private:
|
||||
Shared::ContinuousFunction::PlotType plotTypeAtRow(int j) const;
|
||||
I18n::Message messageForType(Shared::ContinuousFunction::PlotType plotType);
|
||||
MessageTableCellWithChevron m_intervalParameterCell[Shared::ContinuousFunction::k_numberOfPlotTypes];
|
||||
MessageTableCellWithChevron<> m_intervalParameterCell[Shared::ContinuousFunction::k_numberOfPlotTypes];
|
||||
SelectableTableView m_selectableTableView;
|
||||
};
|
||||
|
||||
|
||||
@@ -875,6 +875,10 @@ const ToolboxMessageTree toolboxModel = ToolboxMessageTree::Node(I18n::Message::
|
||||
MathToolbox::MathToolbox() :
|
||||
Toolbox(nullptr, rootModel()->label())
|
||||
{
|
||||
for (int i=0; i < k_maxNumberOfDisplayedRows; i++) {
|
||||
m_leafCells[i].setMessageFont(KDFont::LargeFont);
|
||||
m_nodeCells[i].setMessageFont(KDFont::LargeFont);
|
||||
}
|
||||
}
|
||||
|
||||
bool MathToolbox::selectLeaf(int selectedRow, bool quitToolbox) {
|
||||
@@ -900,12 +904,12 @@ const ToolboxMessageTree * MathToolbox::rootModel() const {
|
||||
return &toolboxModel;
|
||||
}
|
||||
|
||||
MessageTableCellWithMessage * MathToolbox::leafCellAtIndex(int index) {
|
||||
MessageTableCellWithMessage<SlideableMessageTextView> * MathToolbox::leafCellAtIndex(int index) {
|
||||
assert(index >= 0 && index < k_maxNumberOfDisplayedRows);
|
||||
return &m_leafCells[index];
|
||||
}
|
||||
|
||||
MessageTableCellWithChevron* MathToolbox::nodeCellAtIndex(int index) {
|
||||
MessageTableCellWithChevron<SlideableMessageTextView> * MathToolbox::nodeCellAtIndex(int index) {
|
||||
assert(index >= 0 && index < k_maxNumberOfDisplayedRows);
|
||||
return &m_nodeCells[index];
|
||||
}
|
||||
|
||||
@@ -10,15 +10,15 @@ public:
|
||||
const ToolboxMessageTree * rootModel() const override;
|
||||
protected:
|
||||
bool selectLeaf(int selectedRow, bool quitToolbox) override;
|
||||
MessageTableCellWithMessage * leafCellAtIndex(int index) override;
|
||||
MessageTableCellWithChevron* nodeCellAtIndex(int index) override;
|
||||
MessageTableCellWithMessage<SlideableMessageTextView> * leafCellAtIndex(int index) override;
|
||||
MessageTableCellWithChevron<SlideableMessageTextView> * nodeCellAtIndex(int index) override;
|
||||
int maxNumberOfDisplayedRows() override;
|
||||
constexpr static int k_maxNumberOfDisplayedRows = 6; // = 240/40
|
||||
private:
|
||||
int indexAfterFork() const override;
|
||||
|
||||
MessageTableCellWithMessage m_leafCells[k_maxNumberOfDisplayedRows];
|
||||
MessageTableCellWithChevron m_nodeCells[k_maxNumberOfDisplayedRows];
|
||||
MessageTableCellWithMessage<SlideableMessageTextView> m_leafCells[k_maxNumberOfDisplayedRows];
|
||||
MessageTableCellWithChevron<SlideableMessageTextView> m_nodeCells[k_maxNumberOfDisplayedRows];
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -98,7 +98,7 @@ int MathVariableBoxController::reusableCellCount(int type) {
|
||||
void MathVariableBoxController::willDisplayCellForIndex(HighlightCell * cell, int index) {
|
||||
if (m_currentPage == Page::RootMenu) {
|
||||
I18n::Message label = nodeLabelAtIndex(index);
|
||||
MessageTableCell * myCell = (MessageTableCell *)cell;
|
||||
MessageTableCell<> * myCell = (MessageTableCell<> *)cell;
|
||||
myCell->setMessage(label);
|
||||
myCell->reloadCell();
|
||||
return;
|
||||
@@ -158,7 +158,7 @@ ExpressionTableCellWithExpression * MathVariableBoxController::leafCellAtIndex(i
|
||||
return &m_leafCells[index];
|
||||
}
|
||||
|
||||
MessageTableCellWithChevron * MathVariableBoxController::nodeCellAtIndex(int index) {
|
||||
MessageTableCellWithChevron<> * MathVariableBoxController::nodeCellAtIndex(int index) {
|
||||
assert(index >= 0 && index < k_numberOfMenuRows);
|
||||
return &m_nodeCells[index];
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ private:
|
||||
constexpr static int k_numberOfMenuRows = 3;
|
||||
constexpr static KDCoordinate k_leafMargin = 20;
|
||||
ExpressionTableCellWithExpression * leafCellAtIndex(int index) override;
|
||||
MessageTableCellWithChevron * nodeCellAtIndex(int index) override;
|
||||
MessageTableCellWithChevron<> * nodeCellAtIndex(int index) override;
|
||||
Page pageAtIndex(int index);
|
||||
void setPage(Page page);
|
||||
bool selectSubMenu(int selectedRow) override;
|
||||
@@ -53,7 +53,7 @@ private:
|
||||
Page m_currentPage;
|
||||
Page m_lockPageDelete;
|
||||
ExpressionTableCellWithExpression m_leafCells[k_maxNumberOfDisplayedRows];
|
||||
MessageTableCellWithChevron m_nodeCells[k_numberOfMenuRows];
|
||||
MessageTableCellWithChevron<> m_nodeCells[k_numberOfMenuRows];
|
||||
MathVariableBoxEmptyController m_emptyViewController;
|
||||
// Layout memoization
|
||||
// TODO: make a helper doing the RingMemoizationOfConsecutiveObjets to factorize this code and ExpressionModelStore code
|
||||
|
||||
@@ -18,15 +18,7 @@ App::App(Snapshot * snapshot) :
|
||||
m_localizationController(&m_modalViewController, Metric::CommonTopMargin, LocalizationController::Mode::Language),
|
||||
m_logoController()
|
||||
{
|
||||
}
|
||||
|
||||
int App::numberOfTimers() {
|
||||
return firstResponder() == &m_logoController;
|
||||
}
|
||||
|
||||
Timer * App::timerAtIndex(int i) {
|
||||
assert(i == 0);
|
||||
return &m_logoController;
|
||||
AppsContainer::sharedAppsContainer()->addTimer(&m_logoController);
|
||||
}
|
||||
|
||||
bool App::processEvent(Ion::Events::Event e) {
|
||||
|
||||
@@ -15,9 +15,6 @@ public:
|
||||
App * unpack(Container * container) override;
|
||||
Descriptor * descriptor() override;
|
||||
};
|
||||
|
||||
int numberOfTimers() override;
|
||||
Timer * timerAtIndex(int i) override;
|
||||
bool processEvent(Ion::Events::Event) override;
|
||||
void didBecomeActive(Window * window) override;
|
||||
private:
|
||||
|
||||
@@ -17,6 +17,7 @@ LogoController::LogoController() :
|
||||
|
||||
bool LogoController::fire() {
|
||||
Container::activeApp()->dismissModalViewController();
|
||||
AppsContainer::sharedAppsContainer()->removeTimer(this);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -41,7 +42,6 @@ void LogoController::viewWillAppear() {
|
||||
if (!backlightInitialized) {
|
||||
Ion::Backlight::init();
|
||||
}
|
||||
ViewController::viewWillAppear();
|
||||
}
|
||||
|
||||
void LogoController::viewDidDisappear() {
|
||||
|
||||
@@ -37,7 +37,7 @@ int ListBookController::reusableCellCount() const {
|
||||
}
|
||||
|
||||
void ListBookController::willDisplayCellForIndex(HighlightCell * cell, int index) {
|
||||
MessageTableCell* myTextCell = static_cast<MessageTableCell*>(cell);
|
||||
MessageTableCell<> * myTextCell = static_cast<MessageTableCell<> *>(cell);
|
||||
MessageTextView* textView = static_cast<MessageTextView*>(myTextCell->labelView());
|
||||
textView->setText(m_files[index].name);
|
||||
myTextCell->setMessageFont(KDFont::LargeFont); //TODO set cell font at building ?
|
||||
|
||||
@@ -34,7 +34,7 @@ private:
|
||||
int m_txtFilesNumber;
|
||||
int m_urtFilesNumber;
|
||||
static const int k_cellsNumber = 6;
|
||||
MessageTableCellWithChevron m_cells[k_cellsNumber];
|
||||
MessageTableCellWithChevron<> m_cells[k_cellsNumber];
|
||||
ReadBookController m_readBookController;
|
||||
};
|
||||
|
||||
|
||||
@@ -118,7 +118,7 @@ void GraphOptionsController::willDisplayCellForIndex(HighlightCell * cell, int i
|
||||
return;
|
||||
}
|
||||
assert(index >=0 && index < k_numberOfParameterCells);
|
||||
MessageTableCellWithChevron * myCell = (MessageTableCellWithChevron *)cell;
|
||||
MessageTableCellWithChevron<> * myCell = (MessageTableCellWithChevron<> *)cell;
|
||||
I18n::Message titles[k_numberOfParameterCells] = {I18n::Message::XPrediction, I18n::Message::YPrediction};
|
||||
myCell->setMessage(titles[index]);
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ private:
|
||||
constexpr static int k_regressionCellType = 0;
|
||||
constexpr static int k_parameterCelltype = 1;
|
||||
constexpr static int k_numberOfParameterCells = 2;
|
||||
MessageTableCellWithChevron m_parameterCells[k_numberOfParameterCells];
|
||||
MessageTableCellWithChevron<> m_parameterCells[k_numberOfParameterCells];
|
||||
MessageTableCellWithChevronAndExpression m_changeRegressionCell;
|
||||
SelectableTableView m_selectableTableView;
|
||||
GoToParameterController m_goToParameterController;
|
||||
|
||||
@@ -20,7 +20,7 @@ private:
|
||||
constexpr static int k_totalNumberOfCells = 2;
|
||||
GoToParameterController * goToParameterController() override;
|
||||
GoToParameterController m_goToParameterController;
|
||||
MessageTableCell m_sumCell;
|
||||
MessageTableCell<> m_sumCell;
|
||||
GraphController * m_graphController;
|
||||
};
|
||||
|
||||
|
||||
@@ -175,7 +175,7 @@ void MainController::willDisplayCellForIndex(HighlightCell * cell, int index) {
|
||||
myGauge->setLevel((float)globalPreferences->brightnessLevel()/(float)Ion::Backlight::MaxBrightness);
|
||||
return;
|
||||
}
|
||||
MessageTableCell * myCell = (MessageTableCell *)cell;
|
||||
MessageTableCell<> * myCell = (MessageTableCell<> *)cell;
|
||||
myCell->setMessage(title);
|
||||
if (model()->childAtIndex(index)->label() == I18n::Message::Language) {
|
||||
int index = (int)(globalPreferences->language());
|
||||
|
||||
@@ -88,7 +88,7 @@ void ExamModeController::willDisplayCellForIndex(HighlightCell * cell, int index
|
||||
I18n::Message thisLabel = m_messageTreeModel->childAtIndex(index)->label();
|
||||
|
||||
if (GlobalPreferences::sharedGlobalPreferences()->isInExamMode() && (thisLabel == I18n::Message::ActivateExamMode || thisLabel == I18n::Message::ExamModeActive)) {
|
||||
MessageTableCell * myCell = (MessageTableCell *)cell;
|
||||
MessageTableCell<> * myCell = (MessageTableCell<> *)cell;
|
||||
myCell->setMessage(I18n::Message::ExamModeActive);
|
||||
}
|
||||
if (thisLabel == I18n::Message::ExamModeMode) {
|
||||
|
||||
@@ -27,7 +27,7 @@ private:
|
||||
GlobalPreferences::ExamMode examMode();
|
||||
static constexpr int k_maxNumberOfCells = 4;
|
||||
SelectableViewWithMessages m_contentView;
|
||||
MessageTableCell m_cell[k_maxNumberOfCells];
|
||||
MessageTableCell<> m_cell[k_maxNumberOfCells];
|
||||
PreferencesController m_ledController;
|
||||
PreferencesController m_examModeModeController;
|
||||
MessageTableCellWithChevronAndMessage m_examModeCell;
|
||||
|
||||
@@ -75,7 +75,7 @@ int GenericSubController::typeAtLocation(int i, int j) {
|
||||
}
|
||||
|
||||
void GenericSubController::willDisplayCellForIndex(HighlightCell * cell, int index) {
|
||||
MessageTableCell * myCell = (MessageTableCell *)cell;
|
||||
MessageTableCell<> * myCell = (MessageTableCell<> *)cell;
|
||||
myCell->setMessage(m_messageTreeModel->childAtIndex(index)->label());
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
namespace Shared {
|
||||
|
||||
class MessageTableCellWithColor : public MessageTableCell {
|
||||
class MessageTableCellWithColor : public MessageTableCell<> {
|
||||
public:
|
||||
MessageTableCellWithColor();
|
||||
View * accessoryView() const override;
|
||||
|
||||
@@ -16,7 +16,7 @@ public:
|
||||
void setRecord(Ion::Storage::Record record) { m_record = record; }
|
||||
protected:
|
||||
bool handleGotoSelection();
|
||||
MessageTableCellWithChevron m_goToCell;
|
||||
MessageTableCellWithChevron<> m_goToCell;
|
||||
SelectableTableView m_selectableTableView;
|
||||
Ion::Storage::Record m_record;
|
||||
private:
|
||||
|
||||
@@ -41,7 +41,7 @@ protected:
|
||||
private:
|
||||
MessageTableCellWithChevronAndMessage m_colorCell;
|
||||
MessageTableCellWithSwitch m_enableCell;
|
||||
MessageTableCell m_deleteCell;
|
||||
MessageTableCell<> m_deleteCell;
|
||||
ColorParameterController m_colorParameterController;
|
||||
};
|
||||
|
||||
|
||||
@@ -191,10 +191,10 @@ bool LocalizationController::handleEvent(Ion::Events::Event event) {
|
||||
|
||||
void LocalizationController::willDisplayCellForIndex(HighlightCell * cell, int index) {
|
||||
if (mode() == Mode::Language) {
|
||||
static_cast<MessageTableCell *>(cell)->setMessage(I18n::LanguageNames[index]);
|
||||
static_cast<MessageTableCell<> *>(cell)->setMessage(I18n::LanguageNames[index]);
|
||||
return;
|
||||
}
|
||||
assert(mode() == Mode::Country);
|
||||
static_cast<MessageTableCell *>(cell)->setMessage(I18n::CountryNames[static_cast<uint8_t>(CountryAtIndex(index))]);
|
||||
static_cast<MessageTableCell<> *>(cell)->setMessage(I18n::CountryNames[static_cast<uint8_t>(CountryAtIndex(index))]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ protected:
|
||||
|
||||
private:
|
||||
static constexpr int k_numberOfCells = I18n::NumberOfLanguages > I18n::NumberOfCountries ? I18n::NumberOfLanguages : I18n::NumberOfCountries;
|
||||
MessageTableCell m_cells[k_numberOfCells];
|
||||
MessageTableCell<> m_cells[k_numberOfCells];
|
||||
Mode m_mode;
|
||||
};
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ protected:
|
||||
private:
|
||||
virtual I18n::Message sortMessage() { return m_xColumnSelected ? I18n::Message::SortValues : I18n::Message::SortSizes; }
|
||||
constexpr static int k_totalNumberOfCell = 3;
|
||||
MessageTableCell m_cells[k_totalNumberOfCell];
|
||||
MessageTableCell<> m_cells[k_totalNumberOfCell];
|
||||
StoreController * m_storeController;
|
||||
bool m_xColumnSelected;
|
||||
};
|
||||
|
||||
@@ -29,7 +29,7 @@ public:
|
||||
int reusableCellCount() const override { return 1; }
|
||||
void setRecord(Ion::Storage::Record record) { m_record = record; }
|
||||
protected:
|
||||
MessageTableCellWithChevron m_copyColumn;
|
||||
MessageTableCellWithChevron<> m_copyColumn;
|
||||
SelectableTableView m_selectableTableView;
|
||||
Ion::Storage::Record m_record;
|
||||
private:
|
||||
|
||||
@@ -24,7 +24,7 @@ View * ValuesParameterController::view() {
|
||||
}
|
||||
|
||||
void ValuesParameterController::willDisplayCellForIndex(HighlightCell * cell, int index) {
|
||||
MessageTableCell * myCell = (MessageTableCell *)cell;
|
||||
MessageTableCell<> * myCell = (MessageTableCell<> *)cell;
|
||||
#if COPY_COLUMN
|
||||
I18n::Message labels[k_totalNumberOfCell] = {I18n::Message::ClearColumn, I18n::Message::CopyColumnInList, I18n::Message::IntervalSet};
|
||||
#else
|
||||
|
||||
@@ -21,13 +21,13 @@ public:
|
||||
private:
|
||||
#if COPY_COLUMN
|
||||
constexpr static int k_totalNumberOfCell = 3;
|
||||
MessageTableCellWithChevron m_copyColumn;
|
||||
MessageTableCellWithChevron<> m_copyColumn;
|
||||
#else
|
||||
constexpr static int k_totalNumberOfCell = 2;
|
||||
#endif
|
||||
I18n::Message m_pageTitle;
|
||||
MessageTableCell m_deleteColumn;
|
||||
MessageTableCellWithChevron m_setInterval;
|
||||
MessageTableCell<> m_deleteColumn;
|
||||
MessageTableCellWithChevron<> m_setInterval;
|
||||
SelectableTableView m_selectableTableView;
|
||||
};
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ private:
|
||||
};
|
||||
StackViewController * stackController() const;
|
||||
constexpr static int k_numberOfExpressionCells = k_numberOfModels-1;
|
||||
MessageTableCell m_emptyModelCell;
|
||||
MessageTableCell<> m_emptyModelCell;
|
||||
ExpressionTableCell m_modelCells[k_numberOfExpressionCells];
|
||||
Poincare::Layout m_layouts[k_numberOfExpressionCells];
|
||||
SelectableTableView m_selectableTableView;
|
||||
|
||||
Reference in New Issue
Block a user