Fix HistoryViewCell and ScrollableExactApproximateExxpressionsCell margins issue

Remove all margins from those cells.
Rather add margins to their respective subviews:
 - ScrollableExpressionView
 - ScrollableExactApproximateExpressionsView.

As a notable consequence, the distance in HistoryViewCell between its
subviews becomes 10 instead of 5.

In passing, replace
 - Metric::HistoryHorizontalMargin = 10
 - ScrollableExactApproximateExpressionsView::k_digitHorizontalMargin = 10
 - HistoryViewCell::k_digitVerticalMargin = 5
 - ScrollableExactApproximateExpressionsCell::k_margin = 5
by
 - Metric::CommonSmallMargin = 5
 - Metric::CommonLargeMargin = 10.
This commit is contained in:
Ruben Dashyan
2019-02-15 11:49:20 +01:00
committed by EmilieNumworks
parent 571967088e
commit 0943406263
11 changed files with 24 additions and 16 deletions

View File

@@ -150,7 +150,7 @@ KDCoordinate HistoryController::rowHeight(int j) {
}
Calculation * calculation = m_calculationStore->calculationAtIndex(j);
App * calculationApp = (App *)app();
return calculation->height(calculationApp->localContext()) + 3*HistoryViewCell::k_digitVerticalMargin;
return calculation->height(calculationApp->localContext()) + 4 * Metric::CommonSmallMargin;
}
int HistoryController::typeAtLocation(int i, int j) {

View File

@@ -98,16 +98,16 @@ void HistoryViewCell::layoutSubviews() {
KDSize inputSize = m_inputView.minimalSizeForOptimalDisplay();
m_inputView.setFrame(KDRect(
0,
k_digitVerticalMargin,
0,
min(maxFrameWidth, inputSize.width()),
inputSize.height()
));
KDSize outputSize = m_scrollableOutputView.minimalSizeForOptimalDisplay();
m_scrollableOutputView.setFrame(KDRect(
max(0, maxFrameWidth - outputSize.width()),
inputSize.height() + 2*k_digitVerticalMargin,
inputSize.height(),
min(maxFrameWidth, outputSize.width()),
bounds().height() - inputSize.height() - 3*k_digitVerticalMargin
bounds().height() - inputSize.height()
));
}

View File

@@ -42,7 +42,6 @@ public:
void layoutSubviews() override;
void didBecomeFirstResponder() override;
bool handleEvent(Ion::Events::Event event) override;
constexpr static KDCoordinate k_digitVerticalMargin = 5;
Shared::ScrollableExactApproximateExpressionsView * outputView();
private:
constexpr static KDCoordinate k_resultWidth = 80;

View File

@@ -9,7 +9,12 @@ ScrollableExpressionView::ScrollableExpressionView(Responder * parentResponder)
m_expressionView()
{
setDecoratorType(ScrollView::Decorator::Type::Arrows);
setMargins(0, Metric::HistoryHorizontalMargin, 0, Metric::HistoryHorizontalMargin);
setMargins(
Metric::CommonSmallMargin,
Metric::CommonLargeMargin,
Metric::CommonSmallMargin,
Metric::CommonLargeMargin
);
}
void ScrollableExpressionView::setLayout(Layout layout) {

View File

@@ -38,7 +38,7 @@ public:
private:
constexpr static size_t k_extensionLength = 1+ScriptStore::k_scriptExtensionLength; // '.' + "py"
constexpr static KDCoordinate k_leftMargin = Metric::HistoryHorizontalMargin;
constexpr static KDCoordinate k_leftMargin = Metric::CommonLargeMargin;
// View
int numberOfSubviews() const override { return 1; }

View File

@@ -41,7 +41,7 @@ View * ScrollableExactApproximateExpressionsCell::subviewAtIndex(int index) {
}
void ScrollableExactApproximateExpressionsCell::layoutSubviews() {
m_view.setFrame(KDRect(k_margin,k_margin, bounds().width()-2*k_margin, bounds().height()-2*k_margin));
m_view.setFrame(bounds());
}
}

View File

@@ -24,7 +24,6 @@ public:
}
Poincare::Layout layout() const override { return m_view.layout(); }
void didBecomeFirstResponder() override;
constexpr static KDCoordinate k_margin = 5;
private:
int numberOfSubviews() const override;
View * subviewAtIndex(int index) override;

View File

@@ -53,7 +53,7 @@ KDSize ScrollableExactApproximateExpressionsView::ContentCell::minimalSizeForOpt
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(leftExpressionSize.width()+approximateSignSize.width()+rightExpressionSize.width()+2*k_digitHorizontalMargin, height);
return KDSize(leftExpressionSize.width()+approximateSignSize.width()+rightExpressionSize.width()+2*Metric::CommonLargeMargin, height);
}
void ScrollableExactApproximateExpressionsView::ContentCell::setSelectedSubviewPosition(ScrollableExactApproximateExpressionsView::SubviewPosition subviewPosition) {
@@ -94,8 +94,8 @@ void ScrollableExactApproximateExpressionsView::ContentCell::layoutSubviews() {
KDSize leftExpressionSize = m_leftExpressionView.minimalSizeForOptimalDisplay();
KDSize approximateSignSize = m_approximateSign.minimalSizeForOptimalDisplay();
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));
m_rightExpressionView.setFrame(KDRect(2*Metric::CommonLargeMargin+leftExpressionSize.width()+approximateSignSize.width(), baseline-rightBaseline, rightExpressionSize));
m_approximateSign.setFrame(KDRect(Metric::CommonLargeMargin+leftExpressionSize.width(), baseline-approximateSignSize.height()/2, approximateSignSize));
}
ScrollableExactApproximateExpressionsView::ScrollableExactApproximateExpressionsView(Responder * parentResponder) :
@@ -103,7 +103,12 @@ ScrollableExactApproximateExpressionsView::ScrollableExactApproximateExpressions
m_contentCell()
{
setDecoratorType(ScrollView::Decorator::Type::Arrows);
setMargins(0, Metric::HistoryHorizontalMargin, 0, Metric::HistoryHorizontalMargin);
setMargins(
Metric::CommonSmallMargin,
Metric::CommonLargeMargin,
Metric::CommonSmallMargin,
Metric::CommonLargeMargin
);
}
void ScrollableExactApproximateExpressionsView::setLayouts(Poincare::Layout rightLayout, Poincare::Layout leftLayout) {

View File

@@ -54,7 +54,6 @@ private:
Poincare::Layout layout() const override;
private:
View * subviewAtIndex(int index) override;
constexpr static KDCoordinate k_digitHorizontalMargin = 10;
ExpressionView m_rightExpressionView;
MessageTextView m_approximateSign;
ExpressionView m_leftExpressionView;

View File

@@ -220,7 +220,7 @@ KDCoordinate SolutionsController::rowHeight(int j) {
KDCoordinate exactLayoutHeight = exactLayout.layoutSize().height();
KDCoordinate approximateLayoutHeight = approximateLayout.layoutSize().height();
KDCoordinate layoutHeight = max(exactLayout.baseline(), approximateLayout.baseline()) + max(exactLayoutHeight-exactLayout.baseline(), approximateLayoutHeight-approximateLayout.baseline());
return layoutHeight+ScrollableExactApproximateExpressionsCell::k_margin*2;
return layoutHeight + 2 * Metric::CommonSmallMargin;
}
KDCoordinate SolutionsController::cumulatedWidthFromIndex(int i) {

View File

@@ -9,7 +9,8 @@ public:
constexpr static KDCoordinate CommonRightMargin = 20;
constexpr static KDCoordinate CommonTopMargin = 15;
constexpr static KDCoordinate CommonBottomMargin = 15;
constexpr static KDCoordinate HistoryHorizontalMargin = 10;
constexpr static KDCoordinate CommonLargeMargin = 10;
constexpr static KDCoordinate CommonSmallMargin = 5;
constexpr static KDCoordinate TitleBarExternHorizontalMargin = 5;
constexpr static KDCoordinate TitleBarHeight = 18;
constexpr static KDCoordinate ParameterCellHeight = 35;