pub enum ButtonId {
LeftClick,
RightClick,
MiddleClick,
Back,
Forward,
DpiToggle,
Thumbwheel,
ThumbwheelScrollUp,
ThumbwheelScrollDown,
GestureButton,
}Expand description
One of the user-rebindable hotspots on a Logi mouse. The order matches the
physical layout from front to side; ButtonId::ALL is consumed by the
default-binding generator and the popover trigger list.
Variants§
LeftClick
RightClick
MiddleClick
Back
Forward
DpiToggle
The “ModeShift” button under the wheel — typically used for SmartShift /
DPI cycle. Named DpiToggle for historical reasons.
Thumbwheel
The horizontal thumb wheel’s click. Kept in ButtonId::ALL so its
default still seeds and dispatches when the wheel is diverted, even
though the mouse model surfaces the two rotation directions instead of
the click (see mouse_model::geometry).
ThumbwheelScrollUp
Rotating the thumb wheel “up” (positive rotation). Bound, by default, to
continuous horizontal scroll; see the agent-core watchers-side dispatch.
ThumbwheelScrollDown
Rotating the thumb wheel “down” (negative rotation).
GestureButton
The thumb-pad gesture button on MX-line devices. The press itself fires the bound action; swipe directions are P1.5 territory.
Implementations§
Source§impl ButtonId
impl ButtonId
pub const ALL: [ButtonId; 10]
Whether this button is one the OS hook (macOS CGEventTap / Linux evdev)
remaps: Middle, Back, or Forward. The primary L/R clicks always pass
through (suppressing them would brick the mouse), and the DPI / thumb /
dedicated gesture controls aren’t visible to the OS hook at all (they’re
captured over HID++). These are exactly the buttons that can become an
OS-hook gesture button, so the hook’s remap gate and the gesture-owner
projection share this one definition.
Trait Implementations§
impl Copy for ButtonId
Source§impl<'de> Deserialize<'de> for ButtonId
impl<'de> Deserialize<'de> for ButtonId
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for ButtonId
Source§impl Ord for ButtonId
impl Ord for ButtonId
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialOrd for ButtonId
impl PartialOrd for ButtonId
impl StructuralPartialEq for ButtonId
Auto Trait Implementations§
impl Freeze for ButtonId
impl RefUnwindSafe for ButtonId
impl Send for ButtonId
impl Sync for ButtonId
impl Unpin for ButtonId
impl UnsafeUnpin for ButtonId
impl UnwindSafe for ButtonId
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.