pub use crate::handle::{AnyId, Id};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct Bounds {
pub x: i32,
pub y: i32,
pub width: i32,
pub height: i32,
}
impl Bounds {
pub const fn new(x: i32, y: i32, width: i32, height: i32) -> Self {
Self {
x,
y,
width,
height,
}
}
}
pub mod kind {
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Label {}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Group {}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Edit {}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum DropDown {}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum List {}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Check {}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Button {}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum PlacementPicker {}
}
mod sealed {
pub trait Sealed {}
impl Sealed for super::kind::Label {}
impl Sealed for super::kind::Edit {}
impl Sealed for super::kind::DropDown {}
impl Sealed for super::kind::List {}
}
pub trait HasText: sealed::Sealed {}
impl HasText for kind::Label {}
impl HasText for kind::Edit {}
pub trait HasItems: sealed::Sealed {}
impl HasItems for kind::DropDown {}
impl HasItems for kind::List {}
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
pub struct EditStyle {
pub multiline: bool,
pub digits_only: bool,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Event {
Clicked(AnyId),
Changed(AnyId),
Submit,
Close,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Flow {
Continue,
Close,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Outcome {
Closed,
Quit,
}