1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
use egui::Ui;

use re_ui::UiExt as _;

/// Show a minimal welcome section.
pub fn no_data_ui(ui: &mut egui::Ui) {
    ui.center("no_data_ui_contents", |ui| {
        ui.add(
            egui::Label::new(
                egui::RichText::new(super::welcome_section::WELCOME_SCREEN_TITLE)
                    .weak()
                    .line_height(Some(36.0))
                    .text_style(re_ui::DesignTokens::welcome_screen_h2()),
            )
            .wrap(),
        );

        ui.add_space(10.0);

        let bullet_text = |ui: &mut Ui, text: &str| {
            ui.horizontal(|ui| {
                ui.add_space(1.0);
                ui.bullet(ui.visuals().weak_text_color());
                ui.add_space(5.0);
                ui.add(
                    egui::Label::new(
                        egui::RichText::new(text)
                            .color(ui.visuals().weak_text_color())
                            .text_style(re_ui::DesignTokens::welcome_screen_body()),
                    )
                    .wrap(),
                );
            });
            ui.add_space(4.0);
        };

        for text in super::welcome_section::WELCOME_SCREEN_BULLET_TEXT {
            bullet_text(ui, text);
        }

        ui.add_space(9.0);
        if ui
            .button(
                egui::RichText::new("Go to documentation →")
                    .weak()
                    .text_style(re_ui::DesignTokens::welcome_screen_body()),
            )
            .on_hover_cursor(egui::CursorIcon::PointingHand)
            .clicked()
        {
            ui.ctx().open_url(egui::output::OpenUrl {
                url: super::welcome_section::DOCS_URL.to_owned(),
                new_tab: true,
            });
        }
    });
}