[apps] Implement InteractiveCurveViewController::isCursorVisible

It was a pure virtual method implemented in derived classes
  Shared::FunctionGraphController,
  Regression::GraphController.
InteractiveCurveViewRange does not need anymore to hold CurveViewCursor
* m_cursor.
This commit is contained in:
Ruben Dashyan
2019-03-20 11:31:33 +01:00
committed by Émilie Feral
parent 8629254d9a
commit 67f9f79322
14 changed files with 21 additions and 33 deletions

View File

@@ -194,6 +194,17 @@ StackViewController * InteractiveCurveViewController::stackController() const{
return (StackViewController *)(parentResponder()->parentResponder()->parentResponder());
}
bool InteractiveCurveViewController::isCursorVisible() {
InteractiveCurveViewRange * range = interactiveCurveViewRange();
float xRange = range->xMax() - range->xMin();
float yRange = range->yMax() - range->yMin();
return
m_cursor->x() >= range->xMin() + k_cursorLeftMarginRatio * xRange &&
m_cursor->x() <= range->xMax() - k_cursorRightMarginRatio * xRange &&
m_cursor->y() >= range->yMin() + cursorBottomMarginRatio() * yRange &&
m_cursor->y() <= range->yMax() - cursorTopMarginRatio() * yRange;
}
int InteractiveCurveViewController::closestCurveIndexVertically(bool goingUp, int currentCurveIndex, Poincare::Context * context) const {
double x = m_cursor->x();
double y = m_cursor->y();