use std::ffi::{c_char, c_int, c_void, CString};
use std::path::Path;
-use crate::ui::{ffi, toolkit, ButtonBuilder, UiContext, UiImage};
-use crate::ui::ffi::{UiImageViewerArgs, UiLabelArgs};
+use crate::ui::{event, ffi, toolkit, ButtonBuilder, EventWrapper, UiContext, UiImage};
+use crate::ui::ffi::{UiCallback, UiImageViewerArgs, UiLabelArgs};
use crate::ui::label::{Label, LabelCreate};
use crate::ui::widget::Widget;
self
}
+ pub fn onbuttonpress<F>(&mut self, f: F) -> &mut Self
+ where F: FnMut(&mut event::Event<T>) + 'static {
+ let wrapper = Box::new(EventWrapper::new(f) );
+ let ptr = self.obj.ctx.reg_box(wrapper);
+ unsafe {
+ ui_imageviewer_args_set_onbuttonpress(self.args, Some(event::event_wrapper::<T>));
+ ui_imageviewer_args_set_onbuttonpressdata(self.args, ptr as *mut c_void);
+ }
+ self
+ }
+
+ pub fn onbuttonrelease<F>(&mut self, f: F) -> &mut Self
+ where F: FnMut(&mut event::Event<T>) + 'static {
+ let wrapper = Box::new(EventWrapper::new(f) );
+ let ptr = self.obj.ctx.reg_box(wrapper);
+ unsafe {
+ ui_imageviewer_args_set_onbuttonrelease(self.args, Some(event::event_wrapper::<T>));
+ ui_imageviewer_args_set_onbuttonreleasedata(self.args, ptr as *mut c_void);
+ }
+ self
+ }
+
pub fn visibility_states(&mut self, states: &[i32]) -> &mut Self {
unsafe {
ui_imageviewer_args_set_visibility_states(self.args, states.as_ptr(), states.len() as c_int);
fn ui_imageviewer_args_set_image_padding_right(args: *mut UiImageViewerArgs, value: c_int);
fn ui_imageviewer_args_set_image_padding_top(args: *mut UiImageViewerArgs, value: c_int);
fn ui_imageviewer_args_set_image_padding_bottom(args: *mut UiImageViewerArgs, value: c_int);
+ fn ui_imageviewer_args_set_onbuttonpress(args: *mut UiImageViewerArgs, callback: UiCallback);
+ fn ui_imageviewer_args_set_onbuttonpressdata(args: *mut UiImageViewerArgs, data: *const c_void);
+ fn ui_imageviewer_args_set_onbuttonrelease(args: *mut UiImageViewerArgs, callback: UiCallback);
+ fn ui_imageviewer_args_set_onbuttonreleasedata(args: *mut UiImageViewerArgs, data: *const c_void);
fn ui_imageviewer_args_set_visibility_states(args: *mut UiImageViewerArgs, states: *const c_int, numstates: c_int);
fn ui_imageviewer_args_free(args: *mut UiImageViewerArgs);