saudade 0.1.0

Classic looking retained-mode, cross-platform Rust GUI library
Documentation
//! saudade — a minimal, retained-mode GUI library for small Win 3.1-styled
//! utilities (about boxes, simple dialogs, system info viewers).
//!
//! The library follows the architecture sketched in `saudade.md` but stays
//! intentionally small:
//!
//! * the runtime drives winit + softbuffer
//! * widgets are ordinary Rust values implementing [`Widget`]
//! * events are typed (no integer message IDs)
//! * widgets request repaint / window close via [`EventCtx`]
//! * the default [`Theme`] paints chrome that matches Windows 3.1
//!
//! ## Minimal example
//!
//! ```no_run
//! use saudade::*;
//!
//! let root = Container::new(200, 80)
//!     .with_background(Color::WHITE)
//!     .add(Label::new(Rect::new(10, 10, 180, 16), "Hello, world!"))
//!     .add(
//!         Button::new(Rect::new(60, 40, 80, 24), "OK")
//!             .default(true)
//!             .on_click(|cx| cx.close()),
//!     );
//!
//! App::new(WindowConfig::new("Hello", 200, 80), root).run();
//! ```

mod app;
mod background;
mod event;
mod font;
mod geometry;
pub mod mock;
mod painter;
mod theme;
#[cfg(all(unix, not(target_os = "macos")))]
mod wayland;
mod widget;
mod widgets;

pub use app::{App, WindowConfig};
pub use background::{BackgroundPattern, PATTERN_COLORS};
pub use event::{Event, EventCtx, Key, Modifiers, MouseButton, NamedKey};
pub use font::Font;
pub use geometry::{Color, Point, Rect, Size};
pub use painter::Painter;
pub use theme::Theme;
pub use widget::{PopupKind, PopupRequest, Widget};
pub use widgets::{
    Bevel, Button, Checkbox, Column, Container, Dialog, DialogIcon, Dropdown, Image, Label, List,
    ListIcon, ListItem, Menu, MenuBar, MenuItem, Modal, Orientation, ProgressBar, Row,
    SCROLLBAR_THICKNESS, ScrollBar, Slider, TextEditor, TextInput,
};