objc2-game-controller 0.3.2

Bindings to the GameController framework
Documentation
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ptr::NonNull;
use objc2::__framework_prelude::*;

use crate::*;

extern_protocol!(
    /// [Apple's documentation](https://developer.apple.com/documentation/gamecontroller/gcaxiselement?language=objc)
    #[cfg(feature = "GCPhysicalInputElement")]
    pub unsafe trait GCAxisElement: GCPhysicalInputElement {
        #[cfg(feature = "GCAxisInput")]
        /// The input reporting the value of the axis as the position between a lower and
        /// upper bound, if available.
        #[unsafe(method(absoluteInput))]
        #[unsafe(method_family = none)]
        unsafe fn absoluteInput(&self) -> Option<Retained<ProtocolObject<dyn GCAxisInput>>>;

        #[cfg(feature = "GCRelativeInput")]
        /// The input reporting axis values as the change (delta) since the last event.
        ///
        /// Certain kinds of axis elements are only able to report relative values.  The
        /// tracking of a computer mouse, for example, has no fixed origin - only the
        /// change in position since the last event is reported.  Some freely-rotating
        /// dials may also only report a value indicating which direction the dial was
        /// turned.
        #[unsafe(method(relativeInput))]
        #[unsafe(method_family = none)]
        unsafe fn relativeInput(&self) -> Retained<ProtocolObject<dyn GCRelativeInput>>;
    }
);