mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-28 10:09:53 +01:00
[apps/sequence] Align sequence title and expression baselines
This commit is contained in:
@@ -24,7 +24,7 @@ Sequence::Sequence(const char * text, KDColor color) :
|
||||
m_firstInitialConditionLayout(),
|
||||
m_secondInitialConditionLayout(),
|
||||
m_nameLayout(),
|
||||
m_definitionNameWithEqual(),
|
||||
m_definitionName(),
|
||||
m_firstInitialConditionName(),
|
||||
m_secondInitialConditionName(),
|
||||
m_initialRank(0)
|
||||
@@ -155,38 +155,23 @@ Poincare::Layout Sequence::nameLayout() {
|
||||
}
|
||||
|
||||
Poincare::Layout Sequence::definitionName() {
|
||||
if (m_type == Type::Explicit) {
|
||||
return HorizontalLayout(
|
||||
CharLayout(name()[0], k_layoutFont),
|
||||
VerticalOffsetLayout(LayoutHelper::String("n", 1, k_layoutFont), VerticalOffsetLayoutNode::Type::Subscript));
|
||||
if (m_definitionName.isUninitialized()) {
|
||||
if (m_type == Type::Explicit) {
|
||||
m_definitionName = HorizontalLayout(
|
||||
CharLayout(name()[0], k_layoutFont),
|
||||
VerticalOffsetLayout(LayoutHelper::String("n", 1, k_layoutFont), VerticalOffsetLayoutNode::Type::Subscript));
|
||||
} else if (m_type == Type::SingleRecurrence) {
|
||||
m_definitionName = HorizontalLayout(
|
||||
CharLayout(name()[0], k_layoutFont),
|
||||
VerticalOffsetLayout(LayoutHelper::String("n+1", 3, k_layoutFont), VerticalOffsetLayoutNode::Type::Subscript));
|
||||
} else {
|
||||
assert(m_type == Type::DoubleRecurrence);
|
||||
m_definitionName = HorizontalLayout(
|
||||
CharLayout(name()[0], k_layoutFont),
|
||||
VerticalOffsetLayout(LayoutHelper::String("n+2", 3, k_layoutFont), VerticalOffsetLayoutNode::Type::Subscript));
|
||||
}
|
||||
}
|
||||
if (m_type == Type::SingleRecurrence) {
|
||||
return HorizontalLayout(
|
||||
CharLayout(name()[0], k_layoutFont),
|
||||
VerticalOffsetLayout(LayoutHelper::String("n+1", 3, k_layoutFont), VerticalOffsetLayoutNode::Type::Subscript));
|
||||
}
|
||||
assert(m_type == Type::DoubleRecurrence);
|
||||
return HorizontalLayout(
|
||||
CharLayout(name()[0], k_layoutFont),
|
||||
VerticalOffsetLayout(LayoutHelper::String("n+2", 3, k_layoutFont), VerticalOffsetLayoutNode::Type::Subscript));
|
||||
}
|
||||
|
||||
Poincare::Layout Sequence::definitionNameWithEqual() {
|
||||
if (m_definitionNameWithEqual.isUninitialized()) {
|
||||
m_definitionNameWithEqual = definitionName();
|
||||
assert(m_definitionNameWithEqual.isHorizontal());
|
||||
static_cast<HorizontalLayout&>(m_definitionNameWithEqual).addChildAtIndex(
|
||||
CharLayout(' ', KDFont::SmallFont), // Cheat margin
|
||||
m_definitionNameWithEqual.numberOfChildren(),
|
||||
m_definitionNameWithEqual.numberOfChildren(),
|
||||
nullptr);
|
||||
static_cast<HorizontalLayout&>(m_definitionNameWithEqual).addChildAtIndex(
|
||||
CharLayout('=', k_layoutFont),
|
||||
m_definitionNameWithEqual.numberOfChildren(),
|
||||
m_definitionNameWithEqual.numberOfChildren(),
|
||||
nullptr);
|
||||
}
|
||||
return m_definitionNameWithEqual;
|
||||
return m_definitionName;
|
||||
}
|
||||
|
||||
Poincare::Layout Sequence::firstInitialConditionName() {
|
||||
@@ -199,10 +184,7 @@ Poincare::Layout Sequence::firstInitialConditionName() {
|
||||
Layout indexLayout = LayoutHelper::String(buffer, strlen(buffer), k_layoutFont);
|
||||
m_firstInitialConditionName = HorizontalLayout(
|
||||
CharLayout(name()[0], k_layoutFont),
|
||||
VerticalOffsetLayout(indexLayout, VerticalOffsetLayoutNode::Type::Subscript),
|
||||
CharLayout(' ', KDFont::SmallFont), // Cheat margin
|
||||
CharLayout('=', k_layoutFont)
|
||||
);
|
||||
VerticalOffsetLayout(indexLayout, VerticalOffsetLayoutNode::Type::Subscript));
|
||||
}
|
||||
return m_firstInitialConditionName;
|
||||
}
|
||||
@@ -215,10 +197,7 @@ Poincare::Layout Sequence::secondInitialConditionName() {
|
||||
Layout indexLayout = LayoutHelper::String(buffer, strlen(buffer), k_layoutFont);
|
||||
m_secondInitialConditionName = HorizontalLayout(
|
||||
CharLayout(name()[0], k_layoutFont),
|
||||
VerticalOffsetLayout(indexLayout, VerticalOffsetLayoutNode::Type::Subscript),
|
||||
CharLayout(' ', KDFont::SmallFont), // Cheat margin
|
||||
CharLayout('=', k_layoutFont)
|
||||
);
|
||||
VerticalOffsetLayout(indexLayout, VerticalOffsetLayoutNode::Type::Subscript));
|
||||
}
|
||||
}
|
||||
return m_secondInitialConditionName;
|
||||
@@ -331,7 +310,7 @@ void Sequence::tidy() {
|
||||
m_firstInitialConditionExpression = Expression();
|
||||
m_secondInitialConditionExpression = Expression();
|
||||
m_nameLayout = Layout();
|
||||
m_definitionNameWithEqual = Layout();
|
||||
m_definitionName = Layout();
|
||||
m_firstInitialConditionName = Layout();
|
||||
m_secondInitialConditionName = Layout();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user