You've already forked gpui-component
mirror of
https://github.com/librekeys/gpui-component.git
synced 2026-04-14 08:46:29 -07:00
1.7 KiB
1.7 KiB
layout
| layout |
|---|
| home |
Simple and Intuitive API
Get started with just a few lines of code. Stateless components make it easy to build complex UIs.
Button::new("ok")
.primary()
.label("Click Me")
.on_click(|_, _, _| println!("Button clicked!"))
Install GPUI Component
Add the following to your Cargo.toml:
gpui = "{{ GPUI_VERSION }}"
gpui-component = "{{ VERSION }}"
Hello World
The following src/main.rs is a simple "Hello, World!" application:
use gpui::*;
use gpui_component::{button::*, *};
pub struct HelloWorld;
impl Render for HelloWorld {
fn render(&mut self, _: &mut Window, _: &mut Context<Self>) -> impl IntoElement {
div()
.v_flex()
.gap_2()
.size_full()
.items_center()
.justify_center()
.child("Hello, World!")
.child(
Button::new("ok")
.primary()
.label("Let's Go!")
.on_click(|_, _, _| println!("Clicked!")),
)
}
}
fn main() {
let app = Application::new();
app.run(move |cx| {
// This must be called before using any GPUI Component features.
gpui_component::init(cx);
cx.spawn(async move |cx| {
cx.open_window(WindowOptions::default(), |window, cx| {
let view = cx.new(|_| HelloWorld);
// This first level on the window, should be a Root.
cx.new(|cx| Root::new(view, window, cx))
})?;
Ok::<_, anyhow::Error>(())
})
.detach();
});
}
Run the program with the following command:
$ cargo run