From ffbf0c9e54def5c8e2dc2cdfd3d3b6075cd83033 Mon Sep 17 00:00:00 2001 From: Olaf Wintermann Date: Tue, 14 Apr 2026 08:01:13 +0200 Subject: [PATCH] add states args to existing widget builders --- ui-rs/src/ui/button.rs | 28 +++++++++++++++++++++++++++- ui-rs/src/ui/text.rs | 28 ++++++++++++++++++++++++++-- 2 files changed, 53 insertions(+), 3 deletions(-) diff --git a/ui-rs/src/ui/button.rs b/ui-rs/src/ui/button.rs index b44ba78..344098c 100644 --- a/ui-rs/src/ui/button.rs +++ b/ui-rs/src/ui/button.rs @@ -268,6 +268,20 @@ impl<'a, T> ButtonBuilder<'a, T> { } self } + + pub fn visibility_states(&mut self, states: &[i32]) -> &mut Self { + unsafe { + ui_button_args_set_visibility_states(self.args, states.as_ptr(), states.len() as c_int); + } + self + } + + pub fn states(&mut self, states: &[i32]) -> &mut Self { + unsafe { + ui_button_args_set_states(self.args, states.as_ptr(), states.len() as c_int); + } + self + } } impl<'a, T> ToggleBuilder<'a, T> { @@ -439,7 +453,19 @@ impl<'a, T> ToggleBuilder<'a, T> { self } - // TODO: callback, states + pub fn visibility_states(&mut self, states: &[i32]) -> &mut Self { + unsafe { + ui_toggle_args_set_visibility_states(self.args, states.as_ptr(), states.len() as c_int); + } + self + } + + pub fn states(&mut self, states: &[i32]) -> &mut Self { + unsafe { + ui_toggle_args_set_states(self.args, states.as_ptr(), states.len() as c_int); + } + self + } } diff --git a/ui-rs/src/ui/text.rs b/ui-rs/src/ui/text.rs index 8c91494..66b94fe 100644 --- a/ui-rs/src/ui/text.rs +++ b/ui-rs/src/ui/text.rs @@ -173,7 +173,19 @@ impl<'a, T> TextAreaBuilder<'a, T> { self } - // TODO: states + pub fn visibility_states(&mut self, states: &[i32]) -> &mut Self { + unsafe { + ui_textarea_args_set_visibility_states(self.args, states.as_ptr(), states.len() as c_int); + } + self + } + + pub fn states(&mut self, states: &[i32]) -> &mut Self { + unsafe { + ui_textarea_args_set_states(self.args, states.as_ptr(), states.len() as c_int); + } + self + } } @@ -379,7 +391,19 @@ impl<'a, T> TextFieldBuilder<'a, T> { self } - // TODO: states + pub fn visibility_states(&mut self, states: &[i32]) -> &mut Self { + unsafe { + ui_textfield_args_set_visibility_states(self.args, states.as_ptr(), states.len() as c_int); + } + self + } + + pub fn states(&mut self, states: &[i32]) -> &mut Self { + unsafe { + ui_textfield_args_set_states(self.args, states.as_ptr(), states.len() as c_int); + } + self + } } -- 2.47.3