#![doc(html_logo_url = "https://raw.githubusercontent.com/OvertimeCoder/RSGT/main/src/icon.png")]
use std::fmt;
use std::fmt::Debug;
use winit::dpi::{LogicalPosition, PhysicalPosition, PhysicalSize};
pub mod error;
pub mod event;
pub mod graphic;
pub mod os;
pub mod rframe;
mod color;
pub mod theme;
pub mod widget;
pub enum ResponseType {
None,
Ok,
Yes,
No,
Cancel,
Close,
}
pub enum CursorIcon {
Arrow,
ScrollAll,
CrossHair,
Help,
Hand,
NotAllowed,
Progress,
}
pub enum WindowButton {
Close,
Maximize,
Minimize,
}
#[derive(Debug, Clone, Copy)]
pub struct Size<T>(pub T, pub T);
impl<T> Size<T> {
pub fn into_tuple(self) -> (T, T) {
(self.0, self.1)
}
}
impl From<Size<u32>> for PhysicalSize<u32> {
fn from(value: Size<u32>) -> Self {
Self {
width: value.0,
height: value.1,
}
}
}
#[derive(Debug, Clone, Copy)]
pub struct Position<T>(pub T, pub T);
impl<T> Position<T> {
pub fn into_tuple(self) -> (T, T) {
(self.0, self.1)
}
}
impl From<Position<u32>> for LogicalPosition<u32> {
fn from(value: Position<u32>) -> Self {
Self {
x: value.0,
y: value.1,
}
}
}