From a6a98b03d4e8762df27a2784475302c41fbb6b8c Mon Sep 17 00:00:00 2001 From: Olaf Wintermann Date: Wed, 1 Apr 2026 21:45:36 +0200 Subject: [PATCH] implement passing values to a ToggleBuilder --- ui-rs/src/ui/button.rs | 8 ++++++-- ui-rs/src/ui/toolkit.rs | 10 +++++----- ui-rs/src/ui/window.rs | 8 ++++---- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/ui-rs/src/ui/button.rs b/ui-rs/src/ui/button.rs index f1e4405..d0dd9b6 100644 --- a/ui-rs/src/ui/button.rs +++ b/ui-rs/src/ui/button.rs @@ -7,8 +7,6 @@ use crate::ui::toolkit; use crate::ui::ffi::*; extern "C" { - fn ui_window(title: *const c_char) -> *const UiObject; - fn ui_button_create(obj: *const UiObject, args: *const UiButtonArgs); fn ui_togglebutton_create(obj: *const UiObject, args: *const UiToggleArgs); fn ui_checkbox_create(obj: *const UiObject, args: *const UiToggleArgs); @@ -462,5 +460,11 @@ impl ToggleBuilder { self } + pub fn value(self, value: &toolkit::UiInteger) { + unsafe { + ui_toggle_args_set_value(self.args, value.ptr); + } + } + // TODO: value, callback, states } \ No newline at end of file diff --git a/ui-rs/src/ui/toolkit.rs b/ui-rs/src/ui/toolkit.rs index 7d29052..35c62e0 100644 --- a/ui-rs/src/ui/toolkit.rs +++ b/ui-rs/src/ui/toolkit.rs @@ -4,23 +4,23 @@ use std::ffi::{c_char, c_int, CStr, CString}; use crate::ui::ffi; pub struct UiObject { - pub ptr: *const ffi::UiObject + pub ptr: *mut ffi::UiObject } pub struct UiText { - pub ptr: *const ffi::UiText + pub ptr: *mut ffi::UiText } pub struct UiString { - pub ptr: *const ffi::UiString + pub ptr: *mut ffi::UiString } pub struct UiInteger { - pub ptr: *const ffi::UiInteger + pub ptr: *mut ffi::UiInteger } pub struct UiDouble { - pub ptr: *const ffi::UiDouble + pub ptr: *mut ffi::UiDouble } extern "C" { diff --git a/ui-rs/src/ui/window.rs b/ui-rs/src/ui/window.rs index 972c101..0569c74 100644 --- a/ui-rs/src/ui/window.rs +++ b/ui-rs/src/ui/window.rs @@ -7,10 +7,10 @@ use crate::ui::toolkit; use crate::ui::ffi::UiObject; extern "C" { - fn ui_window(title: *const c_char) -> *const UiObject; - fn ui_sidebar_window(title: *const c_char) -> *const UiObject; - fn ui_splitview_window(title: *const c_char, sidebar: c_int) -> *const UiObject; - fn ui_simple_window(title: *const c_char) -> *const UiObject; + fn ui_window(title: *const c_char) -> *mut UiObject; + fn ui_sidebar_window(title: *const c_char) -> *mut UiObject; + fn ui_splitview_window(title: *const c_char, sidebar: c_int) -> *mut UiObject; + fn ui_simple_window(title: *const c_char) -> *mut UiObject; fn ui_show(ui: *const UiObject); -- 2.47.3