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;
}
}
+pub fn dialog_builder() -> DialogBuilder<NoAppData> {
+ DialogBuilder {
+ args: unsafe { ui_dialog_args_new() },
+ parent: std::ptr::null_mut(),
+ _marker: PhantomData,
+ }
+}
+
+pub fn dialog<F>(build: F)
+where
+ F: Fn(&mut DialogBuilder<NoAppData>),
+{
+ let mut builder = dialog_builder();
+ build(&mut builder);
+ builder.create();
+}
+
/* ---------------------------------- C functions ---------------------------------- */