diff --git a/apps/calculation/history_view_cell.cpp b/apps/calculation/history_view_cell.cpp index d95a3535a..c446eb598 100644 --- a/apps/calculation/history_view_cell.cpp +++ b/apps/calculation/history_view_cell.cpp @@ -11,8 +11,8 @@ HistoryViewCell::HistoryViewCell(Responder * parentResponder) : Responder(parentResponder), m_calculation(), m_inputLayout(), - m_exactOutputLayout(), - m_approximateOutputLayout(), + m_leftOutputLayout(), + m_rightOutputLayout(), m_inputView(this), m_scrollableOutputView(this), m_selectedSubviewType(HistoryViewCell::SubviewType::Output) @@ -106,21 +106,21 @@ void HistoryViewCell::setCalculation(Calculation * calculation) { * when updating one layout, if the second one still points to a deleted * layout, calling to layoutSubviews() would fail. */ assert(!calculation->shouldOnlyDisplayApproximateOutput(calculationApp->localContext()) || !calculation->shouldOnlyDisplayExactOutput()); - if (!m_exactOutputLayout.isUninitialized()) { - m_exactOutputLayout = Poincare::Layout(); + if (!m_leftOutputLayout.isUninitialized()) { + m_leftOutputLayout = Poincare::Layout(); } - if (!m_approximateOutputLayout.isUninitialized()) { - m_approximateOutputLayout = Poincare::Layout(); + if (!m_rightOutputLayout.isUninitialized()) { + m_rightOutputLayout = Poincare::Layout(); } if (calculation->shouldOnlyDisplayExactOutput()) { - m_approximateOutputLayout = calculation->createExactOutputLayout(); + m_rightOutputLayout = calculation->createExactOutputLayout(); } else { - m_approximateOutputLayout = calculation->createApproximateOutputLayout(calculationApp->localContext()); + m_rightOutputLayout = calculation->createApproximateOutputLayout(calculationApp->localContext()); if (!calculation->shouldOnlyDisplayApproximateOutput(calculationApp->localContext())) { - m_exactOutputLayout = calculation->createExactOutputLayout(); + m_leftOutputLayout = calculation->createExactOutputLayout(); } } - m_scrollableOutputView.setLayouts(m_approximateOutputLayout, m_exactOutputLayout); + m_scrollableOutputView.setLayouts(m_rightOutputLayout, m_leftOutputLayout); I18n::Message equalMessage = calculation->exactAndApproximateDisplayedOutputsAreEqual(calculationApp->localContext()) == Calculation::EqualSign::Equal ? I18n::Message::Equal : I18n::Message::AlmostEqual; m_scrollableOutputView.setEqualMessage(equalMessage); } diff --git a/apps/calculation/history_view_cell.h b/apps/calculation/history_view_cell.h index 0d6462937..feaba1f7a 100644 --- a/apps/calculation/history_view_cell.h +++ b/apps/calculation/history_view_cell.h @@ -38,8 +38,8 @@ private: constexpr static KDCoordinate k_resultWidth = 80; Calculation m_calculation; Poincare::Layout m_inputLayout; - Poincare::Layout m_exactOutputLayout; - Poincare::Layout m_approximateOutputLayout; + Poincare::Layout m_leftOutputLayout; + Poincare::Layout m_rightOutputLayout; ScrollableExpressionView m_inputView; Shared::ScrollableExactApproximateExpressionsView m_scrollableOutputView; SubviewType m_selectedSubviewType; diff --git a/apps/shared/scrollable_exact_approximate_expressions_view.cpp b/apps/shared/scrollable_exact_approximate_expressions_view.cpp index d1c551a1f..deb3f44f0 100644 --- a/apps/shared/scrollable_exact_approximate_expressions_view.cpp +++ b/apps/shared/scrollable_exact_approximate_expressions_view.cpp @@ -6,9 +6,9 @@ using namespace Poincare; namespace Shared { ScrollableExactApproximateExpressionsView::ContentCell::ContentCell() : - m_approximateExpressionView(), + m_rightExpressionView(), m_approximateSign(KDFont::LargeFont, I18n::Message::AlmostEqual, 0.5f, 0.5f, Palette::GreyVeryDark), - m_exactExpressionView(), + m_leftExpressionView(), m_selectedSubviewType((SubviewType)0) { } @@ -21,13 +21,13 @@ KDColor ScrollableExactApproximateExpressionsView::ContentCell::backgroundColor( void ScrollableExactApproximateExpressionsView::ContentCell::setHighlighted(bool highlight) { // Do not call HighlightCell::setHighlighted to avoid marking all cell as dirty m_highlighted = highlight; - m_exactExpressionView.setBackgroundColor(backgroundColor()); - m_approximateExpressionView.setBackgroundColor(backgroundColor()); + m_leftExpressionView.setBackgroundColor(backgroundColor()); + m_rightExpressionView.setBackgroundColor(backgroundColor()); if (highlight) { if (m_selectedSubviewType == SubviewType::ExactOutput) { - m_exactExpressionView.setBackgroundColor(Palette::Select); + m_leftExpressionView.setBackgroundColor(Palette::Select); } else { - m_approximateExpressionView.setBackgroundColor(Palette::Select); + m_rightExpressionView.setBackgroundColor(Palette::Select); } } } @@ -36,24 +36,24 @@ void ScrollableExactApproximateExpressionsView::ContentCell::reloadCell() { setHighlighted(isHighlighted()); m_approximateSign.setBackgroundColor(backgroundColor()); if (numberOfSubviews() == 1) { - m_approximateExpressionView.setTextColor(KDColorBlack); + m_rightExpressionView.setTextColor(KDColorBlack); } else { - m_approximateExpressionView.setTextColor(Palette::GreyVeryDark); + m_rightExpressionView.setTextColor(Palette::GreyVeryDark); } layoutSubviews(); } KDSize ScrollableExactApproximateExpressionsView::ContentCell::minimalSizeForOptimalDisplay() const { - KDSize approximateExpressionSize = m_approximateExpressionView.minimalSizeForOptimalDisplay(); + KDSize rightExpressionSize = m_rightExpressionView.minimalSizeForOptimalDisplay(); if (numberOfSubviews() == 1) { - return approximateExpressionSize; + return rightExpressionSize; } - KDSize exactExpressionSize = m_exactExpressionView.minimalSizeForOptimalDisplay(); - KDCoordinate exactBaseline = m_exactExpressionView.layout().baseline(); - KDCoordinate approximateBaseline = m_approximateExpressionView.layout().baseline(); - KDCoordinate height = max(exactBaseline, approximateBaseline) + max(exactExpressionSize.height()-exactBaseline, approximateExpressionSize.height()-approximateBaseline); + KDSize leftExpressionSize = m_leftExpressionView.minimalSizeForOptimalDisplay(); + KDCoordinate leftBaseline = m_leftExpressionView.layout().baseline(); + KDCoordinate rightBaseline = m_rightExpressionView.layout().baseline(); + KDCoordinate height = max(leftBaseline, rightBaseline) + max(leftExpressionSize.height()-leftBaseline, rightExpressionSize.height()-rightBaseline); KDSize approximateSignSize = m_approximateSign.minimalSizeForOptimalDisplay(); - return KDSize(exactExpressionSize.width()+approximateSignSize.width()+approximateExpressionSize.width()+2*k_digitHorizontalMargin, height); + return KDSize(leftExpressionSize.width()+approximateSignSize.width()+rightExpressionSize.width()+2*k_digitHorizontalMargin, height); } void ScrollableExactApproximateExpressionsView::ContentCell::setSelectedSubviewType(ScrollableExactApproximateExpressionsView::SubviewType subviewType) { @@ -63,39 +63,39 @@ void ScrollableExactApproximateExpressionsView::ContentCell::setSelectedSubviewT Poincare::Layout ScrollableExactApproximateExpressionsView::ContentCell::layout() const { if (m_selectedSubviewType == SubviewType::ExactOutput) { - return m_exactExpressionView.layout(); + return m_leftExpressionView.layout(); } else { - return m_approximateExpressionView.layout(); + return m_rightExpressionView.layout(); } } int ScrollableExactApproximateExpressionsView::ContentCell::numberOfSubviews() const { - if (m_exactExpressionView.layout().isUninitialized()) { + if (m_leftExpressionView.layout().isUninitialized()) { return 1; } return 3; } View * ScrollableExactApproximateExpressionsView::ContentCell::subviewAtIndex(int index) { - View * views[3] = {&m_approximateExpressionView, &m_approximateSign, &m_exactExpressionView}; + View * views[3] = {&m_rightExpressionView, &m_approximateSign, &m_leftExpressionView}; return views[index]; } void ScrollableExactApproximateExpressionsView::ContentCell::layoutSubviews() { KDCoordinate height = bounds().height(); - KDSize approximateExpressionSize = m_approximateExpressionView.minimalSizeForOptimalDisplay(); + KDSize rightExpressionSize = m_rightExpressionView.minimalSizeForOptimalDisplay(); if (numberOfSubviews() == 1) { - m_approximateExpressionView.setFrame(KDRect(0, 0, approximateExpressionSize.width(), height)); + m_rightExpressionView.setFrame(KDRect(0, 0, rightExpressionSize.width(), height)); return; } - KDCoordinate exactBaseline = m_exactExpressionView.layout().baseline(); - KDCoordinate approximateBaseline = m_approximateExpressionView.layout().baseline(); - KDCoordinate baseline = max(exactBaseline, approximateBaseline); - KDSize exactExpressionSize = m_exactExpressionView.minimalSizeForOptimalDisplay(); + KDCoordinate leftBaseline = m_leftExpressionView.layout().baseline(); + KDCoordinate rightBaseline = m_rightExpressionView.layout().baseline(); + KDCoordinate baseline = max(leftBaseline, rightBaseline); + KDSize leftExpressionSize = m_leftExpressionView.minimalSizeForOptimalDisplay(); KDSize approximateSignSize = m_approximateSign.minimalSizeForOptimalDisplay(); - m_exactExpressionView.setFrame(KDRect(0, baseline-exactBaseline, exactExpressionSize)); - m_approximateExpressionView.setFrame(KDRect(2*k_digitHorizontalMargin+exactExpressionSize.width()+approximateSignSize.width(), baseline-approximateBaseline, approximateExpressionSize)); - m_approximateSign.setFrame(KDRect(k_digitHorizontalMargin+exactExpressionSize.width(), baseline-approximateSignSize.height()/2, approximateSignSize)); + m_leftExpressionView.setFrame(KDRect(0, baseline-leftBaseline, leftExpressionSize)); + m_rightExpressionView.setFrame(KDRect(2*k_digitHorizontalMargin+leftExpressionSize.width()+approximateSignSize.width(), baseline-rightBaseline, rightExpressionSize)); + m_approximateSign.setFrame(KDRect(k_digitHorizontalMargin+leftExpressionSize.width(), baseline-approximateSignSize.height()/2, approximateSignSize)); } ScrollableExactApproximateExpressionsView::ScrollableExactApproximateExpressionsView(Responder * parentResponder) : @@ -104,9 +104,9 @@ ScrollableExactApproximateExpressionsView::ScrollableExactApproximateExpressions { } -void ScrollableExactApproximateExpressionsView::setLayouts(Poincare::Layout approximateLayout, Poincare::Layout exactLayout) { - m_contentCell.approximateExpressionView()->setLayout(approximateLayout); - m_contentCell.exactExpressionView()->setLayout(exactLayout); +void ScrollableExactApproximateExpressionsView::setLayouts(Poincare::Layout rightLayout, Poincare::Layout leftLayout) { + m_contentCell.rightExpressionView()->setLayout(rightLayout); + m_contentCell.leftExpressionView()->setLayout(leftLayout); m_contentCell.layoutSubviews(); } @@ -115,7 +115,7 @@ void ScrollableExactApproximateExpressionsView::setEqualMessage(I18n::Message eq } void ScrollableExactApproximateExpressionsView::didBecomeFirstResponder() { - if (m_contentCell.exactExpressionView()->layout().isUninitialized()) { + if (m_contentCell.leftExpressionView()->layout().isUninitialized()) { setSelectedSubviewType(SubviewType::ApproximativeOutput); } else { setSelectedSubviewType(SubviewType::ExactOutput); @@ -123,12 +123,12 @@ void ScrollableExactApproximateExpressionsView::didBecomeFirstResponder() { } bool ScrollableExactApproximateExpressionsView::handleEvent(Ion::Events::Event event) { - if (m_contentCell.exactExpressionView()->layout().isUninitialized()) { + if (m_contentCell.leftExpressionView()->layout().isUninitialized()) { return ScrollableView::handleEvent(event); } - bool rightExpressionIsVisible = minimalSizeForOptimalDisplay().width() - m_contentCell.approximateExpressionView()->minimalSizeForOptimalDisplay().width() - m_manualScrollingOffset.x() < bounds().width() + bool rightExpressionIsVisible = minimalSizeForOptimalDisplay().width() - m_contentCell.rightExpressionView()->minimalSizeForOptimalDisplay().width() - m_manualScrollingOffset.x() < bounds().width() ; - bool leftExpressionIsVisible = m_contentCell.exactExpressionView()->minimalSizeForOptimalDisplay().width() - m_manualScrollingOffset.x() > 0; + bool leftExpressionIsVisible = m_contentCell.leftExpressionView()->minimalSizeForOptimalDisplay().width() - m_manualScrollingOffset.x() > 0; if ((event == Ion::Events::Right && selectedSubviewType() == SubviewType::ExactOutput && rightExpressionIsVisible) || (event == Ion::Events::Left && selectedSubviewType() == SubviewType::ApproximativeOutput && leftExpressionIsVisible)) { SubviewType otherSubviewType = selectedSubviewType() == SubviewType::ExactOutput ? SubviewType::ApproximativeOutput : SubviewType::ExactOutput; diff --git a/apps/shared/scrollable_exact_approximate_expressions_view.h b/apps/shared/scrollable_exact_approximate_expressions_view.h index 29731503e..23b7fe79e 100644 --- a/apps/shared/scrollable_exact_approximate_expressions_view.h +++ b/apps/shared/scrollable_exact_approximate_expressions_view.h @@ -15,7 +15,7 @@ public: ::EvenOddCell * evenOddCell() { return &m_contentCell; } - void setLayouts(Poincare::Layout approximatelayout, Poincare::Layout exactLayout); + void setLayouts(Poincare::Layout rightlayout, Poincare::Layout leftLayout); void setEqualMessage(I18n::Message equalSignMessage); SubviewType selectedSubviewType() { return m_contentCell.selectedSubviewType(); @@ -37,11 +37,11 @@ private: void setHighlighted(bool highlight) override; void reloadCell() override; KDSize minimalSizeForOptimalDisplay() const override; - ExpressionView * approximateExpressionView() { - return &m_approximateExpressionView; + ExpressionView * rightExpressionView() { + return &m_rightExpressionView; } - ExpressionView * exactExpressionView() { - return &m_exactExpressionView; + ExpressionView * leftExpressionView() { + return &m_leftExpressionView; } MessageTextView * approximateSign() { return &m_approximateSign; @@ -56,9 +56,9 @@ private: private: View * subviewAtIndex(int index) override; constexpr static KDCoordinate k_digitHorizontalMargin = 10; - ExpressionView m_approximateExpressionView; + ExpressionView m_rightExpressionView; MessageTextView m_approximateSign; - ExpressionView m_exactExpressionView; + ExpressionView m_leftExpressionView; SubviewType m_selectedSubviewType; }; ContentCell m_contentCell;