Macro gstore::use_state[][src]

macro_rules! use_state {
    (
        $([$field:ident: $t:ty, $setter:ident] = $init:expr),*
    ) => { ... };
}

Defines a state and setter.

use_state! can be used to define a local (for a single gstore component) state variable and a setter to update this value

Example

#[macro_use]
extern crate gstore;
use gtk::prelude::*;

store! {}

use_state! {
    [count: u32, set_count] = 0
}


pub fn counter() -> gtk::ApplicationWindow {
    glib::timeout_add_local(1000, move || {
        // update the local state value each second...
        set_count(count() + 1);
        glib::Continue(true)
    });
    return application_window! {
        children [
            label! {
                properties {
                    // The value of the local state can be read with a getter function
                    label: format!("Count: {}", count())
                    expand: true
                }
            }
        ]
    }
}