settings rewrite, reading themes, button swap, expanded character set settings app: - rewrite with 6 items: sleep, ghost clear, book font, UI font, reading theme, swap buttons - dynamic visible_items() computed from available screen space - scroll support when items overflow visible area reading themes: - add ReadingTheme struct with margin_h, margin_v, line_spacing_pct - 4 presets: Compact / Default / Relaxed / Spacious - replace hardcoded TEXT_W/TEXT_Y/TEXT_AREA_H/MARGIN in reader text paths with runtime fields (text_margin, text_y, text_w, text_area_h) - theme-aware line spacing in apply_font_metrics() - wire theme propagation through manager.propagate_fonts() - apply_theme_layout() called in on_enter and on_resume button swap: - ButtonMapper swaps Back<->Left, Confirm<->Right (not volume) - ButtonFeedback uses swap flag to show correct physical labels - sync_button_config() in manager updates mapper + bumps on change reader improvements: - remove unused progress bar (READER_PROGRESS_H, PROGRESS_Y, PROGRESS_W) - fix inline image clipping: ceiling division for img_lines reservation, clamp blit_h to remaining vertical space - add LongPress(NextJump) -> end of chapter, LongPress(PrevJump) -> start - images.rs uses runtime text_w/text_area_h instead of constants shared widgets: - add selectable_row.rs (draw_selection, draw_selection_if_visible) - add list.rs (ListSelection scroll helper) - add format.rs (draw_position_indicator, fmt_position, fmt_percent) - refactor home bookmarks and quick_menu to use shared selection widget character support: - add ~70 codepoints to build.rs: currency, math, arrows, symbols, Latin Extended-B (Vietnamese, Romanian) config rewrite: - SystemSettings gains reading_theme (u8) and swap_buttons (bool) - SETTINGS.TXT parse/write updated with section comments
settings rewrite, reading themes, button swap, expanded character set settings app: - rewrite with 6 items: sleep, ghost clear, book font, UI font, reading theme, swap buttons - dynamic visible_items() computed from available screen space - scroll support when items overflow visible area reading themes: - add ReadingTheme struct with margin_h, margin_v, line_spacing_pct - 4 presets: Compact / Default / Relaxed / Spacious - replace hardcoded TEXT_W/TEXT_Y/TEXT_AREA_H/MARGIN in reader text paths with runtime fields (text_margin, text_y, text_w, text_area_h) - theme-aware line spacing in apply_font_metrics() - wire theme propagation through manager.propagate_fonts() - apply_theme_layout() called in on_enter and on_resume button swap: - ButtonMapper swaps Back<->Left, Confirm<->Right (not volume) - ButtonFeedback uses swap flag to show correct physical labels - sync_button_config() in manager updates mapper + bumps on change reader improvements: - remove unused progress bar (READER_PROGRESS_H, PROGRESS_Y, PROGRESS_W) - fix inline image clipping: ceiling division for img_lines reservation, clamp blit_h to remaining vertical space - add LongPress(NextJump) -> end of chapter, LongPress(PrevJump) -> start - images.rs uses runtime text_w/text_area_h instead of constants shared widgets: - add selectable_row.rs (draw_selection, draw_selection_if_visible) - add list.rs (ListSelection scroll helper) - add format.rs (draw_position_indicator, fmt_position, fmt_percent) - refactor home bookmarks and quick_menu to use shared selection widget character support: - add ~70 codepoints to build.rs: currency, math, arrows, symbols, Latin Extended-B (Vietnamese, Romanian) config rewrite: - SystemSettings gains reading_theme (u8) and swap_buttons (bool) - SETTINGS.TXT parse/write updated with section comments