# RSGT : Rust simple GUI Toolkit [![rust-clippy analyze](https://github.com/OvertimeCoder/RSGT/actions/workflows/rust-clippy.yml/badge.svg)](https://github.com/OvertimeCoder/RSGT/actions/workflows/rust-clippy.yml) ![Crates.io](https://img.shields.io/crates/v/rsgt) ![Crates.io](https://img.shields.io/crates/d/rsgt) RSGT is a simple GUI Library # Design RSGT's event handling is based on Swing (Java) event handling. (which uses callbacks). In addition, drawing of GUI components uses the GPU (wgpu), allowing for flexible representation. # Example ```Rust use rsgt::Size; use rsgt::event::WindowListener; use rsgt::rframe::{CloseOperation, RFrameBuilder}; fn main() { // Apply Visual Style (Windows only) rsgt::os::enable_visual_style(); // Initialize RFrame let mut frame = RFrameBuilder::new() .with_size(Size(1280,720)) .with_title("Show window") .with_visible(true) .build() .unwrap(); // Add window listener(Callback to detect Window events) frame.add_window_listener(SampleWindowListener {}); // Show window frame.run(); } struct SampleWindowListener {} impl WindowListener for SampleWindowListener { } ``` ## Execution Result ![Show Window](./img/show_window.png) # Goal * To be able to handle a wide range of applications from simple to complex * Ensure that the same code works the same in any environment # License "RSGT" is under MIT LICENSE