Expose system module through feature flag

This commit is contained in:
Héctor Ramón Jiménez 2022-04-30 13:37:57 +02:00
parent 5eefa5d4ea
commit 93bfe2c75e
No known key found for this signature in database
GPG key ID: 140CC052C94F138E
8 changed files with 30 additions and 14 deletions

View file

@ -42,6 +42,8 @@ smol = ["iced_futures/smol"]
palette = ["iced_core/palette"] palette = ["iced_core/palette"]
# Enables pure, virtual widgets in the `pure` module # Enables pure, virtual widgets in the `pure` module
pure = ["iced_pure", "iced_graphics/pure"] pure = ["iced_pure", "iced_graphics/pure"]
# Enables querying system information
system = ["iced_winit/system"]
[badges] [badges]
maintenance = { status = "actively-developed" } maintenance = { status = "actively-developed" }

View file

@ -6,5 +6,5 @@ edition = "2021"
publish = false publish = false
[dependencies] [dependencies]
iced = { path = "../.." } iced = { path = "../..", features = ["system"] }
bytesize = { version = "1.1.0" } bytesize = { version = "1.1.0" }

View file

@ -12,6 +12,7 @@ categories = ["gui"]
[features] [features]
debug = ["iced_winit/debug"] debug = ["iced_winit/debug"]
system = ["iced_winit/system"]
[dependencies.log] [dependencies.log]
version = "0.4" version = "0.4"

View file

@ -22,7 +22,6 @@ pub mod application;
pub use iced_winit::clipboard; pub use iced_winit::clipboard;
pub use iced_winit::conversion; pub use iced_winit::conversion;
pub use iced_winit::settings; pub use iced_winit::settings;
pub use iced_winit::system;
pub use iced_winit::window; pub use iced_winit::window;
pub use iced_winit::{Error, Mode}; pub use iced_winit::{Error, Mode};
@ -32,3 +31,6 @@ pub use application::Application;
pub use clipboard::Clipboard; pub use clipboard::Clipboard;
#[doc(no_inline)] #[doc(no_inline)]
pub use settings::Settings; pub use settings::Settings;
#[cfg(feature = "system")]
pub use iced_winit::system;

View file

@ -224,8 +224,10 @@ pub use settings::Settings;
pub use runtime::alignment; pub use runtime::alignment;
pub use runtime::futures; pub use runtime::futures;
pub use runtime::system;
pub use runtime::{ pub use runtime::{
Alignment, Background, Color, Command, ContentFit, Font, Length, Point, Alignment, Background, Color, Command, ContentFit, Font, Length, Point,
Rectangle, Size, Subscription, Vector, Rectangle, Size, Subscription, Vector,
}; };
#[cfg(feature = "system")]
pub use runtime::system;

View file

@ -12,12 +12,12 @@ categories = ["gui"]
[features] [features]
debug = ["iced_native/debug"] debug = ["iced_native/debug"]
system = ["sysinfo"]
[dependencies] [dependencies]
window_clipboard = "0.2" window_clipboard = "0.2"
log = "0.4" log = "0.4"
thiserror = "1.0" thiserror = "1.0"
sysinfo = "0.23"
[dependencies.winit] [dependencies.winit]
version = "0.26" version = "0.26"
@ -42,3 +42,7 @@ version = "0.3.6"
[target.'cfg(target_arch = "wasm32")'.dependencies.web-sys] [target.'cfg(target_arch = "wasm32")'.dependencies.web-sys]
version = "0.3" version = "0.3"
features = ["Document", "Window"] features = ["Document", "Window"]
[dependencies.sysinfo]
version = "0.23"
optional = true

View file

@ -542,7 +542,7 @@ pub fn run_command<Message: 'static + std::fmt::Debug + Send, E: Executor>(
clipboard: &mut Clipboard, clipboard: &mut Clipboard,
proxy: &mut winit::event_loop::EventLoopProxy<Message>, proxy: &mut winit::event_loop::EventLoopProxy<Message>,
window: &winit::window::Window, window: &winit::window::Window,
graphics_info: impl FnOnce() -> compositor::Information + Copy, _graphics_info: impl FnOnce() -> compositor::Information + Copy,
) { ) {
use iced_native::command; use iced_native::command;
use iced_native::system; use iced_native::system;
@ -580,15 +580,18 @@ pub fn run_command<Message: 'static + std::fmt::Debug + Send, E: Executor>(
} }
}, },
command::Action::System(action) => match action { command::Action::System(action) => match action {
system::Action::QueryInformation(tag) => { system::Action::QueryInformation(_tag) => {
let information = #[cfg(feature = "sysinfo")]
crate::system::information(graphics_info()); {
let information =
crate::system::information(_graphics_info());
let message = tag(information); let message = _tag(information);
proxy proxy
.send_event(message) .send_event(message)
.expect("Send message to event loop"); .expect("Send message to event loop");
}
} }
}, },
} }

View file

@ -31,9 +31,11 @@ pub mod application;
pub mod clipboard; pub mod clipboard;
pub mod conversion; pub mod conversion;
pub mod settings; pub mod settings;
pub mod system;
pub mod window; pub mod window;
#[cfg(feature = "system")]
pub mod system;
mod error; mod error;
mod mode; mod mode;
mod position; mod position;