# RSGT : Rust simple GUI Toolkit
[](https://github.com/OvertimeCoder/RSGT/actions/workflows/rust-clippy.yml)


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

# 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