RSGT : Rust simple GUI Toolkit

Note:The following is what we are aiming for, not what is currently possible.

rust-clippy analyze Crates.io Crates.io (latest)

RSGT is a fast hold-mode GUI library; RSGT runs primarily natively (WASM support is under consideration...)

Design

RSGT's event handling is based on Swing (Java) event handling. Also, the rendering of GUI components will be unique, so that components can be easily designed using CSS and other scripts.

Example

```Rust use std::path::{Path, PathBuf}; use rsgt::rframe::{FrameEvent, RFrame}; use rsgt::event::WindowListener;

fn main() { // Apply Visual Style (Windows only) rsgt::os::enablevisualstyle(); // Initialize RFrame let mut frame = RFrame::new("RSGT Sample window", "samplewindow", 1280, 720); // Add window listener(Callback to detect Window events) frame.addwindowlistener(SampleWindowListener{}); // Set window icon frame.seticon(rsgt::graphic::loadicon(Path::new(concat!(env!("CARGOMANIFEST_DIR"), "/examples/icon.png")))); // Show window frame.run(); }

struct SampleWindowListener {

}

impl WindowListener for SampleWindowListener { // Event fired when a file is dropped on the Window fn windowdroppedfile(&self, path: PathBuf, event: &FrameEvent) { // Get RFrame from FrameEvent let frame = _event.getframe(); frame.seticon(rsgt::graphic::loadicon(path.as_path())); } } ```

Goal

License

"RSGT" is under MIT LICENSE