#egui #xml #layout #ui #macro #loading #load-layout

egui_xml_macros

为egui_xml提供的宏

3个版本

0.1.2 2024年5月31日
0.1.1 2024年5月31日
0.1.0 2024年5月31日

#85 in #loading


用于 egui_xml

MIT 协议

19KB
343 代码行

load_layout! 宏,用于从XML加载egui布局

load_layout! 宏允许从XML加载布局配置,以供egui GUI框架使用。它接受布局结构的XML表示,并生成Rust代码以在egui UI中构建布局。

示例

use eframe::egui;
use egui::{Rounding, Ui};
use egui_xml::load_layout;

struct MyApp;

fn color_background(ui: &mut Ui, color: egui::Color32) {
    ui.painter()
        .rect_filled(ui.available_rect_before_wrap(), Rounding::same(5.0), color);
}

impl eframe::App for MyApp {
    fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
        egui::CentralPanel::default().show(ctx, |ui| {
            load_layout!(
                <Strip direction="west">
                    <Panel size="relative" value="0.3">
                        color_background(ui, egui::Color32::from_rgb(0, 0, 255));
                    </Panel>
                    <Panel size="remainder">
                        <Strip direction="north">
                            <Panel size="relative" value="0.3">
                                color_background(ui, egui::Color32::from_rgb(0, 255, 255));
                            </Panel>
                            <Panel size="remainder">
                                color_background(ui, egui::Color32::from_rgb(255, 0, 255));
                            </Panel>
                        </Strip>
                    </Panel>
                </Strip>
            );
        });
    }
}

依赖项

~1.5–2.1MB
~39K SLoC