121 lines · 3.7 KB · Rust
RawDownload
#![cfg_attr(target_family = "wasm", no_main)] use gpui::{    App, Bounds, Context, SharedString, Window, WindowBounds, WindowOptions, div, prelude::*, px,    rgb, size,};use gpui_platform::application; struct HelloWorld {    text: SharedString,} impl Render for HelloWorld {    fn render(&mut self, _window: &mut Window, _cx: &mut Context<Self>) -> impl IntoElement {        div()            .flex()            .flex_col()            .gap_3()            .bg(rgb(0x505050))            .size(px(500.0))            .justify_center()            .items_center()            .shadow_lg()            .border_1()            .border_color(rgb(0x0000ff))            .text_xl()            .text_color(rgb(0xffffff))            .child(format!("Hello, {}!", &self.text))            .child(                div()                    .flex()                    .gap_2()                    .child(                        div()                            .size_8()                            .bg(gpui::red())                            .border_1()                            .border_dashed()                            .rounded_md()                            .border_color(gpui::white()),                    )                    .child(                        div()                            .size_8()                            .bg(gpui::green())                            .border_1()                            .border_dashed()                            .rounded_md()                            .border_color(gpui::white()),                    )                    .child(                        div()                            .size_8()                            .bg(gpui::blue())                            .border_1()                            .border_dashed()                            .rounded_md()                            .border_color(gpui::white()),                    )                    .child(                        div()                            .size_8()                            .bg(gpui::yellow())                            .border_1()                            .border_dashed()                            .rounded_md()                            .border_color(gpui::white()),                    )                    .child(                        div()                            .size_8()                            .bg(gpui::black())                            .border_1()                            .border_dashed()                            .rounded_md()                            .rounded_md()                            .border_color(gpui::white()),                    )                    .child(                        div()                            .size_8()                            .bg(gpui::white())                            .border_1()                            .border_dashed()                            .rounded_md()                            .border_color(gpui::black()),                    ),            )    }} fn run_example() {    application().run(|cx: &mut App| {        let bounds = Bounds::centered(None, size(px(500.), px(500.0)), cx);        cx.open_window(            WindowOptions {                window_bounds: Some(WindowBounds::Windowed(bounds)),                ..Default::default()            },            |_, cx| {                cx.new(|_| HelloWorld {                    text: "World".into(),                })            },        )        .unwrap();        cx.activate(true);    });} #[cfg(not(target_family = "wasm"))]fn main() {    run_example();} #[cfg(target_family = "wasm")]#[wasm_bindgen::prelude::wasm_bindgen(start)]pub fn start() {    gpui_platform::web_init();    run_example();}