pub const trait Default {
fn set_window_position(
handle: &raw_window_handle::RawWindowHandle,
x: i32,
y: i32,
) -> bool;
fn set_window_level(
handle: &raw_window_handle::RawWindowHandle,
level: WindowLevel,
) -> bool;
fn get_window_position(
handle: &raw_window_handle::RawWindowHandle,
) -> (i32, i32);
fn get_window_size(
handle: &raw_window_handle::RawWindowHandle,
) -> (i32, i32);
fn get_window_hitbox_size(
handle: &raw_window_handle::RawWindowHandle,
) -> (i32, i32);
fn set_window_size(
handle: &raw_window_handle::RawWindowHandle,
size: (i32, i32),
) -> bool;
}
pub const trait Transparency {
fn make_color_transparent(
handle: &raw_window_handle::RawWindowHandle,
color: (u8, u8, u8),
) -> bool;
fn set_window_opacity(
handle: &raw_window_handle::RawWindowHandle,
opacity: u8,
) -> bool;
}
pub const trait Decoration {
fn set_window_borderless(
handle: &raw_window_handle::RawWindowHandle,
boolean: bool,
) -> bool;
}
pub const trait Misc {
fn set_window_hidden_from_taskbar_and_alt_tab(
handle: &raw_window_handle::RawWindowHandle,
boolean: bool,
) -> bool;
fn get_all_windows() -> Vec<raw_window_handle::RawWindowHandle>;
fn get_title_using_id(
handle: &raw_window_handle::RawWindowHandle,
) -> String;
#[allow(clippy::fn_params_excessive_bools)]
fn get_id_using_title(
title: &str,
exact_match: bool,
case_sensitive: bool,
include_hidden: bool,
just_one: bool,
) -> Option<Vec<raw_window_handle::RawWindowHandle>>;
fn capture_screen() -> Option<Buffer>;
fn capture_desktop_background() -> Option<Buffer>;
fn set_click_ability_of_window(
handle: &raw_window_handle::RawWindowHandle,
click_through: bool,
);
fn get_window_z(handle: &raw_window_handle::RawWindowHandle) -> u32;
fn set_window_z(
handle: &raw_window_handle::RawWindowHandle,
z: u32,
) -> bool;
fn set_window_z_after(
handle: &raw_window_handle::RawWindowHandle,
after: &raw_window_handle::RawWindowHandle,
) -> bool;
fn set_cpu_priority(
handle: &raw_window_handle::RawWindowHandle,
priority: CpuPriority,
);
}
pub const trait TaskBar {
fn set_icon_state(
handle: &raw_window_handle::RawWindowHandle,
state: &ProgressionState,
);
fn set_icon_progress(
handle: &raw_window_handle::RawWindowHandle,
current: u64,
total: u64,
);
}
pub const trait Iconized {
fn is_minimized(handle: &raw_window_handle::RawWindowHandle) -> bool;
fn is_maximized(handle: &raw_window_handle::RawWindowHandle) -> bool;
fn restore(handle: &raw_window_handle::RawWindowHandle) -> bool;
fn minimize(handle: &raw_window_handle::RawWindowHandle) -> bool;
fn maximize(handle: &raw_window_handle::RawWindowHandle) -> bool;
}
pub const trait Screen {
fn get_screen_resolution() -> (i32, i32);
}
pub const trait Host {
fn get_os_name() -> String;
}
#[cfg_attr(all(feature = "strum"), derive(strum::EnumIter))]
#[cfg_attr(all(feature = "enum_ext"), enum_ext::enum_extend)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Hash)]
#[cfg_attr(feature = "c_compatible", repr(C))]
pub enum ProgressionState {
#[default]
Normal,
Error,
Paused,
Loading,
NoBar,
}
#[cfg(not(feature = "miri"))]
#[cfg(target_os = "windows")]
pub mod windows_actions;
#[cfg(target_os = "windows")]
#[cfg(not(feature = "miri"))]
pub use windows_actions::WindowsActions as Os;
#[cfg(target_os = "linux")]
#[cfg(not(feature = "miri"))]
pub mod linux_actions;
#[cfg(target_os = "linux")]
#[cfg(not(feature = "miri"))]
pub use linux_actions::LinuxActions as Os;
#[cfg(target_arch = "wasm32")]
#[cfg(not(feature = "miri"))]
pub mod web_actions;
#[cfg(target_arch = "wasm32")]
#[cfg(not(feature = "miri"))]
pub use web_actions::WebActions as Os;
#[cfg(target_os = "macos")]
#[cfg(not(feature = "miri"))]
pub mod mac_actions;
#[cfg(target_os = "macos")]
#[cfg(not(feature = "miri"))]
pub use mac_actions::MacActions as Os;
#[cfg(feature = "miri")]
pub mod miri_actions;
#[cfg(feature = "miri")]
pub use miri_actions::MiriActions as Os;
#[cfg(not(any(
target_arch = "wasm32",
target_os = "linux",
target_os = "windows",
target_os = "macos",
feature = "miri"
)))]
#[cfg_attr(feature = "c_compatible", repr(C))]
pub struct Os {}
use crate::{platform::WindowLevel, prelude::Buffer};
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[cfg_attr(feature = "c_compatible", repr(C))]
#[cfg_attr(all(feature = "strum"), derive(strum::EnumIter))]
#[cfg_attr(all(feature = "enum_ext"), enum_ext::enum_extend)]
pub enum CpuPriority {
Idle,
BelowNormal,
Normal,
AboveNormal,
High,
Realtime,
}