From: Olaf Wintermann Date: Wed, 22 Apr 2026 18:36:13 +0000 (+0200) Subject: extend textfield events X-Git-Url: https://uap-core.de/gitweb/?a=commitdiff_plain;h=HEAD;p=note.git extend textfield events --- diff --git a/ui-rs/src/ui/text.rs b/ui-rs/src/ui/text.rs index fde4232..2b30ef2 100644 --- a/ui-rs/src/ui/text.rs +++ b/ui-rs/src/ui/text.rs @@ -379,6 +379,25 @@ impl<'a, T> TextFieldBuilder<'a, T> { } } + pub fn onactivate(&mut self, f: F) -> &mut Self + where F: FnMut(&mut event::Event) + 'static { + let wrapper = Box::new(EventWrapper { callback: Box::new(f) }); + let ptr = self.obj.ctx.reg_box(wrapper); + unsafe { + ui_textfield_args_set_onactivate(self.args, Some(event::event_wrapper::)); + ui_textfield_args_set_onactivatedata(self.args, ptr as *mut c_void); + } + self + } + + pub fn onactivate_action(&mut self, action: &str) -> &mut Self { + let cstr = CString::new(action).unwrap(); + unsafe { + ui_textfield_args_set_onactivate_action(self.args, cstr.as_ptr()); + } + self + } + pub fn onchange(&mut self, f: F) -> &mut Self where F: FnMut(&mut event::Event) + 'static { let wrapper = Box::new(EventWrapper { callback: Box::new(f) }); @@ -390,6 +409,14 @@ impl<'a, T> TextFieldBuilder<'a, T> { self } + pub fn onchange_action(&mut self, action: &str) -> &mut Self { + let cstr = CString::new(action).unwrap(); + unsafe { + ui_textfield_args_set_onchange_action(self.args, cstr.as_ptr()); + } + self + } + 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); @@ -432,8 +459,12 @@ extern "C" { fn ui_textfield_args_set_style_class(args: *mut UiTextFieldArgs, classname: *const c_char); fn ui_textfield_args_set_varname(args: *mut UiTextFieldArgs, varname: *const c_char); fn ui_textfield_args_set_value(args: *mut UiTextFieldArgs, ivalue: *mut UiString); + fn ui_textfield_args_set_onactivate(args: *mut UiTextFieldArgs, callback: UiCallback); + fn ui_textfield_args_set_onactivatedata(args: *mut UiTextFieldArgs, data: *mut c_void); + fn ui_textfield_args_set_onactivate_action(args: *mut UiTextFieldArgs, action: *const c_char); fn ui_textfield_args_set_onchange(args: *mut UiTextFieldArgs, callback: UiCallback); fn ui_textfield_args_set_onchangedata(args: *mut UiTextFieldArgs, data: *mut c_void); + fn ui_textfield_args_set_onchange_action(args: *mut UiTextFieldArgs, action: *const c_char); fn ui_textfield_args_set_states(args: *mut UiTextFieldArgs, states: *const c_int, numstates: c_int); fn ui_textfield_args_set_visibility_states(args: *mut UiTextFieldArgs, states: *const c_int, numstates: c_int); fn ui_textfield_args_free(args: *mut UiTextFieldArgs);