//! 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>>;
}
);