pub trait SpinButtonSignals: 'static {
// Required methods
fn connect_change_value<F>(&self, change_value_func: F) -> SignalHandlerId
where F: Fn(&Self, ScrollType) + 'static;
fn connect_input<F>(&self, input_func: F) -> SignalHandlerId
where F: Fn(&Self) -> Option<Result<f64, ()>> + 'static;
fn connect_output<F>(&self, output_func: F) -> SignalHandlerId
where F: Fn(&Self) -> Propagation + 'static;
fn connect_value_changed<F>(&self, value_changed_func: F) -> SignalHandlerId
where F: Fn(&Self) + 'static;
fn connect_wrapped<F>(&self, wrapped_func: F) -> SignalHandlerId
where F: Fn(&Self) + 'static;
}