diff --git a/src/CrossPointSettings.cpp b/src/CrossPointSettings.cpp index d723e158..600c296a 100644 --- a/src/CrossPointSettings.cpp +++ b/src/CrossPointSettings.cpp @@ -214,3 +214,18 @@ int CrossPointSettings::getReaderFontId() const { } } } + +int CrossPointSettings::getReaderScreenMargin() const { + switch (screenMargin) { + case SMALL: + return 5; + case MEDIUM: + return 10; + case LARGE: + return 20; + case EXTRA_LARGE: + return 40; + default: + return 5; + } +} \ No newline at end of file diff --git a/src/CrossPointSettings.h b/src/CrossPointSettings.h index 424b356d..63bcac7b 100644 --- a/src/CrossPointSettings.h +++ b/src/CrossPointSettings.h @@ -51,9 +51,6 @@ class CrossPointSettings { // E-ink refresh frequency (pages between full refreshes) enum REFRESH_FREQUENCY { REFRESH_1 = 0, REFRESH_5 = 1, REFRESH_10 = 2, REFRESH_15 = 3, REFRESH_30 = 4 }; - // Reader screen margin options - enum SCREEN_MARGIN { S = 5, M = 10, L = 20, XL = 30 }; - // Sleep screen settings uint8_t sleepScreen = DARK; @@ -80,7 +77,7 @@ class CrossPointSettings { uint8_t refreshFrequency = REFRESH_15; // Reader screen margin settings - uint8_t screenMargin = M; + uint8_t screenMargin = SMALL; ~CrossPointSettings() = default; @@ -96,6 +93,8 @@ class CrossPointSettings { float getReaderLineCompression() const; unsigned long getSleepTimeoutMs() const; int getRefreshFrequency() const; + int getReaderScreenMargin() const; + }; // Helper macro to access settings diff --git a/src/activities/reader/EpubReaderActivity.cpp b/src/activities/reader/EpubReaderActivity.cpp index 743826c0..d722a2d5 100644 --- a/src/activities/reader/EpubReaderActivity.cpp +++ b/src/activities/reader/EpubReaderActivity.cpp @@ -16,8 +16,6 @@ namespace { // pagesPerRefresh now comes from SETTINGS.getRefreshFrequency() constexpr unsigned long skipChapterMs = 700; constexpr unsigned long goHomeMs = 1000; -constexpr int topPadding = 5; -constexpr int horizontalPadding = 5; constexpr int statusBarMargin = 19; } // namespace @@ -253,9 +251,9 @@ void EpubReaderActivity::renderScreen() { int orientedMarginTop, orientedMarginRight, orientedMarginBottom, orientedMarginLeft; renderer.getOrientedViewableTRBL(&orientedMarginTop, &orientedMarginRight, &orientedMarginBottom, &orientedMarginLeft); - orientedMarginTop += SETTINGS.screenMargin; - orientedMarginLeft += SETTINGS.screenMargin; - orientedMarginRight += SETTINGS.screenMargin; + orientedMarginTop += SETTINGS.getReaderScreenMargin(); + orientedMarginLeft += SETTINGS.getReaderScreenMargin(); + orientedMarginRight += SETTINGS.getReaderScreenMargin(); orientedMarginBottom += statusBarMargin; if (!section) { diff --git a/src/activities/settings/SettingsActivity.cpp b/src/activities/settings/SettingsActivity.cpp index 3771c26a..b1f4080d 100644 --- a/src/activities/settings/SettingsActivity.cpp +++ b/src/activities/settings/SettingsActivity.cpp @@ -34,7 +34,7 @@ const SettingInfo settingsList[settingsCount] = { {"Bookerly", "Noto Sans", "Open Dyslexic"}}, {"Reader Font Size", SettingType::ENUM, &CrossPointSettings::fontSize, {"Small", "Medium", "Large", "X Large"}}, {"Reader Line Spacing", SettingType::ENUM, &CrossPointSettings::lineSpacing, {"Tight", "Normal", "Wide"}}, - {"Reader Screen Margin", SettingType::ENUM, &CrossPointSettings::screenMargin, {"S", "M", "L", "XL"}}, + {"Reader Screen Margin", SettingType::ENUM, &CrossPointSettings::screenMargin, {"5", "10", "20", "40"}}, {"Reader Paragraph Alignment", SettingType::ENUM, &CrossPointSettings::paragraphAlignment,