EventControllerScroll

class EventControllerScroll(**properties: Any)

Superclasses: EventController, Object

GtkEventControllerScroll is an event controller that handles scroll events.

It is capable of handling both discrete and continuous scroll events from mice or touchpads, abstracting them both with the scroll signal. Deltas in the discrete case are multiples of 1.

In the case of continuous scroll events, GtkEventControllerScroll encloses all scroll emissions between two scroll_begin and scroll_end signals.

The behavior of the event controller can be modified by the flags given at creation time, or modified at a later point through set_flags (e.g. because the scrolling conditions of the widget changed).

The controller can be set up to emit motion for either/both vertical and horizontal scroll events through VERTICAL, HORIZONTAL and BOTH_AXES. If any axis is disabled, the respective scroll delta will be 0. Vertical scroll events will be translated to horizontal motion for the devices incapable of horizontal scrolling.

The event controller can also be forced to emit discrete events on all devices through DISCRETE. This can be used to implement discrete actions triggered through scroll events (e.g. switching across combobox options).

The KINETIC flag toggles the emission of the decelerate signal, emitted at the end of scrolling with two X/Y velocity arguments that are consistent with the motion that was received.

Constructors

class EventControllerScroll
classmethod new(flags: EventControllerScrollFlags) EventController

Creates a new event controller that will handle scroll events.

Parameters:

flags – flags affecting the controller behavior

Methods

class EventControllerScroll
get_flags() EventControllerScrollFlags

Gets the flags conditioning the scroll controller behavior.

get_unit() ScrollUnit

Gets the scroll unit of the last scroll signal received.

Always returns %GDK_SCROLL_UNIT_WHEEL if the DISCRETE flag is set.

Added in version 4.8.

set_flags(flags: EventControllerScrollFlags) None

Sets the flags conditioning scroll controller behavior.

Parameters:

flags – flags affecting the controller behavior

Properties

class EventControllerScroll
props.flags: EventControllerScrollFlags

The flags affecting event controller behavior.

Signals

class EventControllerScroll.signals
decelerate(vel_x: float, vel_y: float) None

Emitted after scroll is finished if the KINETIC flag is set.

vel_x and vel_y express the initial velocity that was imprinted by the scroll events. vel_x and vel_y are expressed in pixels/ms.

Parameters:
  • vel_x – X velocity

  • vel_y – Y velocity

scroll(dx: float, dy: float) bool

Signals that the widget should scroll by the amount specified by dx and dy.

For the representation unit of the deltas, see get_unit.

Parameters:
  • dx – X delta

  • dy – Y delta

scroll_begin() None

Signals that a new scrolling operation has begun.

It will only be emitted on devices capable of it.

scroll_end() None

Signals that a scrolling operation has finished.

It will only be emitted on devices capable of it.