ferroui-base 0.3.0

The base library of FerroUI: the property system, layout, input, styling, media, text, animation, data binding and the compositor
Documentation
use super::raw::IRawInputEventArgs;
use crate::reactive::IObservable;
use std::rc::Rc;

/// Receives input from the windowing subsystem and dispatches it to
/// interested parties for processing.
pub trait IInputManager {
    /// An observable that notifies on each input event received before
    /// `process`.
    fn pre_process(&self) -> Rc<dyn IObservable<Rc<dyn IRawInputEventArgs>>>;

    /// An observable that notifies on each input event received.
    fn process(&self) -> Rc<dyn IObservable<Rc<dyn IRawInputEventArgs>>>;

    /// An observable that notifies on each input event received after
    /// `process`.
    fn post_process(&self) -> Rc<dyn IObservable<Rc<dyn IRawInputEventArgs>>>;

    /// Processes a raw input event.
    fn process_input(&self, e: Rc<dyn IRawInputEventArgs>);
}