Struct Callback

Source
pub struct Callback<'a, FN, T: 'a>
where FN: FnMut(&dyn Component, Option<&T>) + 'a,
{ /* private fields */ }
Expand description

A callback called when a newt Component is activated.

§Example

extern crate newt;
use newt::Callback;
use newt::prelude::*;

pub fn main() {
    // Receives the new value when the Callback is activated.
    let mut value: i32 = 0;

    newt::init().unwrap();
    newt::cls();
    newt::centered_window(20, 6, Some("Callback Test")).unwrap();

    let cb1 = Checkbox::new(3, 1, "Check 1", None, None);
    let cb2 = Checkbox::new(3, 2, "Check 2", None, None);
    let ok = CompactButton::new(7, 4, "Ok");

    let mut form = Form::new(None, 0);
    form.add_components(&[&cb1, &cb2, &ok]).unwrap();

    // Closure `f` borrows `value` as mutable so create a new subscope here
    // allowing `value` to be borrowed immutably when printing the result
    // later.
    {
        // Create closure to be called by Callback
        let mut f = |_c: &dyn Component, data: Option<&i32>| {
            value = *data.unwrap();
        };

        // Create Callback with first Checkbox using `5` as data.
        let mut callback = Callback::new(&cb1, Some(5), &mut f);
        // Add second Checkbox using `10` as data.
        callback.add_component(&cb2, Some(10));

        form.run().unwrap();
        newt::finished();
    }

    // `value` will be 0, 5, or 10 depending on the last Checkbox "clicked".
    println!("value = {}", value);
}

Implementations§

Source§

impl<'a, FN, T: 'a> Callback<'a, FN, T>
where FN: FnMut(&dyn Component, Option<&T>) + 'a,

Source

pub fn new( component: &'a dyn Component, data: Option<T>, function: FN, ) -> Box<Callback<'a, FN, T>>

Create a new Callback using the function or closure function and associate it with component.

  • component - The Component associated with the callback.
  • data - Optional user data to pass to the function.
  • function - The function or closure to call when the Component is activated.
Source

pub fn add_component(&mut self, component: &'a dyn Component, data: Option<T>)

Associate another component with the Callback.

  • component - Another Component to associate with the callback.
  • data - Optional user data to pass to the function.

Trait Implementations§

Source§

impl<'a, FN, T: 'a> Drop for Callback<'a, FN, T>
where FN: FnMut(&dyn Component, Option<&T>) + 'a,

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<'a, FN, T> Freeze for Callback<'a, FN, T>
where FN: Freeze,

§

impl<'a, FN, T> !RefUnwindSafe for Callback<'a, FN, T>

§

impl<'a, FN, T> !Send for Callback<'a, FN, T>

§

impl<'a, FN, T> !Sync for Callback<'a, FN, T>

§

impl<'a, FN, T> Unpin for Callback<'a, FN, T>
where FN: Unpin, T: Unpin,

§

impl<'a, FN, T> !UnwindSafe for Callback<'a, FN, T>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.