mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[poincare] VerticalOffsetLayout: change name of 'Type' to 'Position'
This commit is contained in:
@@ -25,7 +25,7 @@ CalculationController::CalculationController(Responder * parentResponder, Button
|
||||
m_hideableCell(),
|
||||
m_store(store)
|
||||
{
|
||||
m_r2Layout = HorizontalLayout::Builder(CodePointLayout::Builder('r', KDFont::SmallFont), VerticalOffsetLayout::Builder(CodePointLayout::Builder('2', KDFont::SmallFont), VerticalOffsetLayoutNode::Type::Superscript));
|
||||
m_r2Layout = HorizontalLayout::Builder(CodePointLayout::Builder('r', KDFont::SmallFont), VerticalOffsetLayout::Builder(CodePointLayout::Builder('2', KDFont::SmallFont), VerticalOffsetLayoutNode::Position::Superscript));
|
||||
m_selectableTableView.setVerticalCellOverlap(0);
|
||||
m_selectableTableView.setBackgroundColor(Palette::WallScreenDark);
|
||||
m_selectableTableView.setMargins(k_margin, k_scrollBarMargin, k_scrollBarMargin, k_margin);
|
||||
|
||||
@@ -26,7 +26,7 @@ Layout CubicModel::layout() {
|
||||
CodePointLayout::Builder('X', k_layoutFont),
|
||||
VerticalOffsetLayout::Builder(
|
||||
CodePointLayout::Builder('3', k_layoutFont),
|
||||
VerticalOffsetLayoutNode::Type::Superscript
|
||||
VerticalOffsetLayoutNode::Position::Superscript
|
||||
),
|
||||
CodePointLayout::Builder('+', k_layoutFont),
|
||||
CodePointLayout::Builder('b', k_layoutFont),
|
||||
@@ -34,7 +34,7 @@ Layout CubicModel::layout() {
|
||||
CodePointLayout::Builder('X', k_layoutFont),
|
||||
VerticalOffsetLayout::Builder(
|
||||
CodePointLayout::Builder('2', k_layoutFont),
|
||||
VerticalOffsetLayoutNode::Type::Superscript
|
||||
VerticalOffsetLayoutNode::Position::Superscript
|
||||
),
|
||||
CodePointLayout::Builder('+', k_layoutFont),
|
||||
CodePointLayout::Builder('c', k_layoutFont),
|
||||
|
||||
@@ -22,7 +22,7 @@ Layout ExponentialModel::layout() {
|
||||
CodePointLayout::Builder(UCodePointMiddleDot, k_layoutFont),
|
||||
CodePointLayout::Builder('X', k_layoutFont)
|
||||
),
|
||||
VerticalOffsetLayoutNode::Type::Superscript
|
||||
VerticalOffsetLayoutNode::Position::Superscript
|
||||
)
|
||||
};
|
||||
m_layout = HorizontalLayout::Builder(layoutChildren, size);
|
||||
|
||||
@@ -28,7 +28,7 @@ Layout LogisticModel::layout() {
|
||||
CodePointLayout::Builder('e', k_layoutFont),
|
||||
VerticalOffsetLayout::Builder(
|
||||
HorizontalLayout::Builder(exponentLayoutChildren, exponentSize),
|
||||
VerticalOffsetLayoutNode::Type::Superscript
|
||||
VerticalOffsetLayoutNode::Position::Superscript
|
||||
)
|
||||
};
|
||||
m_layout = FractionLayout::Builder(
|
||||
|
||||
@@ -19,7 +19,7 @@ Layout PowerModel::layout() {
|
||||
CodePointLayout::Builder('X', k_layoutFont),
|
||||
VerticalOffsetLayout::Builder(
|
||||
CodePointLayout::Builder('b', k_layoutFont),
|
||||
VerticalOffsetLayoutNode::Type::Superscript
|
||||
VerticalOffsetLayoutNode::Position::Superscript
|
||||
),
|
||||
};
|
||||
m_layout = HorizontalLayout::Builder(layoutChildren, size);
|
||||
|
||||
@@ -26,7 +26,7 @@ Layout QuadraticModel::layout() {
|
||||
CodePointLayout::Builder('X', k_layoutFont),
|
||||
VerticalOffsetLayout::Builder(
|
||||
CodePointLayout::Builder('2', k_layoutFont),
|
||||
VerticalOffsetLayoutNode::Type::Superscript
|
||||
VerticalOffsetLayoutNode::Position::Superscript
|
||||
),
|
||||
CodePointLayout::Builder('+', k_layoutFont),
|
||||
CodePointLayout::Builder('b', k_layoutFont),
|
||||
|
||||
@@ -26,7 +26,7 @@ Layout QuarticModel::layout() {
|
||||
CodePointLayout::Builder('X', k_layoutFont),
|
||||
VerticalOffsetLayout::Builder(
|
||||
CodePointLayout::Builder('4', k_layoutFont),
|
||||
VerticalOffsetLayoutNode::Type::Superscript
|
||||
VerticalOffsetLayoutNode::Position::Superscript
|
||||
),
|
||||
CodePointLayout::Builder('+', k_layoutFont),
|
||||
CodePointLayout::Builder('b', k_layoutFont),
|
||||
@@ -34,7 +34,7 @@ Layout QuarticModel::layout() {
|
||||
CodePointLayout::Builder('X', k_layoutFont),
|
||||
VerticalOffsetLayout::Builder(
|
||||
CodePointLayout::Builder('3', k_layoutFont),
|
||||
VerticalOffsetLayoutNode::Type::Superscript
|
||||
VerticalOffsetLayoutNode::Position::Superscript
|
||||
),
|
||||
CodePointLayout::Builder('+', k_layoutFont),
|
||||
CodePointLayout::Builder('c', k_layoutFont),
|
||||
@@ -42,7 +42,7 @@ Layout QuarticModel::layout() {
|
||||
CodePointLayout::Builder('X', k_layoutFont),
|
||||
VerticalOffsetLayout::Builder(
|
||||
CodePointLayout::Builder('2', k_layoutFont),
|
||||
VerticalOffsetLayoutNode::Type::Superscript
|
||||
VerticalOffsetLayoutNode::Position::Superscript
|
||||
),
|
||||
CodePointLayout::Builder('+', k_layoutFont),
|
||||
CodePointLayout::Builder('d', k_layoutFont),
|
||||
|
||||
@@ -78,18 +78,18 @@ void SequenceToolbox::buildExtraCellsLayouts(const char * sequenceName, int recu
|
||||
const char * indice = j == 0 ? "n" : "n+1";
|
||||
m_addedCellLayout[j] = HorizontalLayout::Builder(
|
||||
CodePointLayout::Builder(sequenceName[0], KDFont::LargeFont),
|
||||
VerticalOffsetLayout::Builder(LayoutHelper::String(indice, strlen(indice), KDFont::LargeFont), VerticalOffsetLayoutNode::Type::Subscript)
|
||||
VerticalOffsetLayout::Builder(LayoutHelper::String(indice, strlen(indice), KDFont::LargeFont), VerticalOffsetLayoutNode::Position::Subscript)
|
||||
);
|
||||
m_addedCellLayout[j+recurrenceDepth] = HorizontalLayout::Builder(
|
||||
CodePointLayout::Builder(otherSequenceName[0], KDFont::LargeFont),
|
||||
VerticalOffsetLayout::Builder(LayoutHelper::String(indice, strlen(indice), KDFont::LargeFont), VerticalOffsetLayoutNode::Type::Subscript)
|
||||
VerticalOffsetLayout::Builder(LayoutHelper::String(indice, strlen(indice), KDFont::LargeFont), VerticalOffsetLayoutNode::Position::Subscript)
|
||||
);
|
||||
}
|
||||
if (recurrenceDepth < 2) {
|
||||
const char * indice = recurrenceDepth == 0 ? "n" : (recurrenceDepth == 1 ? "n+1" : "n+2");
|
||||
m_addedCellLayout[2*recurrenceDepth] = HorizontalLayout::Builder(
|
||||
CodePointLayout::Builder(otherSequenceName[0], KDFont::LargeFont),
|
||||
VerticalOffsetLayout::Builder(LayoutHelper::String(indice, strlen(indice), KDFont::LargeFont), VerticalOffsetLayoutNode::Type::Subscript)
|
||||
VerticalOffsetLayout::Builder(LayoutHelper::String(indice, strlen(indice), KDFont::LargeFont), VerticalOffsetLayoutNode::Position::Subscript)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@ void TypeParameterController::willDisplayCellAtLocation(HighlightCell * cell, in
|
||||
const char * subscripts[3] = {"n", "n+1", "n+2"};
|
||||
m_layouts[j] = HorizontalLayout::Builder(
|
||||
CodePointLayout::Builder(nextName[0], font),
|
||||
VerticalOffsetLayout::Builder(LayoutHelper::String(subscripts[j], strlen(subscripts[j]), font), VerticalOffsetLayoutNode::Type::Subscript)
|
||||
VerticalOffsetLayout::Builder(LayoutHelper::String(subscripts[j], strlen(subscripts[j]), font), VerticalOffsetLayoutNode::Position::Subscript)
|
||||
);
|
||||
ExpressionTableCellWithPointer * myCell = (ExpressionTableCellWithPointer *)cell;
|
||||
myCell->setLayout(m_layouts[j]);
|
||||
|
||||
@@ -78,7 +78,7 @@ Poincare::Layout Sequence::nameLayout() {
|
||||
if (m_nameLayout.isUninitialized()) {
|
||||
m_nameLayout = HorizontalLayout::Builder(
|
||||
CodePointLayout::Builder(fullName()[0], KDFont::SmallFont),
|
||||
VerticalOffsetLayout::Builder(CodePointLayout::Builder(Symbol(), KDFont::SmallFont), VerticalOffsetLayoutNode::Type::Subscript)
|
||||
VerticalOffsetLayout::Builder(CodePointLayout::Builder(Symbol(), KDFont::SmallFont), VerticalOffsetLayoutNode::Position::Subscript)
|
||||
);
|
||||
}
|
||||
return m_nameLayout;
|
||||
@@ -236,16 +236,16 @@ void Sequence::DefinitionModel::buildName(Sequence * sequence) {
|
||||
if (sequence->type() == Type::Explicit) {
|
||||
m_name = HorizontalLayout::Builder(
|
||||
CodePointLayout::Builder(name, k_layoutFont),
|
||||
VerticalOffsetLayout::Builder(LayoutHelper::String("n", 1, k_layoutFont), VerticalOffsetLayoutNode::Type::Subscript));
|
||||
VerticalOffsetLayout::Builder(LayoutHelper::String("n", 1, k_layoutFont), VerticalOffsetLayoutNode::Position::Subscript));
|
||||
} else if (sequence->type() == Type::SingleRecurrence) {
|
||||
m_name = HorizontalLayout::Builder(
|
||||
CodePointLayout::Builder(name, k_layoutFont),
|
||||
VerticalOffsetLayout::Builder(LayoutHelper::String("n+1", 3, k_layoutFont), VerticalOffsetLayoutNode::Type::Subscript));
|
||||
VerticalOffsetLayout::Builder(LayoutHelper::String("n+1", 3, k_layoutFont), VerticalOffsetLayoutNode::Position::Subscript));
|
||||
} else {
|
||||
assert(sequence->type() == Type::DoubleRecurrence);
|
||||
m_name = HorizontalLayout::Builder(
|
||||
CodePointLayout::Builder(name, k_layoutFont),
|
||||
VerticalOffsetLayout::Builder(LayoutHelper::String("n+2", 3, k_layoutFont), VerticalOffsetLayoutNode::Type::Subscript));
|
||||
VerticalOffsetLayout::Builder(LayoutHelper::String("n+2", 3, k_layoutFont), VerticalOffsetLayoutNode::Position::Subscript));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -273,7 +273,7 @@ void Sequence::InitialConditionModel::buildName(Sequence * sequence) {
|
||||
Layout indexLayout = LayoutHelper::String(buffer, strlen(buffer), k_layoutFont);
|
||||
m_name = HorizontalLayout::Builder(
|
||||
CodePointLayout::Builder(sequence->fullName()[0], k_layoutFont),
|
||||
VerticalOffsetLayout::Builder(indexLayout, VerticalOffsetLayoutNode::Type::Subscript));
|
||||
VerticalOffsetLayout::Builder(indexLayout, VerticalOffsetLayoutNode::Position::Subscript));
|
||||
}
|
||||
|
||||
template double Sequence::templatedApproximateAtAbscissa<double>(double, SequenceContext*) const;
|
||||
|
||||
@@ -94,7 +94,7 @@ Layout PreferencesController::layoutForPreferences(I18n::Message message) {
|
||||
const char * superscript = "𝐢θ";
|
||||
return HorizontalLayout::Builder(
|
||||
LayoutHelper::String(base, strlen(base), k_layoutFont),
|
||||
VerticalOffsetLayout::Builder(LayoutHelper::String(superscript, strlen(superscript), k_layoutFont), VerticalOffsetLayoutNode::Type::Superscript)
|
||||
VerticalOffsetLayout::Builder(LayoutHelper::String(superscript, strlen(superscript), k_layoutFont), VerticalOffsetLayoutNode::Position::Superscript)
|
||||
);
|
||||
}
|
||||
default:
|
||||
|
||||
@@ -77,7 +77,7 @@ SolutionsController::SolutionsController(Responder * parentResponder, EquationSt
|
||||
m_delta2Layout(),
|
||||
m_contentView(this)
|
||||
{
|
||||
m_delta2Layout = HorizontalLayout::Builder(VerticalOffsetLayout::Builder(CodePointLayout::Builder('2', KDFont::SmallFont), VerticalOffsetLayoutNode::Type::Superscript), LayoutHelper::String("-4ac", 4, KDFont::SmallFont));
|
||||
m_delta2Layout = HorizontalLayout::Builder(VerticalOffsetLayout::Builder(CodePointLayout::Builder('2', KDFont::SmallFont), VerticalOffsetLayoutNode::Position::Superscript), LayoutHelper::String("-4ac", 4, KDFont::SmallFont));
|
||||
const char * deltaB = "Δ=b";
|
||||
static_cast<HorizontalLayout&>(m_delta2Layout).addOrMergeChildAtIndex(LayoutHelper::String(deltaB, 3, KDFont::SmallFont), 0, false);
|
||||
for (int i = 0; i < EquationStore::k_maxNumberOfExactSolutions; i++) {
|
||||
|
||||
@@ -8,18 +8,18 @@ namespace Poincare {
|
||||
|
||||
class VerticalOffsetLayoutNode final : public LayoutNode {
|
||||
public:
|
||||
enum class Type {
|
||||
enum class Position {
|
||||
Subscript,
|
||||
Superscript
|
||||
};
|
||||
|
||||
VerticalOffsetLayoutNode(Type type = Type::Superscript) :
|
||||
VerticalOffsetLayoutNode(Position position = Position::Superscript) :
|
||||
LayoutNode(),
|
||||
m_type(type)
|
||||
m_position(position)
|
||||
{}
|
||||
|
||||
// VerticalOffsetLayoutNode
|
||||
Type type() const { return m_type; }
|
||||
Position position() const { return m_position; }
|
||||
|
||||
// LayoutNode
|
||||
void moveCursorLeft(LayoutCursor * cursor, bool * shouldRecomputeLayout) override;
|
||||
@@ -37,7 +37,7 @@ public:
|
||||
int numberOfChildren() const override { return 1; }
|
||||
#if POINCARE_TREE_LOG
|
||||
virtual void logNodeName(std::ostream & stream) const override {
|
||||
stream << (m_type == Type::Subscript ? "Subscript" : "Superscript");
|
||||
stream << (m_position == Position::Subscript ? "Subscript" : "Superscript");
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -53,12 +53,12 @@ private:
|
||||
void render(KDContext * ctx, KDPoint p, KDColor expressionColor, KDColor backgroundColor) override {}
|
||||
LayoutNode * indiceLayout() { return childAtIndex(0); }
|
||||
LayoutNode * baseLayout();
|
||||
Type m_type;
|
||||
Position m_position;
|
||||
};
|
||||
|
||||
class VerticalOffsetLayout final : public Layout {
|
||||
public:
|
||||
static VerticalOffsetLayout Builder(Layout l, VerticalOffsetLayoutNode::Type type);
|
||||
static VerticalOffsetLayout Builder(Layout l, VerticalOffsetLayoutNode::Position position);
|
||||
VerticalOffsetLayout() = delete;
|
||||
};
|
||||
|
||||
|
||||
@@ -78,7 +78,7 @@ void LayoutCursor::addEmptyExponentialLayout() {
|
||||
EmptyLayout emptyLayout = EmptyLayout::Builder();
|
||||
HorizontalLayout sibling = HorizontalLayout::Builder(
|
||||
CodePointLayout::Builder(UCodePointScriptSmallE),
|
||||
VerticalOffsetLayout::Builder(emptyLayout, VerticalOffsetLayoutNode::Type::Superscript));
|
||||
VerticalOffsetLayout::Builder(emptyLayout, VerticalOffsetLayoutNode::Position::Superscript));
|
||||
m_layout.addSibling(this, sibling, false);
|
||||
m_layout = emptyLayout;
|
||||
}
|
||||
@@ -103,13 +103,13 @@ void LayoutCursor::addEmptySquareRootLayout() {
|
||||
}
|
||||
|
||||
void LayoutCursor::addEmptyPowerLayout() {
|
||||
VerticalOffsetLayout offsetLayout = VerticalOffsetLayout::Builder(EmptyLayout::Builder(), VerticalOffsetLayoutNode::Type::Superscript);
|
||||
VerticalOffsetLayout offsetLayout = VerticalOffsetLayout::Builder(EmptyLayout::Builder(), VerticalOffsetLayoutNode::Position::Superscript);
|
||||
privateAddEmptyPowerLayout(offsetLayout);
|
||||
m_layout = offsetLayout.childAtIndex(0);
|
||||
}
|
||||
|
||||
void LayoutCursor::addEmptySquarePowerLayout() {
|
||||
VerticalOffsetLayout offsetLayout = VerticalOffsetLayout::Builder(CodePointLayout::Builder('2'), VerticalOffsetLayoutNode::Type::Superscript);
|
||||
VerticalOffsetLayout offsetLayout = VerticalOffsetLayout::Builder(CodePointLayout::Builder('2'), VerticalOffsetLayoutNode::Position::Superscript);
|
||||
privateAddEmptyPowerLayout(offsetLayout);
|
||||
}
|
||||
|
||||
@@ -121,7 +121,7 @@ void LayoutCursor::addEmptyTenPowerLayout() {
|
||||
CodePointLayout::Builder('0'),
|
||||
VerticalOffsetLayout::Builder(
|
||||
emptyLayout,
|
||||
VerticalOffsetLayoutNode::Type::Superscript));
|
||||
VerticalOffsetLayoutNode::Position::Superscript));
|
||||
m_layout.addSibling(this, sibling, false);
|
||||
m_layout = emptyLayout;
|
||||
}
|
||||
|
||||
@@ -92,7 +92,7 @@ HorizontalLayout LayoutHelper::CodePointString(const CodePoint * buffer, int buf
|
||||
|
||||
Layout LayoutHelper::Logarithm(Layout argument, Layout index) {
|
||||
HorizontalLayout resultLayout = String("log", 3);
|
||||
VerticalOffsetLayout offsetLayout = VerticalOffsetLayout::Builder(index, VerticalOffsetLayoutNode::Type::Subscript);
|
||||
VerticalOffsetLayout offsetLayout = VerticalOffsetLayout::Builder(index, VerticalOffsetLayoutNode::Position::Subscript);
|
||||
resultLayout.addChildAtIndex(offsetLayout, resultLayout.numberOfChildren(), resultLayout.numberOfChildren(), nullptr);
|
||||
resultLayout.addOrMergeChildAtIndex(Parentheses(argument, false), resultLayout.numberOfChildren(), true);
|
||||
return resultLayout;
|
||||
|
||||
@@ -138,7 +138,7 @@ Layout PowerNode::createLayout(Preferences::PrintFloatMode floatDisplayMode, int
|
||||
result.addOrMergeChildAtIndex(childAtIndex(0)->createLayout(floatDisplayMode, numberOfSignificantDigits), 0, false);
|
||||
result.addChildAtIndex(VerticalOffsetLayout::Builder(
|
||||
indiceOperand->createLayout(floatDisplayMode, numberOfSignificantDigits),
|
||||
VerticalOffsetLayoutNode::Type::Superscript),
|
||||
VerticalOffsetLayoutNode::Position::Superscript),
|
||||
result.numberOfChildren(),
|
||||
result.numberOfChildren(),
|
||||
nullptr);
|
||||
|
||||
@@ -90,28 +90,28 @@ Layout SymbolNode::createLayout(Preferences::PrintFloatMode floatDisplayMode, in
|
||||
CodePointLayout::Builder('u'),
|
||||
VerticalOffsetLayout::Builder(
|
||||
CodePointLayout::Builder('n'),
|
||||
VerticalOffsetLayoutNode::Type::Subscript));
|
||||
VerticalOffsetLayoutNode::Position::Subscript));
|
||||
}
|
||||
if (strcmp(m_name, "u(n+1)") == 0) {
|
||||
return HorizontalLayout::Builder(
|
||||
CodePointLayout::Builder('u'),
|
||||
VerticalOffsetLayout::Builder(
|
||||
LayoutHelper::String("n+1", 3),
|
||||
VerticalOffsetLayoutNode::Type::Subscript));
|
||||
VerticalOffsetLayoutNode::Position::Subscript));
|
||||
}
|
||||
if (strcmp(m_name, "v(n)") == 0) {
|
||||
return HorizontalLayout::Builder(
|
||||
CodePointLayout::Builder('v'),
|
||||
VerticalOffsetLayout::Builder(
|
||||
CodePointLayout::Builder('n'),
|
||||
VerticalOffsetLayoutNode::Type::Subscript));
|
||||
VerticalOffsetLayoutNode::Position::Subscript));
|
||||
}
|
||||
if (strcmp(m_name, "v(n+1)") == 0) {
|
||||
return HorizontalLayout::Builder(
|
||||
CodePointLayout::Builder('v'),
|
||||
VerticalOffsetLayout::Builder(
|
||||
LayoutHelper::String("n+1", 3),
|
||||
VerticalOffsetLayoutNode::Type::Subscript));
|
||||
VerticalOffsetLayoutNode::Position::Subscript));
|
||||
}
|
||||
return LayoutHelper::String(m_name, strlen(m_name));
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ void VerticalOffsetLayoutNode::moveCursorRight(LayoutCursor * cursor, bool * sho
|
||||
}
|
||||
|
||||
void VerticalOffsetLayoutNode::moveCursorUp(LayoutCursor * cursor, bool * shouldRecomputeLayout, bool equivalentPositionVisited) {
|
||||
if (m_type == Type::Superscript) {
|
||||
if (m_position == Position::Superscript) {
|
||||
// Case: Superscript.
|
||||
if (cursor->isEquivalentTo(LayoutCursor(this, LayoutCursor::Position::Right))) {
|
||||
// Case: Right. Move to the indice.
|
||||
@@ -71,7 +71,7 @@ void VerticalOffsetLayoutNode::moveCursorUp(LayoutCursor * cursor, bool * should
|
||||
}
|
||||
/* Case: Subscript, Left or Right of the indice. Put the cursor at the same
|
||||
* position, pointing this. */
|
||||
if (m_type == Type::Subscript
|
||||
if (m_position == Position::Subscript
|
||||
&& (cursor->isEquivalentTo(LayoutCursor(indiceLayout(), LayoutCursor::Position::Left))
|
||||
|| cursor->isEquivalentTo(LayoutCursor(indiceLayout(), LayoutCursor::Position::Right))))
|
||||
{
|
||||
@@ -82,7 +82,7 @@ void VerticalOffsetLayoutNode::moveCursorUp(LayoutCursor * cursor, bool * should
|
||||
}
|
||||
|
||||
void VerticalOffsetLayoutNode::moveCursorDown(LayoutCursor * cursor, bool * shouldRecomputeLayout, bool equivalentPositionVisited) {
|
||||
if (m_type == Type::Subscript) {
|
||||
if (m_position == Position::Subscript) {
|
||||
// Case: Subscript.
|
||||
if (cursor->isEquivalentTo(LayoutCursor(this, LayoutCursor::Position::Right))) {
|
||||
// Case: Right. Move to the indice.
|
||||
@@ -99,7 +99,7 @@ void VerticalOffsetLayoutNode::moveCursorDown(LayoutCursor * cursor, bool * shou
|
||||
}
|
||||
/* Case: Superscript, Left or Right of the indice. Put the cursor at the same
|
||||
* position, pointing this. */
|
||||
if (m_type == Type::Superscript
|
||||
if (m_position == Position::Superscript
|
||||
&& cursor->layoutNode() == indiceLayout())
|
||||
{
|
||||
cursor->setLayoutNode(this);
|
||||
@@ -149,7 +149,7 @@ void VerticalOffsetLayoutNode::deleteBeforeCursor(LayoutCursor * cursor) {
|
||||
}
|
||||
|
||||
int VerticalOffsetLayoutNode::serialize(char * buffer, int bufferSize, Preferences::PrintFloatMode floatDisplayMode, int numberOfSignificantDigits) const {
|
||||
if (m_type == Type::Subscript) {
|
||||
if (m_position == Position::Subscript) {
|
||||
if (bufferSize == 0) {
|
||||
return -1;
|
||||
}
|
||||
@@ -172,7 +172,7 @@ int VerticalOffsetLayoutNode::serialize(char * buffer, int bufferSize, Preferenc
|
||||
|
||||
return numberOfChar;
|
||||
}
|
||||
assert(m_type == Type::Superscript);
|
||||
assert(m_position == Position::Superscript);
|
||||
/* If the layout is a superscript, write:
|
||||
* "UCodePointLeftSuperscript indice UCodePointRightSuperscript" */
|
||||
int numberOfChar = SerializationHelper::CodePoint(buffer, bufferSize, UCodePointLeftSuperscript);
|
||||
@@ -189,7 +189,7 @@ int VerticalOffsetLayoutNode::serialize(char * buffer, int bufferSize, Preferenc
|
||||
KDSize VerticalOffsetLayoutNode::computeSize() {
|
||||
KDSize indiceSize = indiceLayout()->layoutSize();
|
||||
KDCoordinate width = indiceSize.width();
|
||||
if (m_type == Type::Superscript) {
|
||||
if (m_position == Position::Superscript) {
|
||||
LayoutNode * parentNode = parent();
|
||||
assert(parentNode != nullptr);
|
||||
assert(parentNode->isHorizontal());
|
||||
@@ -203,7 +203,7 @@ KDSize VerticalOffsetLayoutNode::computeSize() {
|
||||
}
|
||||
|
||||
KDCoordinate VerticalOffsetLayoutNode::computeBaseline() {
|
||||
if (m_type == Type::Subscript) {
|
||||
if (m_position == Position::Subscript) {
|
||||
return baseLayout()->baseline();
|
||||
} else {
|
||||
return indiceLayout()->layoutSize().height() - k_indiceHeight + baseLayout()->baseline();
|
||||
@@ -212,17 +212,17 @@ KDCoordinate VerticalOffsetLayoutNode::computeBaseline() {
|
||||
|
||||
KDPoint VerticalOffsetLayoutNode::positionOfChild(LayoutNode * child) {
|
||||
assert(child == indiceLayout());
|
||||
if (m_type == Type::Superscript) {
|
||||
if (m_position == Position::Superscript) {
|
||||
return KDPointZero;
|
||||
}
|
||||
assert(m_type == Type::Subscript);
|
||||
assert(m_position == Position::Subscript);
|
||||
return KDPoint(0, baseLayout()->layoutSize().height() - k_indiceHeight);
|
||||
}
|
||||
|
||||
bool VerticalOffsetLayoutNode::willAddSibling(LayoutCursor * cursor, LayoutNode * sibling, bool moveCursor) {
|
||||
if (sibling->isVerticalOffset()) {
|
||||
VerticalOffsetLayoutNode * verticalOffsetSibling = static_cast<VerticalOffsetLayoutNode *>(sibling);
|
||||
if (verticalOffsetSibling->type() == Type::Superscript) {
|
||||
if (verticalOffsetSibling->position() == Position::Superscript) {
|
||||
Layout rootLayout = root();
|
||||
Layout thisRef = Layout(this);
|
||||
Layout parentRef = Layout(parent());
|
||||
@@ -265,9 +265,9 @@ LayoutNode * VerticalOffsetLayoutNode::baseLayout() {
|
||||
return parentNode->childAtIndex(idxInParent - 1);
|
||||
}
|
||||
|
||||
VerticalOffsetLayout VerticalOffsetLayout::Builder(Layout l, VerticalOffsetLayoutNode::Type type) {
|
||||
VerticalOffsetLayout VerticalOffsetLayout::Builder(Layout l, VerticalOffsetLayoutNode::Position position) {
|
||||
void * bufferNode = TreePool::sharedPool()->alloc(sizeof(VerticalOffsetLayoutNode));
|
||||
VerticalOffsetLayoutNode * node = new (bufferNode) VerticalOffsetLayoutNode(type);
|
||||
VerticalOffsetLayoutNode * node = new (bufferNode) VerticalOffsetLayoutNode(position);
|
||||
TreeHandle h = TreeHandle::BuildWithGhostChildren(node);
|
||||
h.replaceChildAtIndexInPlace(0, l);
|
||||
return static_cast<VerticalOffsetLayout &>(h);
|
||||
|
||||
@@ -67,7 +67,7 @@ QUIZ_CASE(poincare_create_all_layouts) {
|
||||
EmptyLayout e23 = EmptyLayout::Builder();
|
||||
EmptyLayout e24 = EmptyLayout::Builder();
|
||||
SumLayout e25 = SumLayout::Builder(e21, e22, e23, e24);
|
||||
VerticalOffsetLayout e26 = VerticalOffsetLayout::Builder(e25, VerticalOffsetLayoutNode::Type::Superscript);
|
||||
VerticalOffsetLayout e26 = VerticalOffsetLayout::Builder(e25, VerticalOffsetLayoutNode::Position::Superscript);
|
||||
}
|
||||
|
||||
Matrix BuildOneChildMatrix(Expression entry) {
|
||||
@@ -141,7 +141,7 @@ QUIZ_CASE(poincare_parse_layouts) {
|
||||
CodePointLayout::Builder('3'),
|
||||
CodePointLayout::Builder('+'),
|
||||
CodePointLayout::Builder('4')),
|
||||
VerticalOffsetLayoutNode::Type::Superscript));
|
||||
VerticalOffsetLayoutNode::Position::Superscript));
|
||||
e = Power::Builder(
|
||||
Rational::Builder(2),
|
||||
Addition::Builder(
|
||||
@@ -154,7 +154,7 @@ QUIZ_CASE(poincare_parse_layouts) {
|
||||
l1.addChildAtIndex(CodePointLayout::Builder('l'), l1.numberOfChildren(), l1.numberOfChildren(), nullptr);
|
||||
l1.addChildAtIndex(CodePointLayout::Builder('o'), l1.numberOfChildren(), l1.numberOfChildren(), nullptr);
|
||||
l1.addChildAtIndex(CodePointLayout::Builder('g'), l1.numberOfChildren(), l1.numberOfChildren(), nullptr);
|
||||
l1.addChildAtIndex(VerticalOffsetLayout::Builder(CodePointLayout::Builder('3'), VerticalOffsetLayoutNode::Type::Subscript), l1.numberOfChildren(), l1.numberOfChildren(), nullptr);
|
||||
l1.addChildAtIndex(VerticalOffsetLayout::Builder(CodePointLayout::Builder('3'), VerticalOffsetLayoutNode::Position::Subscript), l1.numberOfChildren(), l1.numberOfChildren(), nullptr);
|
||||
l1.addChildAtIndex(LeftParenthesisLayout::Builder(), l1.numberOfChildren(), l1.numberOfChildren(), nullptr);
|
||||
l1.addChildAtIndex(CodePointLayout::Builder('2'), l1.numberOfChildren(), l1.numberOfChildren(), nullptr);
|
||||
l1.addChildAtIndex(RightParenthesisLayout::Builder(), l1.numberOfChildren(), l1.numberOfChildren(), nullptr);
|
||||
@@ -189,7 +189,7 @@ QUIZ_CASE(poincare_parse_layouts) {
|
||||
CodePointLayout::Builder('2'),
|
||||
VerticalOffsetLayout::Builder(
|
||||
CodePointLayout::Builder('2'),
|
||||
VerticalOffsetLayoutNode::Type::Superscript),
|
||||
VerticalOffsetLayoutNode::Position::Superscript),
|
||||
CodePointLayout::Builder('!'));
|
||||
e = Factorial::Builder(
|
||||
Power::Builder(
|
||||
@@ -223,7 +223,7 @@ QUIZ_CASE(poincare_parse_layouts) {
|
||||
CodePointLayout::Builder('3'),
|
||||
VerticalOffsetLayout::Builder(
|
||||
CodePointLayout::Builder('2'),
|
||||
VerticalOffsetLayoutNode::Type::Superscript),
|
||||
VerticalOffsetLayoutNode::Position::Superscript),
|
||||
CodePointLayout::Builder('!')),
|
||||
CodePointLayout::Builder('7'),
|
||||
CodePointLayout::Builder('4'),
|
||||
@@ -251,7 +251,7 @@ QUIZ_CASE(poincare_parse_layouts) {
|
||||
CodePointLayout::Builder('7'),
|
||||
CodePointLayout::Builder('4'),
|
||||
CodePointLayout::Builder('5')),
|
||||
VerticalOffsetLayoutNode::Type::Superscript));
|
||||
VerticalOffsetLayoutNode::Position::Superscript));
|
||||
m = BuildOneChildMatrix(
|
||||
Factorial::Builder(
|
||||
Rational::Builder(3)));
|
||||
@@ -268,7 +268,7 @@ QUIZ_CASE(poincare_parse_layouts) {
|
||||
CodePointLayout::Builder(UCodePointScriptSmallE),
|
||||
VerticalOffsetLayout::Builder(
|
||||
CodePointLayout::Builder('3'),
|
||||
VerticalOffsetLayoutNode::Type::Superscript));
|
||||
VerticalOffsetLayoutNode::Position::Superscript));
|
||||
e = Multiplication::Builder(Rational::Builder(2),Power::Builder(Constant::Builder(UCodePointScriptSmallE),Parenthesis::Builder(Rational::Builder(3))));
|
||||
assert_parsed_expression_is("2ℯ^(3)", Multiplication::Builder(Rational::Builder(2),Power::Builder(Constant::Builder(UCodePointScriptSmallE),Parenthesis::Builder(Rational::Builder(3)))));
|
||||
assert_parsed_layout_is(l, e);
|
||||
|
||||
@@ -11,7 +11,7 @@ QUIZ_CASE(poincare_vertical_offset_layout_serialize) {
|
||||
CodePointLayout::Builder('2'),
|
||||
VerticalOffsetLayout::Builder(
|
||||
LayoutHelper::String("x+5", 3),
|
||||
VerticalOffsetLayoutNode::Type::Superscript
|
||||
VerticalOffsetLayoutNode::Position::Superscript
|
||||
)
|
||||
);
|
||||
assert(UCodePointLeftSuperscript == '\x12');
|
||||
|
||||
Reference in New Issue
Block a user