diff --git a/src/entities/app.rs b/src/entities/app.rs index 4b14d9a..c685725 100644 --- a/src/entities/app.rs +++ b/src/entities/app.rs @@ -3,11 +3,8 @@ use std::collections::BTreeMap; use iced::window::Id; use tray_icon::TrayIcon; -use crate::entities::{ - capture::CaptureEvent, - config::{Config, ConfigEvent}, - window::WindowType, -}; +pub use crate::entities::events::AppEvent; +use crate::entities::{config::Config, window::WindowType}; pub struct App { #[expect(dead_code)] @@ -17,32 +14,11 @@ pub struct App { } impl App { - pub(crate) fn new_internal( - tray_icon: TrayIcon, - config: Config, - windows: BTreeMap, - ) -> Self { + pub fn new(tray_icon: TrayIcon, config: Config) -> Self { Self { tray_icon, config, - windows, + windows: BTreeMap::new(), } } } - -#[derive(Debug, Clone)] -pub enum AppEvent { - OpenConfigureWindow, - OpenDirectory, - UpdateDirectory(Id), - GetScaleFactor(Id, f32), - OpenCaptureWindow, - Undo, - Done, - Cancel, - RequestClose(Id), - WindowClosed(Id), - ExitApp, - Config(Id, ConfigEvent), - Capture(Id, CaptureEvent), -} diff --git a/src/entities/events.rs b/src/entities/events.rs new file mode 100644 index 0000000..9ecc0c5 --- /dev/null +++ b/src/entities/events.rs @@ -0,0 +1,20 @@ +use iced::window::Id; + +use super::{capture::CaptureEvent, config::ConfigEvent}; + +#[derive(Debug, Clone)] +pub enum AppEvent { + OpenConfigureWindow, + OpenDirectory, + UpdateDirectory(Id), + GetScaleFactor(Id, f32), + OpenCaptureWindow, + Undo, + Done, + Cancel, + RequestClose(Id), + WindowClosed(Id), + ExitApp, + Config(Id, ConfigEvent), + Capture(Id, CaptureEvent), +} diff --git a/src/entities/mod.rs b/src/entities/mod.rs index d03bd40..a0f014b 100644 --- a/src/entities/mod.rs +++ b/src/entities/mod.rs @@ -1,6 +1,7 @@ pub mod app; pub mod capture; pub mod config; +mod events; pub mod style; pub mod theme; pub mod window; diff --git a/src/main.rs b/src/main.rs index f2a019e..20de431 100644 --- a/src/main.rs +++ b/src/main.rs @@ -6,8 +6,6 @@ mod theme; mod utils; mod windows; -use std::collections::BTreeMap; - use assets::{APPICON, APPNAME, FONT_BOLD, FONT_ICONS, FONT_MEDIUM, MEDIUM}; use entities::{ app::{App, AppEvent}, @@ -54,15 +52,15 @@ pub fn main() -> Result<(), iced::Error> { .theme(App::theme) .subscription(App::subscription) .antialiasing(true) - .run_with(App::new) + .run_with(App::run) } impl App { - pub fn new() -> (App, Task) { + pub fn run() -> (App, Task) { let (config, is_initial) = Config::new(); let tray_icon = tray_icon(); ( - App::new_internal(tray_icon, config, BTreeMap::new()), + App::new(tray_icon, config), if is_initial { Task::done(AppEvent::OpenConfigureWindow) } else {