Files
Upsilon/apps/shared/storage_function_graph_view.h
Léa Saviot 8c6ffa6d42 [apps] Fix graph X axis labels that read the same
Scenario: just zoom in in a graph
Fix:
- Do not truncate labels.
- Label size is computed depending on available size and number of
 labels.
- If labels cannot be displayed properly, just display the minimal
and maximal labels!
2019-01-10 11:42:02 +01:00

38 lines
1.2 KiB
C++

#ifndef SHARED_STORAGE_FUNCTION_GRAPH_VIEW_H
#define SHARED_STORAGE_FUNCTION_GRAPH_VIEW_H
#include <escher.h>
#include "curve_view.h"
#include "storage_function.h"
#include "../constant.h"
#include "interactive_curve_view_range.h"
namespace Shared {
class StorageFunctionGraphView : public CurveView {
public:
StorageFunctionGraphView(InteractiveCurveViewRange * graphRange, CurveViewCursor * cursor,
BannerView * bannerView, View * cursorView);
void drawRect(KDContext * ctx, KDRect rect) const override;
void setContext(Poincare::Context * context);
Poincare::Context * context() const;
void selectRecord(Ion::Storage::Record record);
void setAreaHighlight(float start, float end);
virtual void setAreaHighlightColor(bool highlightColor);
protected:
void reloadBetweenBounds(float start, float end);
Ion::Storage::Record m_selectedRecord;
float m_highlightedStart;
float m_highlightedEnd;
bool m_shouldColorHighlighted;
private:
char * label(Axis axis, int index) const override;
char m_xLabels[k_maxNumberOfXLabels][k_labelBufferMaxSize];
char m_yLabels[k_maxNumberOfYLabels][k_labelBufferMaxSize];
Poincare::Context * m_context;
};
}
#endif