11 m_graphView(graphView),
12 m_bannerView(bannerView),
13 m_graphRange(curveViewRange),
33 m_function =
function;
36 void TangentGraphController::reloadBannerView() {
38 if (m_function ==
nullptr) {
41 FunctionBannerDelegate::reloadBannerViewForCursorOnFunction(
m_cursor, m_function,
'x');
45 const char * legend =
"a=";
46 int legendLength =
strlen(legend);
47 strlcpy(buffer, legend, legendLength+1);
53 legendLength =
strlen(legend);
54 strlcpy(buffer, legend, legendLength+1);
60 bool TangentGraphController::moveCursorHorizontally(
int direction) {
65 bool TangentGraphController::handleEnter() {
void setLegendAtIndex(char *text, int index)
const char * title() override
static constexpr int MediumNumberOfSignificantDigits
Responder * parentResponder() const
void setOkView(View *okView)
void viewWillAppear() override
size_t strlcpy(char *dst, const char *src, size_t len)
void setFunction(CartesianFunction *function)
static constexpr float k_numberOfCursorStepsInGradUnit
virtual Poincare::Context * localContext()
void setNumberOfSubviews(int numberOfSubviews)
enum Message uint16_t enum Language uint16_t const char * translate(Message m, Language l=(Language) 0)
static constexpr float k_cursorRightMarginRatio
double approximateDerivative(double x, Poincare::Context *context) const
void drawTangent(bool tangent)
bool privateMoveCursorHorizontally(Shared::CurveViewCursor *cursor, int direction, Shared::InteractiveCurveViewRange *range, int numberOfStepsInGradUnit, Shared::Function *function, Shared::TextFieldDelegateApp *app, float cursorTopMarginRatio, float cursorRightMarginRatio, float cursorBottomMarginRatio, float cursorLeftMarginRatio)
size_t strlen(const char *s)
static constexpr int LargeNumberOfSignificantDigits
void panToMakePointVisible(float x, float y, float topMarginRatio, float rightMarginRatio, float bottomMarginRation, float leftMarginRation)
void reloadDerivativeInBannerViewForCursorOnFunction(Shared::CurveViewCursor *cursor, CartesianFunction *function, Shared::TextFieldDelegateApp *app)
virtual float evaluateAtAbscissa(float x, Poincare::Context *context) const
void selectMainView(bool mainViewSelected)
void selectFunction(Function *function)
static constexpr float k_cursorLeftMarginRatio
CurveViewCursor * m_cursor