pub struct ScrollEvent { /* private fields */ }
Expand description
An event related to a scrolling motion.
GLib type: Shared boxed type with reference counted clone semantics.
Implementations§
Source§impl ScrollEvent
impl ScrollEvent
Sourcepub fn as_ptr(&self) -> *mut GdkScrollEvent
pub fn as_ptr(&self) -> *mut GdkScrollEvent
Return the inner pointer to the underlying C value.
Sourcepub unsafe fn from_glib_ptr_borrow(ptr: &*mut GdkScrollEvent) -> &Self
pub unsafe fn from_glib_ptr_borrow(ptr: &*mut GdkScrollEvent) -> &Self
Borrows the underlying C value.
Source§impl ScrollEvent
impl ScrollEvent
Sourcepub fn deltas(&self) -> (f64, f64)
pub fn deltas(&self) -> (f64, f64)
Extracts the scroll deltas of a scroll event.
The deltas will be zero unless the scroll direction
is ScrollDirection::Smooth
.
For the representation unit of these deltas, see
unit()
.
§Returns
§delta_x
return location for x scroll delta
§delta_y
return location for y scroll delta
Sourcepub fn direction(&self) -> ScrollDirection
pub fn direction(&self) -> ScrollDirection
Sourcepub fn unit(&self) -> ScrollUnit
Available on crate feature v4_8
only.
pub fn unit(&self) -> ScrollUnit
v4_8
only.Extracts the scroll delta unit of a scroll event.
The unit will always be ScrollUnit::Wheel
if the scroll direction is not
ScrollDirection::Smooth
.
§Returns
the scroll unit.
Sourcepub fn is_stop(&self) -> bool
pub fn is_stop(&self) -> bool
Check whether a scroll event is a stop scroll event.
Scroll sequences with smooth scroll information may provide a stop scroll event once the interaction with the device finishes, e.g. by lifting a finger. This stop scroll event is the signal that a widget may trigger kinetic scrolling based on the current velocity.
Stop scroll events always have a delta of 0/0.
§Returns
true
if the event is a scroll stop event
Source§impl ScrollEvent
impl ScrollEvent
Methods from Deref<Target = Event>§
pub const NONE: Option<&'static Event> = None
Sourcepub fn axes(&self) -> Option<Vec<f64>>
pub fn axes(&self) -> Option<Vec<f64>>
Extracts all axis values from an event.
To find out which axes are used, use DeviceTool::axes()
on the device tool returned by device_tool()
.
§Returns
true
on success, otherwise false
§axes
the array of values for all axes
Sourcepub fn axis(&self, axis_use: AxisUse) -> Option<f64>
pub fn axis(&self, axis_use: AxisUse) -> Option<f64>
Extract the axis value for a particular axis use from an event structure.
To find out which axes are used, use DeviceTool::axes()
on the device tool returned by device_tool()
.
§axis_use
the axis use to look for
§Returns
true
if the specified axis was found, otherwise false
§value
location to store the value found
Sourcepub fn device_tool(&self) -> Option<DeviceTool>
pub fn device_tool(&self) -> Option<DeviceTool>
Returns a DeviceTool
representing the tool that
caused the event.
If the was not generated by a device that supports
different tools (such as a tablet), this function will
return None
.
Note: the DeviceTool
will be constant during
the application lifetime, if settings must be stored
persistently across runs, see DeviceTool::serial()
.
§Returns
The current device tool
Sourcepub fn event_sequence(&self) -> EventSequence
pub fn event_sequence(&self) -> EventSequence
Returns the event sequence to which the event belongs.
Related touch events are connected in a sequence. Other events typically don’t have event sequence information.
§Returns
the event sequence that the event belongs to
Sourcepub fn event_type(&self) -> EventType
pub fn event_type(&self) -> EventType
Sourcepub fn history(&self) -> Vec<TimeCoord>
pub fn history(&self) -> Vec<TimeCoord>
Retrieves the history of the device that @self is for, as a list of time and coordinates.
The history includes positions that are not delivered as separate events to the application because they occurred in the same frame as @self.
Note that only motion and scroll events record history, and motion events do it only if one of the mouse buttons is down, or the device has a tool.
§Returns
an array of time and coordinates
Sourcepub fn modifier_state(&self) -> ModifierType
pub fn modifier_state(&self) -> ModifierType
Sourcepub fn is_pointer_emulated(&self) -> bool
pub fn is_pointer_emulated(&self) -> bool
Sourcepub fn position(&self) -> Option<(f64, f64)>
pub fn position(&self) -> Option<(f64, f64)>
Extract the event surface relative x/y coordinates from an event.
This position is in surface coordinates.
§Returns
whether the positions were set
§x
location to put event surface x coordinate
§y
location to put event surface y coordinate
Sourcepub fn time(&self) -> u32
pub fn time(&self) -> u32
Returns the timestamp of @self.
Not all events have timestamps. In that case, this function
returns GDK_CURRENT_TIME
.
§Returns
timestamp field from @self
Returns whether a Event
should trigger a context menu,
according to platform conventions.
The right mouse button typically triggers context menus. On macOS, Control+left mouse button also triggers.
This function should always be used instead of simply checking for
⚠️ The following code is in c ⚠️
event->button == GDK_BUTTON_SECONDARY
§Returns
true
if the event should trigger a context menu.
pub fn is<T: EventKind>(&self) -> bool
pub fn type_(&self) -> Type
pub fn downcast_ref<T: EventKind>(&self) -> Option<&T>
Sourcepub fn angle(&self, event: impl AsRef<Event>) -> Option<f64>
pub fn angle(&self, event: impl AsRef<Event>) -> Option<f64>
Returns the relative angle from @event1 to @event2.
The relative angle is the angle between the X axis and the line through both events’ positions. The rotation direction for positive angles is from the positive X axis towards the positive Y axis.
This assumes that both events have X/Y information.
If not, this function returns false
.
§event1
first Event
§event2
second Event
§Returns
true
if the angle could be calculated.
§angle
return location for the relative angle between both events
Sourcepub fn center(&self, event: impl AsRef<Event>) -> Option<(f64, f64)>
pub fn center(&self, event: impl AsRef<Event>) -> Option<(f64, f64)>
Returns the point halfway between the events’ positions.
This assumes that both events have X/Y information.
If not, this function returns false
.
§event1
first Event
§event2
second Event
§Returns
true
if the center could be calculated.
§x
return location for the X coordinate of the center
§y
return location for the Y coordinate of the center
Trait Implementations§
Source§impl AsRef<Event> for ScrollEvent
impl AsRef<Event> for ScrollEvent
Source§impl Clone for ScrollEvent
impl Clone for ScrollEvent
Source§impl Debug for ScrollEvent
impl Debug for ScrollEvent
Source§impl Deref for ScrollEvent
impl Deref for ScrollEvent
Source§impl EventKind for ScrollEvent
impl EventKind for ScrollEvent
fn event_types() -> &'static [EventType]
Source§impl StaticType for ScrollEvent
impl StaticType for ScrollEvent
Source§fn static_type() -> Type
fn static_type() -> Type
Self
.Auto Trait Implementations§
impl Freeze for ScrollEvent
impl RefUnwindSafe for ScrollEvent
impl !Send for ScrollEvent
impl !Sync for ScrollEvent
impl Unpin for ScrollEvent
impl UnwindSafe for ScrollEvent
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)