mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 16:57:31 +01:00
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!
42 lines
1.3 KiB
C++
42 lines
1.3 KiB
C++
#ifndef STATISTICS_HISTOGRAM_VIEW_H
|
|
#define STATISTICS_HISTOGRAM_VIEW_H
|
|
|
|
#include <escher.h>
|
|
#include <poincare/print_float.h>
|
|
#include "store.h"
|
|
#include "../constant.h"
|
|
#include "../shared/curve_view.h"
|
|
|
|
namespace Statistics {
|
|
|
|
class HistogramController;
|
|
|
|
class HistogramView : public Shared::CurveView {
|
|
public:
|
|
HistogramView(HistogramController * controller, Store * store, int series, Shared::BannerView * bannerView, KDColor selectedHistogramColor = Palette::Select, KDColor notSelectedHistogramColor = Palette::GreyMiddle, KDColor selectedBarColor = Palette::YellowDark);
|
|
int series() const { return m_series; }
|
|
void reload() override;
|
|
void reloadSelectedBar();
|
|
void drawRect(KDContext * ctx, KDRect rect) const override;
|
|
void setHighlight(float start, float end);
|
|
void setDisplayLabels(bool display) { m_displayLabels = display; }
|
|
private:
|
|
char * label(Axis axis, int index) const override;
|
|
HistogramController * m_controller;
|
|
Store * m_store;
|
|
char m_labels[k_maxNumberOfXLabels][k_labelBufferMaxSize];
|
|
static float EvaluateHistogramAtAbscissa(float abscissa, void * model, void * context);
|
|
float m_highlightedBarStart;
|
|
float m_highlightedBarEnd;
|
|
int m_series;
|
|
KDColor m_selectedHistogramColor;
|
|
KDColor m_notSelectedHistogramColor;
|
|
KDColor m_selectedBarColor;
|
|
bool m_displayLabels;
|
|
};
|
|
|
|
}
|
|
|
|
|
|
#endif
|