mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[apps/settings/exam_mode] "How to deactivate" messages
This commit is contained in:
@@ -10,6 +10,9 @@ ExamMode = "Testmodus"
|
||||
ActivateExamMode = "Starten Testmodus"
|
||||
ExamModeActive = "Wieder starten Testmodus"
|
||||
ActivateDutchExamMode = "Activate Dutch exam mode"
|
||||
ToDeactivateExamMode1 = "Um den Testmodus auszuschalten,"
|
||||
ToDeactivateExamMode2 = "schließen Sie den Rechner an einen"
|
||||
ToDeactivateExamMode3 = "Computer oder eine Steckdose an."
|
||||
About = "Über"
|
||||
Degrees = "Grad "
|
||||
Gradians = "Gone "
|
||||
|
||||
@@ -10,6 +10,9 @@ ExamMode = "Exam mode"
|
||||
ActivateExamMode = "Activate exam mode"
|
||||
ExamModeActive = "Reactivate exam mode"
|
||||
ActivateDutchExamMode = "Activate Dutch exam mode"
|
||||
ToDeactivateExamMode1 = "To deactivate the exam mode,"
|
||||
ToDeactivateExamMode2 = "plug the calculator to a computer"
|
||||
ToDeactivateExamMode3 = "or to a power socket."
|
||||
About = "About"
|
||||
Degrees = "Degrees "
|
||||
Gradians = "Gradians "
|
||||
|
||||
@@ -10,6 +10,9 @@ ExamMode = "Modo examen"
|
||||
ActivateExamMode = "Activar el modo examen"
|
||||
ExamModeActive = "Reactivar el modo examen"
|
||||
ActivateDutchExamMode = "Activate Dutch exam mode"
|
||||
ToDeactivateExamMode1 = "Para desactivar el modo examen,"
|
||||
ToDeactivateExamMode2 = "conecte la calculadora a un ordenador"
|
||||
ToDeactivateExamMode3 = "o a un enchufe eléctrico."
|
||||
About = "Acerca"
|
||||
Degrees = "Grados "
|
||||
Gradians = "Gradianes "
|
||||
|
||||
@@ -10,6 +10,9 @@ ExamMode = "Mode examen"
|
||||
ActivateExamMode = "Activer le mode examen"
|
||||
ExamModeActive = "Réactiver le mode examen"
|
||||
ActivateDutchExamMode = "Activate Dutch exam mode"
|
||||
ToDeactivateExamMode1 = "Pour désactiver le mode examen,"
|
||||
ToDeactivateExamMode2 = "brancher la calculatrice à un"
|
||||
ToDeactivateExamMode3 = "ordinateur ou à une prise de courant."
|
||||
About = "À propos"
|
||||
Degrees = "Degrés "
|
||||
Gradians = "Grades "
|
||||
|
||||
@@ -10,6 +10,9 @@ ExamMode = "Modo de exame"
|
||||
ActivateExamMode = "Ativar o modo de exame"
|
||||
ExamModeActive = "Reativar o modo de exame"
|
||||
ActivateDutchExamMode = "Activate Dutch exam mode"
|
||||
ToDeactivateExamMode1 = "Para desativar o modo de exame,"
|
||||
ToDeactivateExamMode2 = "ligue a calculadora a um computador"
|
||||
ToDeactivateExamMode3 = "ou a uma tomada eléctrica."
|
||||
About = "Acerca"
|
||||
Degrees = "Graus "
|
||||
Gradians = "Grados "
|
||||
|
||||
@@ -10,8 +10,58 @@ using namespace Shared;
|
||||
|
||||
namespace Settings {
|
||||
|
||||
ExamModeController::ContentView::ContentView(SelectableTableView * selectableTableView) :
|
||||
m_selectableTableView(selectableTableView),
|
||||
m_deactivateLine1(KDFont::SmallFont, I18n::Message::ToDeactivateExamMode1, 0.5f, 0.5f, KDColorBlack, Palette::WallScreen),
|
||||
m_deactivateLine2(KDFont::SmallFont, I18n::Message::ToDeactivateExamMode2, 0.5f, 0.5f, KDColorBlack, Palette::WallScreen),
|
||||
m_deactivateLine3(KDFont::SmallFont, I18n::Message::ToDeactivateExamMode3, 0.5f, 0.5f, KDColorBlack, Palette::WallScreen)
|
||||
{
|
||||
}
|
||||
|
||||
void ExamModeController::ContentView::drawRect(KDContext * ctx, KDRect rect) const {
|
||||
ctx->fillRect(bounds(), Palette::WallScreen);
|
||||
}
|
||||
|
||||
View * ExamModeController::ContentView::subviewAtIndex(int index) {
|
||||
assert(index >= 0 && index < 4);
|
||||
if (index == 0) {
|
||||
return m_selectableTableView;
|
||||
}
|
||||
assert(shouldDisplayDeactivateMessages());
|
||||
if (index == 1) {
|
||||
return &m_deactivateLine1;
|
||||
}
|
||||
if (index == 2) {
|
||||
return &m_deactivateLine2;
|
||||
}
|
||||
return &m_deactivateLine3;
|
||||
}
|
||||
|
||||
void ExamModeController::ContentView::layoutSubviews(bool force) {
|
||||
// Layout the table view
|
||||
KDCoordinate tableHeight = m_selectableTableView->minimalSizeForOptimalDisplay().height();
|
||||
m_selectableTableView->setFrame(KDRect(0, 0, bounds().width(), tableHeight), force);
|
||||
|
||||
if (!shouldDisplayDeactivateMessages()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Layout the text
|
||||
KDCoordinate textHeight = KDFont::SmallFont->glyphSize().height();
|
||||
KDCoordinate defOrigin = tableHeight + (bounds().height() - tableHeight - 3*textHeight - Metric::CommonTopMargin)/2;
|
||||
|
||||
m_deactivateLine1.setFrame(KDRect(0, defOrigin, bounds().width(), textHeight), force);
|
||||
m_deactivateLine2.setFrame(KDRect(0, defOrigin + textHeight, bounds().width(), textHeight), force);
|
||||
m_deactivateLine3.setFrame(KDRect(0, defOrigin + 2 * textHeight, bounds().width(), textHeight), force);
|
||||
}
|
||||
|
||||
bool ExamModeController::ContentView::shouldDisplayDeactivateMessages() const {
|
||||
return GlobalPreferences::sharedGlobalPreferences()->isInExamMode();
|
||||
}
|
||||
|
||||
ExamModeController::ExamModeController(Responder * parentResponder) :
|
||||
GenericSubController(parentResponder),
|
||||
m_contentView(&m_selectableTableView),
|
||||
m_cell{MessageTableCell(I18n::Message::ExamModeActive, KDFont::LargeFont), MessageTableCell(I18n::Message::ActivateDutchExamMode, KDFont::LargeFont)}
|
||||
{
|
||||
}
|
||||
@@ -41,6 +91,11 @@ bool ExamModeController::handleEvent(Ion::Events::Event event) {
|
||||
return GenericSubController::handleEvent(event);
|
||||
}
|
||||
|
||||
void ExamModeController::didEnterResponderChain(Responder * previousFirstResponder) {
|
||||
GenericSubController::didEnterResponderChain(previousFirstResponder);
|
||||
m_contentView.layoutSubviews(true);
|
||||
}
|
||||
|
||||
int ExamModeController::numberOfRows() const {
|
||||
if (GlobalPreferences::sharedGlobalPreferences()->language() != I18n::Language::EN || GlobalPreferences::sharedGlobalPreferences()->isInExamMode()) {
|
||||
return 1;
|
||||
|
||||
@@ -8,14 +8,31 @@ namespace Settings {
|
||||
class ExamModeController : public GenericSubController {
|
||||
public:
|
||||
ExamModeController(Responder * parentResponder);
|
||||
View * view() override { return &m_contentView; }
|
||||
bool handleEvent(Ion::Events::Event event) override;
|
||||
void didEnterResponderChain(Responder * previousFirstResponder) override;
|
||||
int numberOfRows() const override;
|
||||
HighlightCell * reusableCell(int index, int type) override;
|
||||
int reusableCellCount(int type) override;
|
||||
void willDisplayCellForIndex(HighlightCell * cell, int index) override;
|
||||
private:
|
||||
class ContentView : public View {
|
||||
public:
|
||||
ContentView(SelectableTableView * selectableTableView);
|
||||
void drawRect(KDContext * ctx, KDRect rect) const override;
|
||||
void layoutSubviews(bool force = false) override;
|
||||
private:
|
||||
bool shouldDisplayDeactivateMessages() const;
|
||||
int numberOfSubviews() const override { return 1 + (shouldDisplayDeactivateMessages() ? 3 : 0); }
|
||||
View * subviewAtIndex(int index) override;
|
||||
SelectableTableView * m_selectableTableView;
|
||||
MessageTextView m_deactivateLine1;
|
||||
MessageTextView m_deactivateLine2;
|
||||
MessageTextView m_deactivateLine3;
|
||||
};
|
||||
int initialSelectedRow() const override;
|
||||
static constexpr int k_maxNumberOfCells = 2;
|
||||
ContentView m_contentView;
|
||||
MessageTableCell m_cell[k_maxNumberOfCells];
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user