From ab65b4db366475b39e351f59b558a5f9e8e42373 Mon Sep 17 00:00:00 2001 From: Olaf Wintermann Date: Sun, 10 May 2026 09:13:14 +0200 Subject: [PATCH] add function for creating dialogs without a parent --- ui-rs/src/ui/window.rs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/ui-rs/src/ui/window.rs b/ui-rs/src/ui/window.rs index ef29aff..47b42a2 100644 --- a/ui-rs/src/ui/window.rs +++ b/ui-rs/src/ui/window.rs @@ -32,7 +32,7 @@ use std::ffi::{c_char, c_int, c_void}; use std::ffi::CString; use std::marker::PhantomData; -use crate::ui::{event, ffi, toolkit, AppContext, EventWrapper, UiActions, UiModel}; +use crate::ui::{event, ffi, toolkit, AppContext, EventWrapper, NoAppData, UiActions, UiModel}; use crate::ui::ffi::{UiButtonArgs, UiCallback, UiContext, UiDestructor, UiDialogArgs, UiObject}; use crate::ui::widget::widget_fn; @@ -238,6 +238,23 @@ impl toolkit::UiObject { } } +pub fn dialog_builder() -> DialogBuilder { + DialogBuilder { + args: unsafe { ui_dialog_args_new() }, + parent: std::ptr::null_mut(), + _marker: PhantomData, + } +} + +pub fn dialog(build: F) +where + F: Fn(&mut DialogBuilder), +{ + let mut builder = dialog_builder(); + build(&mut builder); + builder.create(); +} + /* ---------------------------------- C functions ---------------------------------- */ -- 2.47.3