pub struct Config {
pub device_id: Option<u32>,
pub device_type: Option<DeviceType>,
pub context: Option<Context>,
pub target: Option<Target>,
pub viewport: Option<Viewport>,
pub dispatch_policy: Option<DispatchPolicy>,
pub scroll_v_range: Option<Axis>,
pub scroll_h_range: Option<Axis>,
pub buttons: Option<Vec<u8>>,
pub relative_motion_range: Option<[Axis; 2]>,
/* private fields */
}
Expand description
A specification for an injector |Device|.
All fields required.
Fields§
§device_id: Option<u32>
An identifier for the pointer device that issues pointer event streams.
device_type: Option<DeviceType>
A characterization of the pointer device.
context: Option<Context>
The scope and coordinate system of the injector |Device|.
Note: To avoid circular injection scenarios, |context| must be a strict ancestor of |target|.
target: Option<Target>
The region where dispatch is attempted for injected events.
Note: To avoid circular injection scenarios, |target| must be a strict descendant of |context|.
viewport: Option<Viewport>
The initial viewport for injected events. Subsequent modifications to the viewport can also be sent synchronously with injected events.
dispatch_policy: Option<DispatchPolicy>
A specification of the UI clients in |target| that may have injected events dispatched to them.
For example, if |dispatch_policy| is |EXCLUSIVE|, then only |target| may have injected events dispatched to it, regardless of other factors, such as surface occlusion by clients inside and outside of |target|.
scroll_v_range: Option<Axis>
Range of vertical scroll values issued by the device.
scroll_h_range: Option<Axis>
Range of horizontal scroll values issued by the device.
Mouse button identifiers issued by the device, in priority order.
The priority order of mouse buttons is a policy choice enacted by the injector.
This priority order is conveyed verbatim to UI clients via
[fuchsia.ui.pointer.MouseDeviceInfo.buttons
], so button priority is shared consistently
between multiple UI clients. For example, to swap the left-side (0x1) and right-side (0x2)
physical buttons from their traditional roles of primary and secondary mouse buttons, the
injector can specify [0x2, 0x1, … ] in this [buttons
] vector.
Note that preserving the physical button ID is also a policy choice. If preserved, a discerning UI client can distinguish between the ground truth (which physical button was pressed) versus the desired interpretation (what priority does that physical button have, on the current system).
relative_motion_range: Option<[Axis; 2]>
Range of X and Y motion by a mouse device.
Trait Implementations§
Source§impl Decode<Config, DefaultFuchsiaResourceDialect> for Config
impl Decode<Config, DefaultFuchsiaResourceDialect> for Config
Source§impl ResourceTypeMarker for Config
impl ResourceTypeMarker for Config
Source§type Borrowed<'a> = &'a mut Config
type Borrowed<'a> = &'a mut Config
Encode<Self>
type cheaply obtainable from &mut Self::Owned
. There are three cases: Read moreSource§fn take_or_borrow<'a>(
value: &'a mut <Self as TypeMarker>::Owned,
) -> Self::Borrowed<'a>
fn take_or_borrow<'a>( value: &'a mut <Self as TypeMarker>::Owned, ) -> Self::Borrowed<'a>
&mut Self::Owned
to Self::Borrowed
. For
HandleBased
types this is “take” (it returns an owned handle and
replaces value
with Handle::invalid
), and for all other types it is
“borrow” (just converts from one reference to another).Source§impl TypeMarker for Config
impl TypeMarker for Config
Source§fn inline_align(_context: Context) -> usize
fn inline_align(_context: Context) -> usize
Source§fn inline_size(_context: Context) -> usize
fn inline_size(_context: Context) -> usize
inline_align
.§fn encode_is_copy() -> bool
fn encode_is_copy() -> bool
Self::Owned
matches the FIDL wire
format and encoding requires no validation. When true, we can optimize
encoding arrays and vectors of Self::Owned
to a single memcpy. Read more§fn decode_is_copy() -> bool
fn decode_is_copy() -> bool
Self::Owned
matches the FIDL wire
format and decoding requires no validation. When true, we can optimize
decoding arrays and vectors of Self::Owned
to a single memcpy.