[escher] Rule of 5 in view

Change-Id: Iba04e9046845b544e184530562e34f831fce96f6
This commit is contained in:
Émilie Feral
2017-05-24 11:53:07 +02:00
parent 9181e7cf5d
commit d7091397e5
47 changed files with 155 additions and 111 deletions

View File

@@ -14,17 +14,17 @@ using namespace Shared;
AppsContainer::AppsContainer() :
Container(),
m_window(AppsWindow()),
m_emptyBatteryWindow(EmptyBatteryWindow()),
m_window(),
m_emptyBatteryWindow(),
m_globalContext(),
m_variableBoxController(&m_globalContext),
m_examPopUpController(ExamPopUpController()),
m_examPopUpController(),
m_updateController(),
m_ledTimer(LedTimer()),
m_batteryTimer(BatteryTimer(this)),
m_USBTimer(USBTimer(this)),
m_suspendTimer(SuspendTimer(this)),
m_backlightDimmingTimer(BacklightDimmingTimer()),
m_backlightDimmingTimer(),
m_hardwareTestSnapshot(),
m_onBoardingSnapshot(),
m_homeSnapshot(),

View File

@@ -5,7 +5,7 @@ extern "C" {
AppsWindow::AppsWindow() :
Window(),
m_titleBarView(TitleBarView()),
m_titleBarView(),
m_hideTitleBarView(false)
{
}

View File

@@ -6,7 +6,7 @@
ExamPopUpController::ExamPopUpController() :
ViewController(nullptr),
m_contentView(ContentView(this)),
m_contentView(this),
m_isActivatingExamMode(false)
{
}
@@ -43,12 +43,12 @@ bool ExamPopUpController::isActivatingExamMode() {
}
ExamPopUpController::ContentView::ContentView(Responder * parentResponder) :
m_cancelButton(Button(parentResponder, I18n::Message::Cancel, Invocation([](void * context, void * sender) {
m_cancelButton(parentResponder, I18n::Message::Cancel, Invocation([](void * context, void * sender) {
ExamPopUpController * controller = (ExamPopUpController *)context;
Container * container = (Container *)controller->app()->container();
container->activeApp()->dismissModalViewController();
}, parentResponder), KDText::FontSize::Small)),
m_okButton(Button(parentResponder, I18n::Message::Ok, Invocation([](void * context, void * sender) {
}, parentResponder), KDText::FontSize::Small),
m_okButton(parentResponder, I18n::Message::Ok, Invocation([](void * context, void * sender) {
ExamPopUpController * controller = (ExamPopUpController *)context;
GlobalPreferences::ExamMode nextExamMode = controller->isActivatingExamMode() ? GlobalPreferences::ExamMode::Activate : GlobalPreferences::ExamMode::Desactivate;
GlobalPreferences::sharedGlobalPreferences()->setExamMode(nextExamMode);
@@ -60,11 +60,11 @@ ExamPopUpController::ContentView::ContentView(Responder * parentResponder) :
}
container->refreshPreferences();
container->activeApp()->dismissModalViewController();
}, parentResponder), KDText::FontSize::Small)),
m_warningTextView(MessageTextView(KDText::FontSize::Small, I18n::Message::Warning, 0.5, 0.5, KDColorWhite, KDColorBlack)),
m_messageTextView1(MessageTextView(KDText::FontSize::Small, I18n::Message::Default, 0.5, 0.5, KDColorWhite, KDColorBlack)),
m_messageTextView2(MessageTextView(KDText::FontSize::Small, I18n::Message::Default, 0.5, 0.5, KDColorWhite, KDColorBlack)),
m_messageTextView3(MessageTextView(KDText::FontSize::Small, I18n::Message::Default, 0.5, 0.5, KDColorWhite, KDColorBlack))
}, parentResponder), KDText::FontSize::Small),
m_warningTextView(KDText::FontSize::Small, I18n::Message::Warning, 0.5, 0.5, KDColorWhite, KDColorBlack),
m_messageTextView1(KDText::FontSize::Small, I18n::Message::Default, 0.5, 0.5, KDColorWhite, KDColorBlack),
m_messageTextView2(KDText::FontSize::Small, I18n::Message::Default, 0.5, 0.5, KDColorWhite, KDColorBlack),
m_messageTextView3(KDText::FontSize::Small, I18n::Message::Default, 0.5, 0.5, KDColorWhite, KDColorBlack)
{
}

View File

@@ -41,7 +41,7 @@ void Controller::ContentView::layoutSubviews() {
Controller::Controller(Responder * parentResponder, ::AppsContainer * container, SelectableTableViewDataSource * selectionDataSource) :
ViewController(parentResponder),
m_container(container),
m_view(ContentView(this, selectionDataSource)),
m_view(this, selectionDataSource),
m_selectionDataSource(selectionDataSource)
{
}

View File

@@ -134,7 +134,7 @@ void MathToolbox::ListController::setFirstSelectedRow(int firstSelectedRow) {
MathToolbox::MathToolbox() :
Toolbox(nullptr, &m_listController),
m_selectableTableView(SelectableTableView(&m_listController, this, 0, 1, 0, 0, 0, 0, this, nullptr, false)),
m_selectableTableView(&m_listController, this, 0, 1, 0, 0, 0, 0, this, nullptr, false),
m_listController(this, &m_selectableTableView),
m_nodeModel(nullptr)
{

View File

@@ -8,9 +8,11 @@ LanguageController::LanguageController(Responder * parentResponder, LogoControll
ViewController(parentResponder),
m_logoController(logoController),
m_updateController(updateController),
m_cells{MessageTableCell(I18n::Message::Default, KDText::FontSize::Large), MessageTableCell(I18n::Message::Default, KDText::FontSize::Large), MessageTableCell(I18n::Message::Default, KDText::FontSize::Large)},
m_selectableTableView(SelectableTableView(this, this, 0, 1, (Ion::Display::Height - I18n::NumberOfLanguages*Metric::ParameterCellHeight)/2, Metric::CommonRightMargin, 0, Metric::CommonLeftMargin, this))
m_selectableTableView(this, this, 0, 1, (Ion::Display::Height - I18n::NumberOfLanguages*Metric::ParameterCellHeight)/2, Metric::CommonRightMargin, 0, Metric::CommonLeftMargin, this)
{
for (int i = 0; i < I18n::NumberOfLanguages; i++) {
m_cells[i].setMessageFontSize(KDText::FontSize::Large);
}
}
View * LanguageController::view() {

View File

@@ -25,8 +25,8 @@ public:
private:
LogoController * m_logoController;
UpdateController * m_updateController;
MessageTableCell m_cells[I18n::NumberOfLanguages];
SelectableTableView m_selectableTableView;
MessageTableCell m_cells[I18n::NumberOfLanguages];
};
}

View File

@@ -25,12 +25,12 @@ bool UpdateController::handleEvent(Ion::Events::Event event) {
}
UpdateController::ContentView::ContentView() :
m_titleTextView(MessageTextView(KDText::FontSize::Large, I18n::Message::UpdateAvailable, 0.5f, 0.5f)),
m_messageTextView1(MessageTextView(KDText::FontSize::Small, I18n::Message::UpdateMessage1, 0.5f, 0.5f)),
m_messageTextView2(MessageTextView(KDText::FontSize::Small, I18n::Message::UpdateMessage2, 0.5f, 0.5f)),
m_messageTextView3(MessageTextView(KDText::FontSize::Small, I18n::Message::UpdateMessage3, 0.5f, 0.5f)),
m_messageTextView4(MessageTextView(KDText::FontSize::Small, I18n::Message::UpdateMessage4, 0.5f, 0.5f, Palette::YellowDark)),
m_skipView(MessageTextView(KDText::FontSize::Small, I18n::Message::Skip, 1.0f, 0.5)),
m_titleTextView(KDText::FontSize::Large, I18n::Message::UpdateAvailable, 0.5f, 0.5f),
m_messageTextView1(KDText::FontSize::Small, I18n::Message::UpdateMessage1, 0.5f, 0.5f),
m_messageTextView2(KDText::FontSize::Small, I18n::Message::UpdateMessage2, 0.5f, 0.5f),
m_messageTextView3(KDText::FontSize::Small, I18n::Message::UpdateMessage3, 0.5f, 0.5f),
m_messageTextView4(KDText::FontSize::Small, I18n::Message::UpdateMessage4, 0.5f, 0.5f, Palette::YellowDark),
m_skipView(KDText::FontSize::Small, I18n::Message::Skip, 1.0f, 0.5),
m_okView()
{
}

View File

@@ -13,14 +13,17 @@ using namespace Shared;
namespace Probability {
CalculationController::ContentView::ContentView(Responder * parentResponder, CalculationController * calculationController, Calculation * calculation, Law * law) :
m_titleView(MessageTextView(KDText::FontSize::Small, I18n::Message::ComputeProbability, 0.5f, 0.5f, Palette::GreyDark, Palette::WallScreen)),
m_lawCurveView(LawCurveView(law, calculation)),
m_imageTableView(ImageTableView(parentResponder, calculation, calculationController)),
m_calculationCell{EditableTextCell(parentResponder, calculationController, m_draftTextBuffer),
EditableTextCell(parentResponder, calculationController, m_draftTextBuffer),
EditableTextCell(parentResponder, calculationController, m_draftTextBuffer)},
m_titleView(KDText::FontSize::Small, I18n::Message::ComputeProbability, 0.5f, 0.5f, Palette::GreyDark, Palette::WallScreen),
m_lawCurveView(law, calculation),
m_imageTableView(parentResponder, calculation, calculationController),
m_draftTextBuffer{},
m_calculation(calculation)
{
for (int i = 0; i < k_maxNumberOfEditableFields; i++) {
m_calculationCell[i].setParentResponder(parentResponder);
m_calculationCell[i].setTextFieldDelegate(calculationController);
m_calculationCell[i].setTextFieldDraftTextBuffer(m_draftTextBuffer);
}
}
int CalculationController::ContentView::numberOfSubviews() const {
@@ -127,7 +130,7 @@ EditableTextCell * CalculationController::ContentView::calculationCellAtIndex(in
CalculationController::CalculationController(Responder * parentResponder, Law * law, Calculation * calculation) :
ViewController(parentResponder),
m_calculation(calculation),
m_contentView(ContentView(this, this, m_calculation, law)),
m_contentView(this, this, m_calculation, law),
m_law(law),
m_highlightedSubviewIndex(1)
{

View File

@@ -23,16 +23,17 @@ const SettingsNode model = SettingsNode(I18n::Message::SettingsApp, menu, 7);
MainController::MainController(Responder * parentResponder) :
ViewController(parentResponder),
m_cells{MessageTableCellWithChevronAndMessage(KDText::FontSize::Large, KDText::FontSize::Small), MessageTableCellWithChevronAndMessage(KDText::FontSize::Large, KDText::FontSize::Small),
MessageTableCellWithChevronAndMessage(KDText::FontSize::Large, KDText::FontSize::Small), MessageTableCellWithChevronAndMessage(KDText::FontSize::Large, KDText::FontSize::Small), MessageTableCellWithChevronAndMessage(KDText::FontSize::Large, KDText::FontSize::Small)},
m_complexFormatCell(MessageTableCellWithChevronAndExpression(I18n::Message::Default, KDText::FontSize::Large)),
m_complexFormatCell(I18n::Message::Default, KDText::FontSize::Large),
m_updateCell(I18n::Message::Default, KDText::FontSize::Large),
m_complexFormatLayout(nullptr),
m_selectableTableView(SelectableTableView(this, this, 0, 1, Metric::CommonTopMargin, Metric::CommonRightMargin,
Metric::CommonBottomMargin, Metric::CommonLeftMargin, this)),
m_selectableTableView(this, this, 0, 1, Metric::CommonTopMargin, Metric::CommonRightMargin,
Metric::CommonBottomMargin, Metric::CommonLeftMargin, this),
m_nodeModel((Node *)&model),
m_subController(this)
{
for (int i = 0; i < k_totalNumberOfCell-1; i++) {
m_cells[i].setMessageFontSize(KDText::FontSize::Large);
}
}
MainController::~MainController() {

View File

@@ -11,12 +11,15 @@ namespace Settings {
SubController::SubController(Responder * parentResponder) :
ViewController(parentResponder),
m_cells{MessageTableCellWithBuffer(I18n::Message::Default, KDText::FontSize::Large, KDText::FontSize::Small, Palette::GreyDark), MessageTableCellWithBuffer(I18n::Message::Default, KDText::FontSize::Large, KDText::FontSize::Small, Palette::GreyDark),
MessageTableCellWithBuffer(I18n::Message::Default, KDText::FontSize::Large, KDText::FontSize::Small, Palette::GreyDark)},
m_selectableTableView(SelectableTableView(this, this, 0, 1, Metric::CommonTopMargin, Metric::CommonRightMargin,
Metric::CommonBottomMargin, Metric::CommonLeftMargin, this)),
m_selectableTableView(this, this, 0, 1, Metric::CommonTopMargin, Metric::CommonRightMargin,
Metric::CommonBottomMargin, Metric::CommonLeftMargin, this),
m_nodeModel(nullptr)
{
for (int i = 0; i < k_totalNumberOfCell; i++) {
m_cells[i].setMessageFontSize(KDText::FontSize::Large);
m_cells[i].setAccessoryFontSize(KDText::FontSize::Small);
m_cells[i].setAccessoryTextColor(Palette::GreyDark);
}
const char text[6] = {'a','+', Ion::Charset::IComplex, 'b', ' ', 0};
m_complexFormatLayout[0] = new StringLayout(text, 6);
const char base[3] = {'r', Ion::Charset::Exponential, 0};

View File

@@ -5,9 +5,9 @@ namespace Shared {
FunctionCurveParameterController::FunctionCurveParameterController(InteractiveCurveViewRange * graphRange, CurveViewCursor * cursor) :
ViewController(nullptr),
m_goToCell(MessageTableCellWithChevron(I18n::Message::Goto)),
m_selectableTableView(SelectableTableView(this, this, 0, 1, Metric::CommonTopMargin, Metric::CommonRightMargin,
Metric::CommonBottomMargin, Metric::CommonLeftMargin, this)),
m_goToCell(I18n::Message::Goto),
m_selectableTableView(this, this, 0, 1, Metric::CommonTopMargin, Metric::CommonRightMargin,
Metric::CommonBottomMargin, Metric::CommonLeftMargin, this),
m_function(nullptr)
{
}

View File

@@ -7,7 +7,7 @@ namespace Shared {
FunctionExpressionCell::FunctionExpressionCell() :
EvenOddCell(),
m_expressionView(ExpressionView())
m_expressionView()
{
}

View File

@@ -11,7 +11,7 @@ namespace Shared {
FunctionGraphController::FunctionGraphController(Responder * parentResponder, ButtonRowController * header, InteractiveCurveViewRange * interactiveRange, CurveView * curveView, CurveViewCursor * cursor, uint32_t * modelVersion, uint32_t * rangeVersion) :
InteractiveCurveViewController(parentResponder, header, interactiveRange, curveView, cursor, modelVersion, rangeVersion),
m_indexFunctionSelectedByCursor(0),
m_initialisationParameterController(InitialisationParameterController(this, interactiveRange))
m_initialisationParameterController(this, interactiveRange)
{
}

View File

@@ -6,8 +6,8 @@ namespace Shared {
InitialisationParameterController::InitialisationParameterController(Responder * parentResponder, InteractiveCurveViewRange * graphRange) :
ViewController(parentResponder),
m_selectableTableView(SelectableTableView(this, this, 0, 1, Metric::CommonTopMargin, Metric::CommonRightMargin,
Metric::CommonBottomMargin, Metric::CommonLeftMargin, this)),
m_selectableTableView(this, this, 0, 1, Metric::CommonTopMargin, Metric::CommonRightMargin,
Metric::CommonBottomMargin, Metric::CommonLeftMargin, this),
m_graphRange(graphRange)
{
}

View File

@@ -11,7 +11,7 @@ InteractiveCurveViewController::InteractiveCurveViewController(Responder * paren
ViewController(parentResponder),
ButtonRowDelegate(header, nullptr),
m_cursor(cursor),
m_cursorView(CursorView()),
m_cursorView(),
m_modelVersion(modelVersion),
m_rangeVersion(rangeVersion),
m_rangeParameterController(this, interactiveRange),

View File

@@ -5,14 +5,14 @@ namespace Shared {
ListParameterController::ListParameterController(Responder * parentResponder, FunctionStore * functionStore, I18n::Message functionColorMessage, I18n::Message deleteFunctionMessage) :
ViewController(parentResponder),
m_selectableTableView(SelectableTableView(this, this, 0, 1, Metric::CommonTopMargin, Metric::CommonRightMargin,
Metric::CommonBottomMargin, Metric::CommonLeftMargin, this)),
m_selectableTableView(this, this, 0, 1, Metric::CommonTopMargin, Metric::CommonRightMargin,
Metric::CommonBottomMargin, Metric::CommonLeftMargin, this),
m_functionStore(functionStore),
#if FUNCTION_COLOR_CHOICE
m_colorCell(MessageTableCellWithChevron(functionColorMessage)),
m_colorCell(functionColorMessage),
#endif
m_enableCell(MessageTableCellWithSwitch(I18n::Message::ActivateDesactivate)),
m_deleteCell(MessageTableCell(deleteFunctionMessage))
m_enableCell(I18n::Message::ActivateDesactivate),
m_deleteCell(deleteFunctionMessage)
{
}

View File

@@ -5,7 +5,7 @@ namespace Shared {
NewFunctionCell::NewFunctionCell(I18n::Message text) :
EvenOddCell(),
m_messageTextView(MessageTextView(KDText::FontSize::Large, text, 0.5f, 0.5f))
m_messageTextView(KDText::FontSize::Large, text, 0.5f, 0.5f)
{
}

View File

@@ -5,13 +5,13 @@ namespace Shared {
StoreParameterController::StoreParameterController(Responder * parentResponder, FloatPairStore * store) :
ViewController(parentResponder),
m_deleteColumn(MessageTableCell(I18n::Message::ClearColumn)),
m_deleteColumn(I18n::Message::ClearColumn),
#if COPY_IMPORT_LIST
m_copyColumn(MessageTableCellWithChevron(I18n::Message::CopyColumnInList)),
m_importList(MessageTableCellWithChevron(I18n::Message::ImportList)),
m_copyColumn(I18n::Message::CopyColumnInList),
m_importList(I18n::Message::ImportList),
#endif
m_selectableTableView(SelectableTableView(this, this, 0, 1, Metric::CommonTopMargin, Metric::CommonRightMargin,
Metric::CommonBottomMargin, Metric::CommonLeftMargin, this)),
m_selectableTableView(this, this, 0, 1, Metric::CommonTopMargin, Metric::CommonRightMargin,
Metric::CommonBottomMargin, Metric::CommonLeftMargin, this),
m_store(store),
m_xColumnSelected(true)
{

View File

@@ -14,12 +14,12 @@ ValuesController::ValuesController(Responder * parentResponder, ButtonRowControl
m_interval(interval),
m_abscissaTitleCell(nullptr),
m_abscissaCells{},
m_abscissaParameterController(ValuesParameterController(this, intervalParameterController, parameterTitle)),
m_setIntervalButton(Button(this, I18n::Message::IntervalSet, Invocation([](void * context, void * sender) {
m_abscissaParameterController(this, intervalParameterController, parameterTitle),
m_setIntervalButton(this, I18n::Message::IntervalSet, Invocation([](void * context, void * sender) {
ValuesController * valuesController = (ValuesController *) context;
StackViewController * stack = ((StackViewController *)valuesController->stackController());
stack->push(valuesController->intervalParameterController());
}, this), KDText::FontSize::Small))
}, this), KDText::FontSize::Small)
{
}

View File

@@ -5,9 +5,9 @@ namespace Shared {
ValuesFunctionParameterController::ValuesFunctionParameterController(char symbol) :
ViewController(nullptr),
m_copyColumn(MessageTableCellWithChevron(I18n::Message::CopyColumnInList)),
m_selectableTableView(SelectableTableView(this, this, 0, 1, Metric::CommonTopMargin, Metric::CommonRightMargin,
Metric::CommonBottomMargin, Metric::CommonLeftMargin, this)),
m_copyColumn(I18n::Message::CopyColumnInList),
m_selectableTableView(this, this, 0, 1, Metric::CommonTopMargin, Metric::CommonRightMargin,
Metric::CommonBottomMargin, Metric::CommonLeftMargin, this),
m_function(nullptr),
m_symbol(symbol)
{

View File

@@ -6,13 +6,13 @@ namespace Shared {
ValuesParameterController::ValuesParameterController(Responder * parentResponder, IntervalParameterController * intervalParameterController, I18n::Message title) :
ViewController(parentResponder),
m_pageTitle(title),
m_deleteColumn(MessageTableCell(I18n::Message::Default)),
m_deleteColumn(I18n::Message::Default),
#if COPY_COLUMN
m_copyColumn(MessageTableCellWithChevron(I18n::Message::Default)),
m_copyColumn(I18n::Message::Default),
#endif
m_setInterval(MessageTableCellWithChevron(I18n::Message::Default)),
m_selectableTableView(SelectableTableView(this, this, 0, 1, Metric::CommonTopMargin, Metric::CommonRightMargin,
Metric::CommonBottomMargin, Metric::CommonLeftMargin, this)),
m_setInterval(I18n::Message::Default),
m_selectableTableView(this, this, 0, 1, Metric::CommonTopMargin, Metric::CommonRightMargin,
Metric::CommonBottomMargin, Metric::CommonLeftMargin, this),
m_intervalParameterController(intervalParameterController)
{
}

View File

@@ -6,7 +6,7 @@ namespace Shared {
ZoomParameterController::ZoomParameterController(Responder * parentResponder, InteractiveCurveViewRange * interactiveRange, CurveView * curveView) :
ViewController(parentResponder),
m_contentView(ContentView(curveView)),
m_contentView(curveView),
m_interactiveRange(interactiveRange)
{
}
@@ -92,14 +92,20 @@ CurveView * ZoomParameterController::ContentView::curveView() {
/* Legend View */
ZoomParameterController::ContentView::LegendView::LegendView() :
m_legends{MessageTextView(KDText::FontSize::Small, I18n::Message::Move, 1.0f, 0.5f, KDColorBlack, Palette::GreyBright),
MessageTextView(KDText::FontSize::Small, I18n::Message::ToZoom, 1.0f, 0.5f, KDColorBlack, Palette::GreyBright),
MessageTextView(KDText::FontSize::Small, I18n::Message::Or, 0.5f, 0.5f, KDColorBlack, Palette::GreyBright)},
m_legendPictograms{KeyView(KeyView::Type::Up), KeyView(KeyView::Type::Down),
KeyView(KeyView::Type::Left), KeyView(KeyView::Type::Right),
KeyView(KeyView::Type::Plus), KeyView(KeyView::Type::Minus)}
ZoomParameterController::ContentView::LegendView::LegendView()
{
I18n::Message messages[k_numberOfLegends] = {I18n::Message::Move, I18n::Message::ToZoom, I18n::Message::Or};
float horizontalAlignments[k_numberOfLegends] = {1.0f, 1.0f, 0.5f};
for (int i = 0; i < k_numberOfLegends; i++) {
m_legends[i].setFontSize(KDText::FontSize::Small);
m_legends[i].setMessage(messages[i]);
m_legends[i].setBackgroundColor(Palette::GreyBright);
m_legends[i].setAlignment(horizontalAlignments[i], 0.5f);
}
KeyView::Type tokenTypes[k_numberOfTokens] = {KeyView::Type::Up, KeyView::Type::Down, KeyView::Type::Left, KeyView::Type::Right, KeyView::Type::Plus, KeyView::Type::Minus};
for (int i = 0; i < k_numberOfTokens ; i++) {
m_legendPictograms[i].setType(tokenTypes[i]);
}
}
void ZoomParameterController::ContentView::LegendView::drawRect(KDContext * ctx, KDRect rect) const {

View File

@@ -10,8 +10,8 @@ namespace Statistics {
BoxController::BoxController(Responder * parentResponder, ButtonRowController * header, Store * store, BoxView::Quantile * selectedQuantile) :
ViewController(parentResponder),
ButtonRowDelegate(header, nullptr),
m_boxBannerView(BoxBannerView()),
m_view(BoxView(store, &m_boxBannerView, selectedQuantile)),
m_boxBannerView(),
m_view(store, &m_boxBannerView, selectedQuantile),
m_store(store)
{
}

View File

@@ -13,13 +13,13 @@ namespace Statistics {
HistogramController::HistogramController(Responder * parentResponder, ButtonRowController * header, Store * store, uint32_t * storeVersion, uint32_t * barVersion, uint32_t * rangeVersion, int * selectedBarIndex) :
ViewController(parentResponder),
ButtonRowDelegate(header, nullptr),
m_bannerView(HistogramBannerView()),
m_view(HistogramView(store, &m_bannerView)),
m_settingButton(Button(this, I18n::Message::HistogramSet, Invocation([](void * context, void * sender) {
m_bannerView(),
m_view(store, &m_bannerView),
m_settingButton(this, I18n::Message::HistogramSet, Invocation([](void * context, void * sender) {
HistogramController * histogramController = (HistogramController *) context;
StackViewController * stack = ((StackViewController *)histogramController->stackController());
stack->push(histogramController->histogramParameterController());
}, this))),
}, this)),
m_store(store),
m_storeVersion(storeVersion),
m_barVersion(barVersion),

View File

@@ -12,7 +12,7 @@ VariableBoxController::ContentViewController::ContentViewController(Responder *
m_firstSelectedRow(0),
m_previousSelectedRow(0),
m_currentPage(Page::RootMenu),
m_selectableTableView(SelectableTableView(this, this, 0, 1, 0, 0, 0, 0, this, nullptr, false))
m_selectableTableView(this, this, 0, 1, 0, 0, 0, 0, this, nullptr, false)
{
}
@@ -243,7 +243,7 @@ void VariableBoxController::ContentViewController::resetPage() {
VariableBoxController::VariableBoxController(Context * context) :
StackViewController(nullptr, &m_contentViewController, true, KDColorWhite, Palette::PurpleBright, Palette::PurpleDark),
m_contentViewController(ContentViewController(this, context))
m_contentViewController(this, context)
{
}

View File

@@ -5,8 +5,8 @@ using namespace Poincare;
VariableBoxLeafCell::VariableBoxLeafCell() :
HighlightCell(),
m_labelView(BufferTextView(KDText::FontSize::Small, 0, 0.5, KDColorBlack, KDColorWhite)),
m_subtitleView(BufferTextView(KDText::FontSize::Small, 0, 0.5, Palette::GreyDark, KDColorWhite)),
m_labelView(KDText::FontSize::Small, 0, 0.5, KDColorBlack, KDColorWhite),
m_subtitleView(KDText::FontSize::Small, 0, 0.5, Palette::GreyDark, KDColorWhite),
m_displayExpression(false)
{
}

View File

@@ -8,8 +8,10 @@
class EditableTextCell : public HighlightCell, public Responder {
public:
EditableTextCell(Responder * parentResponder, TextFieldDelegate * delegate, char * draftTextBuffer, KDText::FontSize size = KDText::FontSize::Large,
EditableTextCell(Responder * parentResponder = nullptr, TextFieldDelegate * delegate = nullptr, char * draftTextBuffer = nullptr, KDText::FontSize size = KDText::FontSize::Large,
float horizontalAlignment = 0.0f, float verticalAlignment = 0.5f, KDColor textColor = KDColorBlack, KDColor = KDColorWhite);
void setTextFieldDelegate(TextFieldDelegate * delegate);
void setTextFieldDraftTextBuffer(char * draftTextBuffer);
TextField * textField();
void setHighlighted(bool highlight) override;
const char * text() const;

View File

@@ -13,7 +13,8 @@ public:
Plus,
Minus
};
KeyView(Type type);
KeyView(Type type = Type::Up);
void setType(Type type);
void drawRect(KDContext * ctx, KDRect rect) const override;
KDSize minimalSizeForOptimalDisplay() const override;
constexpr static KDCoordinate k_keySize = 8;

View File

@@ -11,6 +11,8 @@ public:
TextField(Responder * parentResponder, char * textBuffer, char * draftTextBuffer, size_t textBufferSize,
TextFieldDelegate * delegate = nullptr, bool hasTwoBuffers = true, KDText::FontSize size = KDText::FontSize::Large, float horizontalAlignment = 0.0f,
float verticalAlignment = 0.5f, KDColor textColor = KDColorBlack, KDColor = KDColorWhite);
void setDelegate(TextFieldDelegate * delegate);
void setDraftTextBuffer(char * draftTextBuffer);
Toolbox * toolbox() override;
bool isEditing() const;
const char * text() const;
@@ -28,7 +30,6 @@ public:
* the maximum buffer capacity) and false is returned. */
bool insertTextAtLocation(const char * text, int location);
KDSize minimalSizeForOptimalDisplay() const override;
void setTextFieldDelegate(TextFieldDelegate * delegate);
bool handleEvent(Ion::Events::Event event) override;
bool textFieldShouldFinishEditing(Ion::Events::Event event);
constexpr static int maxBufferSize() {
@@ -39,6 +40,7 @@ protected:
public:
ContentView(char * textBuffer, char * draftTextBuffer, size_t textBufferSize, KDText::FontSize size, float horizontalAlignment = 0.0f,
float verticalAlignment = 0.5f, KDColor textColor = KDColorBlack, KDColor = KDColorWhite);
void setDraftTextBuffer(char * draftTextBuffer);
void drawRect(KDContext * ctx, KDRect rect) const override;
void reload();
bool isEditing() const;

View File

@@ -26,7 +26,10 @@ class View {
public:
View();
virtual ~View();
View(const View& other) = delete;
View(View&& other) = delete;
View& operator=(const View& other) = delete;
View& operator=(View&& other) = delete;
/* The drawRect method should be implemented by each View subclass. In a
* typical drawRect implementation, a subclass will make drawing calls to the
* Kandinsky library using the provided context. */

View File

@@ -45,7 +45,7 @@ AlternateEmptyViewDelegate * AlternateEmptyViewController::ContentView::alternat
AlternateEmptyViewController::AlternateEmptyViewController(Responder * parentResponder, ViewController * mainViewController, AlternateEmptyViewDelegate * delegate) :
ViewController(parentResponder),
m_contentView(ContentView(mainViewController, delegate))
m_contentView(mainViewController, delegate)
{
}

View File

@@ -179,7 +179,7 @@ ButtonRowDelegate * ButtonRowController::ContentView::buttonRowDelegate() const
ButtonRowController::ButtonRowController(Responder * parentResponder, ViewController * mainViewController, ButtonRowDelegate * delegate, Position position, Style style) :
ViewController(parentResponder),
m_contentView(ContentView(mainViewController, delegate, position, style))
m_contentView(mainViewController, delegate, position, style)
{
}
@@ -230,4 +230,4 @@ void ButtonRowController::viewWillAppear() {
void ButtonRowController::viewDidDisappear() {
m_contentView.mainViewController()->viewDidDisappear();
}
}

View File

@@ -11,6 +11,14 @@ EditableTextCell::EditableTextCell(Responder * parentResponder, TextFieldDelegat
{
}
void EditableTextCell::setTextFieldDelegate(TextFieldDelegate * delegate) {
m_textField.setDelegate(delegate);
}
void EditableTextCell::setTextFieldDraftTextBuffer(char * draftTextBuffer) {
m_textField.setDraftTextBuffer(draftTextBuffer);
}
TextField * EditableTextCell::textField() {
return &m_textField;
}

View File

@@ -3,7 +3,7 @@
EvenOddBufferTextCell::EvenOddBufferTextCell(KDText::FontSize size, float horizontalAlignment, float verticalAlignment) :
EvenOddCell(),
m_bufferTextView(BufferTextView(size, horizontalAlignment, verticalAlignment))
m_bufferTextView(size, horizontalAlignment, verticalAlignment)
{
}

View File

@@ -5,7 +5,7 @@ using namespace Poincare;
EvenOddExpressionCell::EvenOddExpressionCell(float horizontalAlignment, float verticalAlignment,
KDColor textColor, KDColor backgroundColor) :
EvenOddCell(),
m_expressionView(ExpressionView(horizontalAlignment, verticalAlignment, textColor, backgroundColor))
m_expressionView(horizontalAlignment, verticalAlignment, textColor, backgroundColor)
{
}

View File

@@ -4,7 +4,7 @@
ExpressionTableCell::ExpressionTableCell(Layout layout) :
TableCell(layout),
m_labelExpressionView(ExpressionView(0.0f, 0.5f, KDColorBlack, KDColorWhite))
m_labelExpressionView(0.0f, 0.5f, KDColorBlack, KDColorWhite)
{
}

View File

@@ -4,7 +4,7 @@
ExpressionTableCellWithPointer::ExpressionTableCellWithPointer(I18n::Message accessoryMessage, Layout layout) :
ExpressionTableCell(layout),
m_accessoryView(MessageTextView(KDText::FontSize::Small, accessoryMessage, 0.0f, 0.5f, Palette::GreyDark, KDColorWhite))
m_accessoryView(KDText::FontSize::Small, accessoryMessage, 0.0f, 0.5f, Palette::GreyDark, KDColorWhite)
{
if (layout == Layout::Horizontal) {
m_accessoryView.setAlignment(1.0f, 0.5f);

View File

@@ -60,7 +60,7 @@ TextField * InputViewController::TextFieldController::textField() {
InputViewController::InputViewController(Responder * parentResponder, ViewController * child, TextFieldDelegate * textFieldDelegate) :
ModalViewController(parentResponder, child),
m_textFieldController(TextFieldController(this, this)),
m_textFieldController(this, this),
m_successAction(Invocation(nullptr, nullptr)),
m_failureAction(Invocation(nullptr, nullptr)),
m_textFieldDelegate(textFieldDelegate)

View File

@@ -72,6 +72,11 @@ KeyView::KeyView(Type type) :
{
}
void KeyView::setType(Type type) {
m_type = type;
markRectAsDirty(bounds());
}
KDColor s_keyWorkingBuffer[KeyView::k_keySize*KeyView::k_keySize];
void KeyView::drawRect(KDContext * ctx, KDRect rect) const {

View File

@@ -4,7 +4,7 @@
MessageTableCell::MessageTableCell(I18n::Message label, KDText::FontSize size, Layout layout) :
TableCell(layout),
m_messageTextView(MessageTextView(size, label, 0, 0.5, KDColorBlack, KDColorWhite))
m_messageTextView(size, label, 0, 0.5, KDColorBlack, KDColorWhite)
{
}

View File

@@ -3,7 +3,7 @@
MessageTableCellWithBuffer::MessageTableCellWithBuffer(I18n::Message message, KDText::FontSize fontSize, KDText::FontSize accessoryFontSize, KDColor accessoryTextColor) :
MessageTableCell(message, fontSize),
m_accessoryView(BufferTextView(accessoryFontSize, 1.0f, 0.5f, accessoryTextColor))
m_accessoryView(accessoryFontSize, 1.0f, 0.5f, accessoryTextColor)
{
}

View File

@@ -5,7 +5,7 @@
MessageTableCellWithEditableText::MessageTableCellWithEditableText(Responder * parentResponder, TextFieldDelegate * textFieldDelegate, char * draftTextBuffer, I18n::Message message) :
Responder(parentResponder),
MessageTableCell(message),
m_textField(TextField(this, m_textBody, draftTextBuffer, TextField::maxBufferSize(), textFieldDelegate, true, KDText::FontSize::Large, 1.0f, 0.5f))
m_textField(this, m_textBody, draftTextBuffer, TextField::maxBufferSize(), textFieldDelegate, true, KDText::FontSize::Large, 1.0f, 0.5f)
{
}

View File

@@ -3,7 +3,7 @@
MessageTableCellWithMessage::MessageTableCellWithMessage(I18n::Message message, Layout layout) :
MessageTableCell(message, KDText::FontSize::Small, layout),
m_accessoryView(MessageTextView(KDText::FontSize::Small, (I18n::Message)0, 0.0f, 0.5f))
m_accessoryView(KDText::FontSize::Small, (I18n::Message)0, 0.0f, 0.5f)
{
if (layout != Layout::Vertical) {
m_accessoryView.setAlignment(1.0f, 0.5f);

View File

@@ -68,7 +68,7 @@ const char * StackViewController::ControllerView::className() const {
StackViewController::StackViewController(Responder * parentResponder, ViewController * rootViewController,
bool displayFirstStackHeader, KDColor textColor, KDColor backgroundColor, KDColor separatorColor) :
ViewController(parentResponder),
m_view(ControllerView(displayFirstStackHeader)),
m_view(displayFirstStackHeader),
m_numberOfChildren(0),
m_isVisible(false)
{

View File

@@ -21,6 +21,10 @@ TextField::ContentView::ContentView(char * textBuffer, char * draftTextBuffer, s
assert(m_textBufferSize <= k_maxBufferSize);
}
void TextField::ContentView::setDraftTextBuffer(char * draftTextBuffer) {
m_draftTextBuffer = draftTextBuffer;
}
void TextField::ContentView::drawRect(KDContext * ctx, KDRect rect) const {
KDColor bckCol = m_backgroundColor;
if (m_isEditing) {
@@ -209,6 +213,14 @@ TextField::TextField(Responder * parentResponder, char * textBuffer, char * draf
{
}
void TextField::setDelegate(TextFieldDelegate * delegate) {
m_delegate = delegate;
}
void TextField::setDraftTextBuffer(char * draftTextBuffer) {
m_contentView.setDraftTextBuffer(draftTextBuffer);
}
Toolbox * TextField::toolbox() {
if (m_delegate) {
return m_delegate->toolboxForTextField(this);
@@ -277,10 +289,6 @@ KDSize TextField::minimalSizeForOptimalDisplay() const {
return KDSize(0, m_contentView.textHeight());
}
void TextField::setTextFieldDelegate(TextFieldDelegate * delegate) {
m_delegate = delegate;
}
bool TextField::textFieldShouldFinishEditing(Ion::Events::Event event) {
return m_delegate->textFieldShouldFinishEditing(this, event);
}

View File

@@ -30,7 +30,7 @@ KDSize WarningController::ContentView::minimalSizeForOptimalDisplay() const {
WarningController::WarningController(Responder * parentResponder, I18n::Message warningMessage) :
ViewController(parentResponder),
m_contentView(ContentView()),
m_contentView(),
m_warningMessage(warningMessage)
{
}