Files
Upsilon/apps/shared/storage_function_app.h
Émilie Feral c70278941a [graph] Do not keep a function pointer as member variable but a record.
Indeed, function pointers can become invalid at any point...
2018-11-23 12:04:02 +01:00

45 lines
1.2 KiB
C++

#ifndef SHARED_STORAGE_FUNCTION_APP_H
#define SHARED_STORAGE_FUNCTION_APP_H
#include "expression_field_delegate_app.h"
#include "storage_function_store.h"
#include "curve_view_cursor.h"
#include "interval.h"
class AppsContainer;
namespace Shared {
class StorageFunctionApp : public ExpressionFieldDelegateApp {
public:
class Snapshot : public ::App::Snapshot, public TabViewDataSource {
public:
Snapshot();
CurveViewCursor * cursor();
uint32_t * modelVersion();
uint32_t * rangeVersion();
Poincare::Preferences::AngleUnit * angleUnitVersion();
Interval * interval();
int * indexFunctionSelectedByCursor();
void reset() override;
protected:
CurveViewCursor m_cursor;
Interval m_interval;
private:
int m_indexFunctionSelectedByCursor;
uint32_t m_modelVersion;
uint32_t m_rangeVersion;
Poincare::Preferences::AngleUnit m_angleUnitVersion;
};
virtual ~StorageFunctionApp() = default;
virtual StorageFunctionStore * functionStore() = 0;
virtual InputViewController * inputViewController() = 0;
void willBecomeInactive() override;
protected:
StorageFunctionApp(Container * container, Snapshot * snapshot, ViewController * rootViewController);
};
}
#endif