feat: add kraft paper tiled background texture for comfortable reading

This commit is contained in:
Developer
2026-05-14 20:49:27 +08:00
parent 16f801cdf8
commit d69229b1ca
5 changed files with 93 additions and 0 deletions

View File

@@ -8,6 +8,7 @@ pub struct App {
pub state: AppState,
settings: Settings,
settings_dir: std::path::PathBuf,
kraft_texture: Option<egui::TextureHandle>,
}
pub struct AppState {
@@ -51,6 +52,7 @@ impl App {
let settings_dir = persistence::settings_dir();
let settings = persistence::load_settings(&settings_dir).unwrap_or_default();
cc.egui_ctx.set_style(theme::create_style(&settings.theme));
let kraft_texture = Some(crate::texture::generate_kraft_paper(&cc.egui_ctx));
Self {
state: AppState {
book: None,
@@ -62,6 +64,7 @@ impl App {
},
settings,
settings_dir,
kraft_texture,
}
}
@@ -189,6 +192,8 @@ impl eframe::App for App {
&mut self.settings.font_size,
&self.settings.theme,
&file_path,
self.kraft_texture.as_ref(),
self.settings.use_kraft_bg,
);
if action.go_back {
@@ -198,6 +203,10 @@ impl eframe::App for App {
self.state.current_page = 0;
}
if action.toggle_kraft_bg {
self.settings.use_kraft_bg = !self.settings.use_kraft_bg;
}
if action.toggle_theme {
self.settings.theme = match self.settings.theme {
theme::Theme::Light => theme::Theme::Dark,