mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 16:57:31 +01:00
very large values, casting in float gives approximate values that trigger bugs Change-Id: I5aac31ad07f267f1b96ee3406b041e527cf247ba
59 lines
2.0 KiB
C++
59 lines
2.0 KiB
C++
#ifndef STATISTICS_HISTOGRAM_CONTROLLER_H
|
|
#define STATISTICS_HISTOGRAM_CONTROLLER_H
|
|
|
|
#include <escher.h>
|
|
#include "store.h"
|
|
#include "histogram_view.h"
|
|
#include "histogram_banner_view.h"
|
|
#include "histogram_parameter_controller.h"
|
|
#include "../shared/curve_view.h"
|
|
|
|
namespace Statistics {
|
|
|
|
class HistogramController : public ViewController, public ButtonRowDelegate, public AlternateEmptyViewDelegate {
|
|
|
|
public:
|
|
HistogramController(Responder * parentResponder, ButtonRowController * header, Store * store, uint32_t * m_storeVersion, uint32_t * m_barVersion, uint32_t * m_rangeVersion, int * m_selectedBarIndex);
|
|
const char * title() override;
|
|
View * view() override;
|
|
StackViewController * stackController();
|
|
HistogramParameterController * histogramParameterController();
|
|
bool handleEvent(Ion::Events::Event event) override;
|
|
void didBecomeFirstResponder() override;
|
|
|
|
int numberOfButtons(ButtonRowController::Position) const override;
|
|
Button * buttonAtIndex(int index, ButtonRowController::Position position) const override;
|
|
|
|
bool isEmpty() const override;
|
|
I18n::Message emptyMessage() override;
|
|
Responder * defaultController() override;
|
|
void viewWillAppear() override;
|
|
void willExitResponderChain(Responder * nextFirstResponder) override;
|
|
private:
|
|
constexpr static int k_maxNumberOfBarsPerWindow = 100;
|
|
constexpr static int k_maxIntervalLegendLength = 33;
|
|
constexpr static int k_maxLegendLength = 13;
|
|
constexpr static int k_maxNumberOfCharacters = 30;
|
|
Responder * tabController() const;
|
|
void reloadBannerView();
|
|
void initRangeParameters();
|
|
void initBarParameters();
|
|
void initBarSelection();
|
|
// return true if the window has scrolled
|
|
bool moveSelection(int deltaIndex);
|
|
HistogramBannerView m_bannerView;
|
|
HistogramView m_view;
|
|
Button m_settingButton;
|
|
Store * m_store;
|
|
uint32_t * m_storeVersion;
|
|
uint32_t * m_barVersion;
|
|
uint32_t * m_rangeVersion;
|
|
int * m_selectedBarIndex;
|
|
HistogramParameterController m_histogramParameterController;
|
|
};
|
|
|
|
}
|
|
|
|
|
|
#endif
|