mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-27 01:29:58 +01:00
[apps/sequence] Redesign list controller
Change-Id: If114a643b0f682e98076cf1ec9f4479b3dafdfa6
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
#include "sequence.h"
|
||||
#include "../../poincare/src/layout/baseline_relative_layout.h"
|
||||
#include "../../poincare/src/layout/string_layout.h"
|
||||
#include <string.h>
|
||||
|
||||
using namespace Shared;
|
||||
@@ -14,7 +16,10 @@ Sequence::Sequence(const char * text, KDColor color) :
|
||||
m_firstInitialConditionExpression(nullptr),
|
||||
m_secondInitialConditionExpression(nullptr),
|
||||
m_firstInitialConditionLayout(nullptr),
|
||||
m_secondInitialConditionLayout(nullptr)
|
||||
m_secondInitialConditionLayout(nullptr),
|
||||
m_definitionName(nullptr),
|
||||
m_firstInitialConditionName(nullptr),
|
||||
m_secondInitialConditionName(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -36,6 +41,18 @@ Sequence::~Sequence() {
|
||||
delete m_secondInitialConditionExpression;
|
||||
m_secondInitialConditionExpression = nullptr;
|
||||
}
|
||||
if (m_definitionName != nullptr) {
|
||||
delete m_definitionName;
|
||||
m_definitionName = nullptr;
|
||||
}
|
||||
if (m_firstInitialConditionName != nullptr) {
|
||||
delete m_firstInitialConditionName;
|
||||
m_firstInitialConditionName = nullptr;
|
||||
}
|
||||
if (m_secondInitialConditionName != nullptr) {
|
||||
delete m_secondInitialConditionName;
|
||||
m_secondInitialConditionName = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
const char * Sequence::firstInitialConditionText() {
|
||||
@@ -52,6 +69,30 @@ Sequence::Type Sequence::type() {
|
||||
|
||||
void Sequence::setType(Type type) {
|
||||
m_type = type;
|
||||
if (m_definitionName != nullptr) {
|
||||
delete m_definitionName;
|
||||
m_definitionName = nullptr;
|
||||
}
|
||||
if (m_firstInitialConditionName != nullptr) {
|
||||
delete m_firstInitialConditionName;
|
||||
m_firstInitialConditionName = nullptr;
|
||||
}
|
||||
if (m_secondInitialConditionName != nullptr) {
|
||||
delete m_secondInitialConditionName;
|
||||
m_secondInitialConditionName = nullptr;
|
||||
}
|
||||
if (m_type == Type::Explicite) {
|
||||
m_definitionName = new BaselineRelativeLayout(new StringLayout(name(), 1), new StringLayout("n", 1, KDText::FontSize::Small), BaselineRelativeLayout::Type::Subscript);
|
||||
}
|
||||
if (m_type == Type::SingleRecurrence) {
|
||||
m_definitionName = new BaselineRelativeLayout(new StringLayout(name(), 1), new StringLayout("n+1", 3, KDText::FontSize::Small), BaselineRelativeLayout::Type::Subscript);
|
||||
m_firstInitialConditionName = new BaselineRelativeLayout(new StringLayout(name(), 1), new StringLayout("0", 1, KDText::FontSize::Small), BaselineRelativeLayout::Type::Subscript);
|
||||
}
|
||||
if (m_type == Type::DoubleRecurrence) {
|
||||
m_definitionName = new BaselineRelativeLayout(new StringLayout(name(), 1), new StringLayout("n+2", 3, KDText::FontSize::Small), BaselineRelativeLayout::Type::Subscript);
|
||||
m_firstInitialConditionName = new BaselineRelativeLayout(new StringLayout(name(), 1), new StringLayout("0", 1, KDText::FontSize::Small), BaselineRelativeLayout::Type::Subscript);
|
||||
m_secondInitialConditionName = new BaselineRelativeLayout(new StringLayout(name(), 1), new StringLayout("1", 1, KDText::FontSize::Small), BaselineRelativeLayout::Type::Subscript);
|
||||
}
|
||||
}
|
||||
|
||||
Poincare::Expression * Sequence::firstInitialConditionExpression() {
|
||||
@@ -104,4 +145,20 @@ char Sequence::symbol() const {
|
||||
return 'n';
|
||||
}
|
||||
|
||||
int Sequence::numberOfElements() {
|
||||
return (int)m_type + 1;
|
||||
}
|
||||
|
||||
Poincare::ExpressionLayout * Sequence::definitionName() {
|
||||
return m_definitionName;
|
||||
}
|
||||
|
||||
Poincare::ExpressionLayout * Sequence::firstInitialConditionName() {
|
||||
return m_firstInitialConditionName;
|
||||
}
|
||||
|
||||
Poincare::ExpressionLayout * Sequence::secondInitialConditionName() {
|
||||
return m_secondInitialConditionName;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user