mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[apps] Split on_boarding/language_controller in two
This commit is contained in:
committed by
EmilieNumworks
parent
4e5b68b45d
commit
cb097abe95
@@ -5,35 +5,21 @@
|
||||
namespace OnBoarding {
|
||||
|
||||
LanguageController::LanguageController(Responder * parentResponder, LogoController * logoController, UpdateController * updateController) :
|
||||
ViewController(parentResponder),
|
||||
m_logoController(logoController),
|
||||
Shared::LanguageController(parentResponder),
|
||||
#if OS_WITH_SOFTWARE_UPDATE_PROMPT
|
||||
m_updateController(updateController),
|
||||
#endif
|
||||
m_selectableTableView(this, this, 0, 1, (Ion::Display::Height - I18n::NumberOfLanguages*Metric::ParameterCellHeight)/2, Metric::CommonRightMargin, 0, Metric::CommonLeftMargin, this)
|
||||
m_logoController(logoController)
|
||||
{
|
||||
for (int i = 0; i < I18n::NumberOfLanguages; i++) {
|
||||
m_cells[i].setMessageFontSize(KDText::FontSize::Large);
|
||||
}
|
||||
}
|
||||
|
||||
View * LanguageController::view() {
|
||||
return &m_selectableTableView;
|
||||
}
|
||||
|
||||
void LanguageController::reinitOnBoarding() {
|
||||
m_selectableTableView.deselectTable();
|
||||
selectCellAtLocation(0, 0);
|
||||
resetSelection();
|
||||
app()->displayModalViewController(m_logoController, 0.5f, 0.5f);
|
||||
}
|
||||
|
||||
void LanguageController::didBecomeFirstResponder() {
|
||||
app()->setFirstResponder(&m_selectableTableView);
|
||||
}
|
||||
|
||||
bool LanguageController::handleEvent(Ion::Events::Event event) {
|
||||
if (event == Ion::Events::OK || event == Ion::Events::EXE) {
|
||||
GlobalPreferences::sharedGlobalPreferences()->setLanguage((I18n::Language)(selectedRow()+1));
|
||||
if (Shared::LanguageController::handleEvent(event)) {
|
||||
#if OS_WITH_SOFTWARE_UPDATE_PROMPT
|
||||
app()->displayModalViewController(m_updateController, 0.5f, 0.5f);
|
||||
#else
|
||||
@@ -49,26 +35,4 @@ bool LanguageController::handleEvent(Ion::Events::Event event) {
|
||||
return false;
|
||||
}
|
||||
|
||||
int LanguageController::numberOfRows() {
|
||||
return I18n::NumberOfLanguages;
|
||||
}
|
||||
|
||||
KDCoordinate LanguageController::cellHeight() {
|
||||
return Metric::ParameterCellHeight;
|
||||
}
|
||||
|
||||
HighlightCell * LanguageController::reusableCell(int index) {
|
||||
return &m_cells[index];
|
||||
}
|
||||
|
||||
int LanguageController::reusableCellCount() {
|
||||
return I18n::NumberOfLanguages;
|
||||
}
|
||||
|
||||
void LanguageController::willDisplayCellForIndex(HighlightCell * cell, int index) {
|
||||
MessageTableCell * myCell = (MessageTableCell *) cell;
|
||||
I18n::Message languages[I18n::NumberOfLanguages] = {I18n::Message::English, I18n::Message::French, I18n::Message::Spanish, I18n::Message::German, I18n::Message::Portuguese};
|
||||
myCell->setMessage(languages[index]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,33 +2,22 @@
|
||||
#define ON_BOARDING_LANGUAGE_CONTROLLER_H
|
||||
|
||||
#include <escher.h>
|
||||
#include "../i18n.h"
|
||||
#include "../shared/language_controller.h"
|
||||
#include "logo_controller.h"
|
||||
#include "update_controller.h"
|
||||
|
||||
namespace OnBoarding {
|
||||
|
||||
class LanguageController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDataSource {
|
||||
class LanguageController : public Shared::LanguageController {
|
||||
public:
|
||||
LanguageController(Responder * parentResponder, LogoController * logoController, UpdateController * updateController);
|
||||
View * view() override;
|
||||
void reinitOnBoarding();
|
||||
void didBecomeFirstResponder() override;
|
||||
bool handleEvent(Ion::Events::Event event) override;
|
||||
|
||||
int numberOfRows() override;
|
||||
KDCoordinate cellHeight() override;
|
||||
HighlightCell * reusableCell(int index) override;
|
||||
int reusableCellCount() override;
|
||||
|
||||
void willDisplayCellForIndex(HighlightCell * cell, int index) override;
|
||||
private:
|
||||
LogoController * m_logoController;
|
||||
#if OS_WITH_SOFTWARE_UPDATE_PROMPT
|
||||
UpdateController * m_updateController;
|
||||
#endif
|
||||
SelectableTableView m_selectableTableView;
|
||||
MessageTableCell m_cells[I18n::NumberOfLanguages];
|
||||
LogoController * m_logoController;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ app_objs += $(addprefix apps/shared/,\
|
||||
interactive_curve_view_range_delegate.o\
|
||||
interval.o\
|
||||
interval_parameter_controller.o\
|
||||
language_controller.o\
|
||||
list_controller.o\
|
||||
list_parameter_controller.o\
|
||||
memoized_curve_view_range.o\
|
||||
|
||||
59
apps/shared/language_controller.cpp
Normal file
59
apps/shared/language_controller.cpp
Normal file
@@ -0,0 +1,59 @@
|
||||
#include "language_controller.h"
|
||||
#include "../global_preferences.h"
|
||||
#include "../apps_container.h"
|
||||
|
||||
namespace Shared {
|
||||
|
||||
LanguageController::LanguageController(Responder * parentResponder) :
|
||||
ViewController(parentResponder),
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
void LanguageController::resetSelection() {
|
||||
m_selectableTableView.deselectTable();
|
||||
selectCellAtLocation(0, 0);
|
||||
}
|
||||
|
||||
View * LanguageController::view() {
|
||||
return &m_selectableTableView;
|
||||
}
|
||||
|
||||
void LanguageController::didBecomeFirstResponder() {
|
||||
app()->setFirstResponder(&m_selectableTableView);
|
||||
}
|
||||
|
||||
bool LanguageController::handleEvent(Ion::Events::Event event) {
|
||||
if (event == Ion::Events::OK || event == Ion::Events::EXE) {
|
||||
GlobalPreferences::sharedGlobalPreferences()->setLanguage((I18n::Language)(selectedRow()+1));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
int LanguageController::numberOfRows() {
|
||||
return I18n::NumberOfLanguages;
|
||||
}
|
||||
|
||||
KDCoordinate LanguageController::cellHeight() {
|
||||
return Metric::ParameterCellHeight;
|
||||
}
|
||||
|
||||
HighlightCell * LanguageController::reusableCell(int index) {
|
||||
return &m_cells[index];
|
||||
}
|
||||
|
||||
int LanguageController::reusableCellCount() {
|
||||
return I18n::NumberOfLanguages;
|
||||
}
|
||||
|
||||
void LanguageController::willDisplayCellForIndex(HighlightCell * cell, int index) {
|
||||
MessageTableCell * myCell = (MessageTableCell *) cell;
|
||||
I18n::Message languages[I18n::NumberOfLanguages] = {I18n::Message::English, I18n::Message::French, I18n::Message::Spanish, I18n::Message::German, I18n::Message::Portuguese};
|
||||
myCell->setMessage(languages[index]);
|
||||
}
|
||||
|
||||
}
|
||||
31
apps/shared/language_controller.h
Normal file
31
apps/shared/language_controller.h
Normal file
@@ -0,0 +1,31 @@
|
||||
#ifndef SHARED_LANGUAGE_CONTROLLER_H
|
||||
#define SHARED_LANGUAGE_CONTROLLER_H
|
||||
|
||||
#include <escher.h>
|
||||
#include "../i18n.h"
|
||||
|
||||
namespace Shared {
|
||||
|
||||
class LanguageController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDataSource {
|
||||
public:
|
||||
LanguageController(Responder * parentResponder);
|
||||
void resetSelection();
|
||||
|
||||
View * view() override;
|
||||
void didBecomeFirstResponder() override;
|
||||
bool handleEvent(Ion::Events::Event event) override;
|
||||
|
||||
int numberOfRows() override;
|
||||
KDCoordinate cellHeight() override;
|
||||
HighlightCell * reusableCell(int index) override;
|
||||
int reusableCellCount() override;
|
||||
|
||||
void willDisplayCellForIndex(HighlightCell * cell, int index) override;
|
||||
private:
|
||||
SelectableTableView m_selectableTableView;
|
||||
MessageTableCell m_cells[I18n::NumberOfLanguages];
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user