Files
Upsilon/apps/probability/parameters_controller.h
Émilie Feral 2e16365100 [escher] Reorganize all cells'name and factorize their layouts
Change-Id: I69900ee98ff6a6868f96d70a0e335a589ef16c3f
2017-02-20 10:54:02 +01:00

61 lines
2.1 KiB
C++

#ifndef PROBABILITY_PARAMETERS_CONTROLLER_H
#define PROBABILITY_PARAMETERS_CONTROLLER_H
#include <escher.h>
#include "../shared/float_parameter_controller.h"
#include "law/law.h"
#include "calculation_controller.h"
namespace Probability {
class ParametersController : public Shared::FloatParameterController {
public:
ParametersController(Responder * parentResponder);
View * view() override;
const char * title() const override;
void setLaw(Law * law);
bool handleEvent(Ion::Events::Event event) override;
void didBecomeFirstResponder() override;
StackViewController * stackController();
CalculationController * calculationController();
int numberOfRows() override;
void willDisplayCellForIndex(HighlightCell * cell, int index) override;
HighlightCell * reusableCell(int index) override;
int reusableCellCount() override;
private:
float parameterAtIndex(int index) override;
void setParameterAtIndex(int parameterIndex, float f) override;
class ContentView : public View {
public:
ContentView(Responder * parentResponder, SelectableTableView * selectableTableView);
Button * button();
PointerTextView * parameterDefinitionAtIndex(int index);
void drawRect(KDContext * ctx, KDRect rect) const override;
void layoutSubviews() override;
void setNumberOfParameters(int numberOfParameters);
private:
constexpr static KDCoordinate k_buttonHeight = 40;
constexpr static KDCoordinate k_textMargin = 5;
constexpr static KDCoordinate k_titleMargin = 5;
int numberOfSubviews() const override;
View * subviewAtIndex(int index) override;
int m_numberOfParameters;
Button m_nextButton;
PointerTextView m_titleView;
PointerTextView m_firstParameterDefinition;
PointerTextView m_secondParameterDefinition;
SelectableTableView * m_selectableTableView;
};
constexpr static int k_maxNumberOfCells = 2;
char m_draftTextBuffer[PointerTableCellWithEditableText::k_bufferLength];
PointerTableCellWithEditableText m_menuListCell[k_maxNumberOfCells];
ContentView m_contentView;
Law * m_law;
bool m_buttonSelected;
CalculationController m_calculationController;
};
}
#endif