use windui::prelude::*;
const FG: u32 = 0x2D3436;
const SUB: u32 = 0x636E72;
fn main() {
let report = signal(String::from("把任意文件从资源管理器拖到这里…"));
let count = signal(0u32);
let (r, c) = (report, count);
let ui = Element::col()
.fill()
.bg(Color::hex(0xFFFFFF))
.padding(24)
.spacing(12)
.on_drop_files(move |ctx, paths| {
c.set(c.get() + paths.len() as u32);
let list: Vec<String> = paths.iter().map(|p| format!("• {}", p.display())).collect();
r.set(format!(
"本次收到 {} 个(累计 {}):\n{}",
paths.len(),
c.get(),
list.join("\n")
));
ctx.mark_dirty(); })
.child(
Element::label("文件拖放")
.font_size(22.0)
.fg(Color::hex(FG))
.height(30)
.width_match(),
)
.child(
Element::label("把任意文件从资源管理器拖到本窗口任意位置")
.font_size(13.0)
.fg(Color::hex(SUB))
.height(18)
.width_match(),
)
.child(Element::divider())
.child(
Element::label_rc(report)
.font_size(14.0)
.fg(Color::hex(FG))
.width_match()
.weight(1.0),
);
App::new("windui — 文件拖放", 480, 380)
.bg(Color::hex(0xFFFFFF))
.screenshot_from_args()
.content(ui)
.run();
}