From ab86fa84deb73e574ccb426203b795d7b28e7246 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9a=20Saviot?= Date: Wed, 7 Aug 2019 17:12:47 +0200 Subject: [PATCH] [apps/settings] Engineering notation selection --- apps/settings/base.de.i18n | 1 + apps/settings/base.en.i18n | 1 + apps/settings/base.es.i18n | 1 + apps/settings/base.fr.i18n | 1 + apps/settings/base.pt.i18n | 1 + apps/settings/main_controller_prompt_beta.cpp | 4 ++-- apps/settings/main_controller_prompt_none.cpp | 4 ++-- apps/settings/main_controller_prompt_update.cpp | 4 ++-- apps/settings/sub_menu/preferences_controller.cpp | 9 +++++++-- poincare/include/poincare/preferences.h | 1 + 10 files changed, 19 insertions(+), 8 deletions(-) diff --git a/apps/settings/base.de.i18n b/apps/settings/base.de.i18n index 3ed41780d..08a44d272 100644 --- a/apps/settings/base.de.i18n +++ b/apps/settings/base.de.i18n @@ -13,6 +13,7 @@ About = "Über" Degres = "Grad " Radian = "Bogenmaß " Decimal = "Dezimal " +Engineering = "Engineering " Scientific = "Wissenschaftlich " SignificantFigures = "Signifikante Stellen " Real = "Reel " diff --git a/apps/settings/base.en.i18n b/apps/settings/base.en.i18n index 3b706c0e7..d5ddcdbad 100644 --- a/apps/settings/base.en.i18n +++ b/apps/settings/base.en.i18n @@ -14,6 +14,7 @@ Degres = "Degrees " Radian = "Radians " Decimal = "Decimal " Scientific = "Scientific " +Engineering = "Engineering " SignificantFigures = "Significant figures " Real = "Real " Cartesian = "Cartesian " diff --git a/apps/settings/base.es.i18n b/apps/settings/base.es.i18n index 7c14e1e10..9d052e86f 100644 --- a/apps/settings/base.es.i18n +++ b/apps/settings/base.es.i18n @@ -12,6 +12,7 @@ ExamModeActive = "Modo examen: activo" About = "Acerca" Degres = "Grados " Radian = "Radianes " +Engineering = "Engineering " Decimal = "Decimal " Scientific = "Científico " SignificantFigures = "Cifras significativas " diff --git a/apps/settings/base.fr.i18n b/apps/settings/base.fr.i18n index 9a6cc3547..2e2efe1f8 100644 --- a/apps/settings/base.fr.i18n +++ b/apps/settings/base.fr.i18n @@ -14,6 +14,7 @@ Degres = "Degrés " Radian = "Radians " Decimal = "Décimal " Scientific = "Scientifique " +Engineering = "Ingénieur " SignificantFigures = "Chiffres significatifs " Real = "Réel " Cartesian = "Algébrique " diff --git a/apps/settings/base.pt.i18n b/apps/settings/base.pt.i18n index 85d70c976..5c774ef75 100644 --- a/apps/settings/base.pt.i18n +++ b/apps/settings/base.pt.i18n @@ -14,6 +14,7 @@ Degres = "Graus " Radian = "Radianos " Decimal = "Decimal " Scientific = "Científico " +Engineering = "Engineering " SignificantFigures = "Algarismo significativo " Real = "Real " Cartesian = "Cartesiana " diff --git a/apps/settings/main_controller_prompt_beta.cpp b/apps/settings/main_controller_prompt_beta.cpp index 7cfed84e9..5d9396f6b 100644 --- a/apps/settings/main_controller_prompt_beta.cpp +++ b/apps/settings/main_controller_prompt_beta.cpp @@ -5,14 +5,14 @@ namespace Settings { constexpr SettingsMessageTree s_modelAngleChildren[2] = {SettingsMessageTree(I18n::Message::Degres), SettingsMessageTree(I18n::Message::Radian)}; constexpr SettingsMessageTree s_modelEditionModeChildren[2] = {SettingsMessageTree(I18n::Message::Edition2D), SettingsMessageTree(I18n::Message::EditionLinear)}; -constexpr SettingsMessageTree s_modelFloatDisplayModeChildren[3] = {SettingsMessageTree(I18n::Message::Decimal), SettingsMessageTree(I18n::Message::Scientific), SettingsMessageTree(I18n::Message::SignificantFigures)}; +constexpr SettingsMessageTree s_modelFloatDisplayModeChildren[4] = {SettingsMessageTree(I18n::Message::Decimal), SettingsMessageTree(I18n::Message::Scientific), SettingsMessageTree(I18n::Message::Engineering), SettingsMessageTree(I18n::Message::SignificantFigures)}; constexpr SettingsMessageTree s_modelComplexFormatChildren[3] = {SettingsMessageTree(I18n::Message::Real), SettingsMessageTree(I18n::Message::Cartesian), SettingsMessageTree(I18n::Message::Polar)}; constexpr SettingsMessageTree s_modelExamChildren[1] = {SettingsMessageTree(I18n::Message::ActivateExamMode)}; constexpr SettingsMessageTree s_modelAboutChildren[3] = {SettingsMessageTree(I18n::Message::SoftwareVersion), SettingsMessageTree(I18n::Message::SerialNumber), SettingsMessageTree(I18n::Message::FccId)}; constexpr SettingsMessageTree s_modelMenu[] = {SettingsMessageTree(I18n::Message::AngleUnit, s_modelAngleChildren, 2), - SettingsMessageTree(I18n::Message::DisplayMode, s_modelFloatDisplayModeChildren, 3), + SettingsMessageTree(I18n::Message::DisplayMode, s_modelFloatDisplayModeChildren, 4), SettingsMessageTree(I18n::Message::EditionMode, s_modelEditionModeChildren, 2), SettingsMessageTree(I18n::Message::ComplexFormat, s_modelComplexFormatChildren, 3), SettingsMessageTree(I18n::Message::Brightness), diff --git a/apps/settings/main_controller_prompt_none.cpp b/apps/settings/main_controller_prompt_none.cpp index 21a6d8c7d..a1c3dfc09 100644 --- a/apps/settings/main_controller_prompt_none.cpp +++ b/apps/settings/main_controller_prompt_none.cpp @@ -6,14 +6,14 @@ namespace Settings { // TODO: factorize most parts of the final models with main_controller_prompt_beta and main_controller_prompt_update constexpr SettingsMessageTree s_modelAngleChildren[2] = {SettingsMessageTree(I18n::Message::Degres), SettingsMessageTree(I18n::Message::Radian)}; constexpr SettingsMessageTree s_modelEditionModeChildren[2] = {SettingsMessageTree(I18n::Message::Edition2D), SettingsMessageTree(I18n::Message::EditionLinear)}; -constexpr SettingsMessageTree s_modelFloatDisplayModeChildren[3] = {SettingsMessageTree(I18n::Message::Decimal), SettingsMessageTree(I18n::Message::Scientific), SettingsMessageTree(I18n::Message::SignificantFigures)}; +constexpr SettingsMessageTree s_modelFloatDisplayModeChildren[4] = {SettingsMessageTree(I18n::Message::Decimal), SettingsMessageTree(I18n::Message::Scientific), SettingsMessageTree(I18n::Message::Engineering), SettingsMessageTree(I18n::Message::SignificantFigures)}; constexpr SettingsMessageTree s_modelComplexFormatChildren[3] = {SettingsMessageTree(I18n::Message::Real), SettingsMessageTree(I18n::Message::Cartesian), SettingsMessageTree(I18n::Message::Polar)}; constexpr SettingsMessageTree s_modelExamChildren[1] = {SettingsMessageTree(I18n::Message::ActivateExamMode)}; constexpr SettingsMessageTree s_modelAboutChildren[3] = {SettingsMessageTree(I18n::Message::SoftwareVersion), SettingsMessageTree(I18n::Message::SerialNumber), SettingsMessageTree(I18n::Message::FccId)}; constexpr SettingsMessageTree s_modelMenu[] = {SettingsMessageTree(I18n::Message::AngleUnit, s_modelAngleChildren, 2), - SettingsMessageTree(I18n::Message::DisplayMode, s_modelFloatDisplayModeChildren, 3), + SettingsMessageTree(I18n::Message::DisplayMode, s_modelFloatDisplayModeChildren, 4), SettingsMessageTree(I18n::Message::EditionMode, s_modelEditionModeChildren, 2), SettingsMessageTree(I18n::Message::ComplexFormat, s_modelComplexFormatChildren, 3), SettingsMessageTree(I18n::Message::Brightness), diff --git a/apps/settings/main_controller_prompt_update.cpp b/apps/settings/main_controller_prompt_update.cpp index a8f25a680..00783f1df 100644 --- a/apps/settings/main_controller_prompt_update.cpp +++ b/apps/settings/main_controller_prompt_update.cpp @@ -9,14 +9,14 @@ namespace Settings { constexpr SettingsMessageTree s_modelAngleChildren[2] = {SettingsMessageTree(I18n::Message::Degres), SettingsMessageTree(I18n::Message::Radian)}; constexpr SettingsMessageTree s_modelEditionModeChildren[2] = {SettingsMessageTree(I18n::Message::Edition2D), SettingsMessageTree(I18n::Message::EditionLinear)}; -constexpr SettingsMessageTree s_modelFloatDisplayModeChildren[3] = {SettingsMessageTree(I18n::Message::Decimal), SettingsMessageTree(I18n::Message::Scientific), SettingsMessageTree(I18n::Message::SignificantFigures)}; +constexpr SettingsMessageTree s_modelFloatDisplayModeChildren[4] = {SettingsMessageTree(I18n::Message::Decimal), SettingsMessageTree(I18n::Message::Scientific), SettingsMessageTree(I18n::Message::Engineering), SettingsMessageTree(I18n::Message::SignificantFigures)}; constexpr SettingsMessageTree s_modelComplexFormatChildren[3] = {SettingsMessageTree(I18n::Message::Real), SettingsMessageTree(I18n::Message::Cartesian), SettingsMessageTree(I18n::Message::Polar)}; constexpr SettingsMessageTree s_modelExamChildren[1] = {SettingsMessageTree(I18n::Message::ActivateExamMode)}; constexpr SettingsMessageTree s_modelAboutChildren[3] = {SettingsMessageTree(I18n::Message::SoftwareVersion), SettingsMessageTree(I18n::Message::SerialNumber), SettingsMessageTree(I18n::Message::FccId)}; constexpr SettingsMessageTree s_modelMenu[] = {SettingsMessageTree(I18n::Message::AngleUnit, s_modelAngleChildren, 2), - SettingsMessageTree(I18n::Message::DisplayMode, s_modelFloatDisplayModeChildren, 3), + SettingsMessageTree(I18n::Message::DisplayMode, s_modelFloatDisplayModeChildren, 4), SettingsMessageTree(I18n::Message::EditionMode, s_modelEditionModeChildren, 2), SettingsMessageTree(I18n::Message::ComplexFormat, s_modelComplexFormatChildren, 3), SettingsMessageTree(I18n::Message::Brightness), diff --git a/apps/settings/sub_menu/preferences_controller.cpp b/apps/settings/sub_menu/preferences_controller.cpp index 8f334dd6f..118c8dc79 100644 --- a/apps/settings/sub_menu/preferences_controller.cpp +++ b/apps/settings/sub_menu/preferences_controller.cpp @@ -63,10 +63,15 @@ Layout PreferencesController::layoutForPreferences(I18n::Message message) { // Display Mode format case I18n::Message::Decimal: - return LayoutHelper::String("12.34", 5, k_layoutFont); + return LayoutHelper::String("123.45", 5, k_layoutFont); case I18n::Message::Scientific: { - const char * text = "1.234ᴇ1"; + const char * text = "1.2345ᴇ2"; + return LayoutHelper::String(text, strlen(text), k_layoutFont); + } + case I18n::Message::Engineering: + { + const char * text = "12.345ᴇ3"; return LayoutHelper::String(text, strlen(text), k_layoutFont); } diff --git a/poincare/include/poincare/preferences.h b/poincare/include/poincare/preferences.h index 1b4e84170..51d946e04 100644 --- a/poincare/include/poincare/preferences.h +++ b/poincare/include/poincare/preferences.h @@ -17,6 +17,7 @@ public: enum class PrintFloatMode { Decimal = 0, Scientific = 1, + Engineering = 2, }; enum class ComplexFormat { Real = 0,