feat(editor): add theme and auto_sync preset prefs with rotate-on-Enter
Generalise the palette so Enter advances any pref to its next value and wraps; a boolean toggle is the two-option case. Both string prefs share a next_option(current, &OPTIONS) helper (off-list values snap to the head). - theme (light/dark): rendered as a single whole-frame Frame::invert at the end of draw(), so text, selection, caret, panel and palette flip together. - auto_sync: cycles 2m/5m/10m/15m/30m. Set-ahead only — still read by nothing until the v0.7 periodic push. toggle_pref -> cycle_pref; palette hint "Enter toggle" -> "Enter change".
This commit is contained in:
@@ -76,6 +76,16 @@ impl Frame {
|
||||
pub fn bytes(&self) -> &[u8] {
|
||||
&self.buf
|
||||
}
|
||||
|
||||
/// Flip every pixel black↔white across the whole framebuffer. The editor
|
||||
/// draws its native black-ink-on-white-paper frame, then calls this once at
|
||||
/// the end for the dark theme — so text, selection, caret, panel and palette
|
||||
/// all invert together and each stays legible against the flipped ground.
|
||||
pub fn invert(&mut self) {
|
||||
for b in &mut self.buf {
|
||||
*b = !*b;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl OriginDimensions for Frame {
|
||||
|
||||
Reference in New Issue
Block a user