Files
Upsilon/apps/probability/law_controller.h
Émilie Feral af4d6b6e81 [escher] Divide class selectable table view delegate in 2: selectable
table view data source & selectable table view delegate

Change-Id: I90fbd61e271db3754c13bd0069b95c2026de6814
2017-05-18 14:16:41 +02:00

54 lines
1.6 KiB
C++

#ifndef PROBABILITY_LAW_CONTROLLER_H
#define PROBABILITY_LAW_CONTROLLER_H
#include <escher.h>
#include "cell.h"
#include "law/law.h"
#include "parameters_controller.h"
namespace Probability {
class LawController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDataSource {
public:
LawController(Responder * parentResponder);
~LawController();
LawController(const LawController& other) = delete;
LawController(LawController&& other) = delete;
LawController& operator=(const LawController& other) = delete;
LawController& operator=(LawController&& other) = delete;
View * view() override;
bool handleEvent(Ion::Events::Event event) override;
void didBecomeFirstResponder() override;
int numberOfRows() override;
void willDisplayCellForIndex(HighlightCell * cell, int index) override;
KDCoordinate cellHeight() override;
HighlightCell * reusableCell(int index) override;
int reusableCellCount() override;
private:
class ContentView : public View {
public:
ContentView(SelectableTableView * selectableTableView);
constexpr static KDCoordinate k_titleMargin = 8;
private:
int numberOfSubviews() const override;
View * subviewAtIndex(int index) override;
void layoutSubviews() override;
MessageTextView m_titleView;;
SelectableTableView * m_selectableTableView;
};
void setLawAccordingToIndex(int index);
constexpr static int k_totalNumberOfModels = 5;
Cell m_cells[k_totalNumberOfModels];
SelectableTableView m_selectableTableView;
ContentView m_contentView;
I18n::Message * m_messages;
Law * m_law;
ParametersController m_parametersController;
};
}
#endif