1use gpui::{
2 App, Application, Bounds, Context, SharedString, Window, WindowBounds, WindowOptions, div,
3 prelude::*, px, rgb, size,
4};
5
6struct HelloWorld {
7 text: SharedString,
8}
9
10impl Render for HelloWorld {
11 fn render(&mut self, _window: &mut Window, _cx: &mut Context<Self>) -> impl IntoElement {
12 div()
13 .flex()
14 .flex_col()
15 .gap_3()
16 .bg(rgb(0x505050))
17 .size(px(500.0))
18 .justify_center()
19 .items_center()
20 .shadow_lg()
21 .border_1()
22 .border_color(rgb(0x0000ff))
23 .text_xl()
24 .text_color(rgb(0xffffff))
25 .child(format!("Hello, {}!", &self.text))
26 .child(
27 div()
28 .flex()
29 .gap_2()
30 .child(
31 div()
32 .size_8()
33 .bg(gpui::red())
34 .border_1()
35 .border_dashed()
36 .rounded_md()
37 .border_color(gpui::white()),
38 )
39 .child(
40 div()
41 .size_8()
42 .bg(gpui::green())
43 .border_1()
44 .border_dashed()
45 .rounded_md()
46 .border_color(gpui::white()),
47 )
48 .child(
49 div()
50 .size_8()
51 .bg(gpui::blue())
52 .border_1()
53 .border_dashed()
54 .rounded_md()
55 .border_color(gpui::white()),
56 )
57 .child(
58 div()
59 .size_8()
60 .bg(gpui::yellow())
61 .border_1()
62 .border_dashed()
63 .rounded_md()
64 .border_color(gpui::white()),
65 )
66 .child(
67 div()
68 .size_8()
69 .bg(gpui::black())
70 .border_1()
71 .border_dashed()
72 .rounded_md()
73 .rounded_md()
74 .border_color(gpui::white()),
75 )
76 .child(
77 div()
78 .size_8()
79 .bg(gpui::white())
80 .border_1()
81 .border_dashed()
82 .rounded_md()
83 .border_color(gpui::black()),
84 ),
85 )
86 }
87}
88
89fn main() {
90 Application::new().run(|cx: &mut App| {
91 let bounds = Bounds::centered(None, size(px(500.), px(500.0)), cx);
92 cx.open_window(
93 WindowOptions {
94 window_bounds: Some(WindowBounds::Windowed(bounds)),
95 ..Default::default()
96 },
97 |_, cx| {
98 cx.new(|_| HelloWorld {
99 text: "World".into(),
100 })
101 },
102 )
103 .unwrap();
104 cx.activate(true);
105 });
106}