zerolaunch_plugin_api/platform/
services.rs1use std::sync::Arc;
13
14use super::capabilities::PlatformCapabilities;
15use crate::services::app::app_enumerator::AppEnumerator;
16use crate::services::app::app_launcher::AppLauncher;
17use crate::services::autostart::AutoStartManager;
18use crate::services::clipboard::ClipboardManager;
19use crate::services::focus_monitor::FocusMonitor;
20use crate::services::hotkey::HotkeyManager;
21use crate::services::icon::icon_extractor::IconExtractor;
22use crate::services::installation_monitor::InstallationMonitor;
23use crate::services::parameter::provider::SystemParameterProvider;
24use crate::services::path::path_resolver::PathResolver;
25use crate::services::shell::lnk_resolver::LnkResolver;
26use crate::services::shell::resource_loader::ResourceLoader;
27use crate::services::shell::ShellExecutor;
28use crate::services::theme::ThemeProvider;
29use crate::services::window::{WindowManager, WindowPositioner};
30
31pub struct PlatformServices {
34 pub capabilities: PlatformCapabilities,
36 pub icon_extractor: Arc<dyn IconExtractor>,
38 pub shell_executor: Arc<dyn ShellExecutor>,
40 pub window_manager: Arc<dyn WindowManager>,
42 pub window_positioner: Arc<dyn WindowPositioner>,
44 pub path_resolver: Arc<dyn PathResolver>,
46 pub app_enumerator: Arc<dyn AppEnumerator>,
48 pub app_launcher: Arc<dyn AppLauncher>,
50 pub lnk_resolver: Arc<dyn LnkResolver>,
52 pub resource_loader: Arc<dyn ResourceLoader>,
54 pub clipboard_provider: Arc<dyn SystemParameterProvider>,
56 pub window_handle_provider: Arc<dyn SystemParameterProvider>,
58 pub selection_provider: Arc<dyn SystemParameterProvider>,
60 pub autostart_manager: Arc<dyn AutoStartManager>,
62 pub hotkey_manager: Arc<dyn HotkeyManager>,
64 pub installation_monitor: Arc<dyn InstallationMonitor>,
66 pub focus_monitor: Arc<dyn FocusMonitor>,
68 pub clipboard_manager: Arc<dyn ClipboardManager>,
70 pub theme_provider: Arc<dyn ThemeProvider>,
72}