class Gtk::EventControllerScroll
Overview
Gtk::EventControllerScroll
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
Gtk::EventControllerScroll::#scroll
signal. Deltas in
the discrete case are multiples of 1.
In the case of continuous scroll events, Gtk::EventControllerScroll
encloses all Gtk::EventControllerScroll::#scroll
emissions
between two [signal@Gtk.EventControllerScroll::scroll-begin] and
[signal@Gtk.EventControllerScroll::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
Gtk::EventControllerScroll#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 %GTK_EVENT_CONTROLLER_SCROLL_VERTICAL,
%GTK_EVENT_CONTROLLER_SCROLL_HORIZONTAL and %GTK_EVENT_CONTROLLER_SCROLL_BOTH_AXES.
If any axis is disabled, the respective Gtk::EventControllerScroll::#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 %GTK_EVENT_CONTROLLER_SCROLL_DISCRETE. This can be used to implement discrete actions triggered through scroll events (e.g. switching across combobox options).
The %GTK_EVENT_CONTROLLER_SCROLL_KINETIC flag toggles the emission of the
Gtk::EventControllerScroll::#decelerate
signal, emitted at the end
of scrolling with two X/Y velocity arguments that are consistent with the
motion that was received.
Defined in:
lib/gi-crystal/src/auto/gtk-4.0/event_controller_scroll.crConstructors
-
.new(flags : Gtk::EventControllerScrollFlags) : self
Creates a new event controller that will handle scroll events.
-
.new
Initialize a new
EventControllerScroll
. - .new(*, flags : Gtk::EventControllerScrollFlags? = nil, name : String? = nil, propagation_limit : Gtk::PropagationLimit? = nil, propagation_phase : Gtk::PropagationPhase? = nil, widget : Gtk::Widget? = nil)
Class Method Summary
-
.g_type : UInt64
Returns the type id (GType) registered in GLib type system.
Instance Method Summary
- #decelerate_signal
-
#flags : Gtk::EventControllerScrollFlags
Gets the flags conditioning the scroll controller behavior.
-
#flags=(flags : Gtk::EventControllerScrollFlags) : Nil
Sets the flags conditioning scroll controller behavior.
- #scroll_begin_signal
- #scroll_end_signal
- #scroll_signal
-
#unit : Gdk::ScrollUnit
Gets the scroll unit of the last
Gtk::EventControllerScroll::#scroll
signal received.
Instance methods inherited from class Gtk::EventController
current_event : Gdk::Event?
current_event,
current_event_device : Gdk::Device?
current_event_device,
current_event_state : Gdk::ModifierType
current_event_state,
current_event_time : UInt32
current_event_time,
name : String?
name,
name=(value : String) : Stringname=(name : String?) : Nil name=, propagation_limit : Gtk::PropagationLimit propagation_limit, propagation_limit=(limit : Gtk::PropagationLimit) : Nil propagation_limit=, propagation_phase : Gtk::PropagationPhase propagation_phase, propagation_phase=(phase : Gtk::PropagationPhase) : Nil propagation_phase=, reset : Nil reset, static_name=(name : String?) : Nil static_name=, widget : Gtk::Widget widget
Constructor methods inherited from class Gtk::EventController
newnew(*, name : String? = nil, propagation_limit : Gtk::PropagationLimit? = nil, propagation_phase : Gtk::PropagationPhase? = nil, widget : Gtk::Widget? = nil) new
Class methods inherited from class Gtk::EventController
g_type : UInt64
g_type
Instance methods inherited from class GObject::Object
bind_property(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags) : GObject::Binding
bind_property,
bind_property_full(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags, transform_to : GObject::Closure, transform_from : GObject::Closure) : GObject::Binding
bind_property_full,
data(key : String) : Pointer(Void)?
data,
finalize
finalize,
freeze_notify : Nil
freeze_notify,
getv(names : Enumerable(String), values : Enumerable(_)) : Nil
getv,
notify(property_name : String) : Nil
notify,
notify_by_pspec(pspec : GObject::ParamSpec) : Nil
notify_by_pspec,
notify_signal
notify_signal,
property(property_name : String, value : _) : Nil
property,
qdata(quark : UInt32) : Pointer(Void)?
qdata,
ref_count : UInt32
ref_count,
run_dispose : Nil
run_dispose,
set_data(key : String, data : Pointer(Void)?) : Nil
set_data,
set_property(property_name : String, value : _) : Nil
set_property,
steal_data(key : String) : Pointer(Void)?
steal_data,
steal_qdata(quark : UInt32) : Pointer(Void)?
steal_qdata,
thaw_notify : Nil
thaw_notify,
to_unsafe : Pointer(Void)
to_unsafe,
watch_closure(closure : GObject::Closure) : Nil
watch_closure
Constructor methods inherited from class GObject::Object
cast(obj : GObject::Object) : self
cast,
cast?(obj : GObject::Object) : self?
cast?,
new(pointer : Pointer(Void), transfer : GICrystal::Transfer)new new, newv(object_type : UInt64, parameters : Enumerable(GObject::Parameter)) : self newv
Class methods inherited from class GObject::Object
compat_control(what : UInt64, data : Pointer(Void)?) : UInt64
compat_control,
g_type : UInt64
g_type,
interface_find_property(g_iface : GObject::TypeInterface, property_name : String) : GObject::ParamSpec
interface_find_property,
interface_list_properties(g_iface : GObject::TypeInterface) : Enumerable(GObject::ParamSpec)
interface_list_properties
Constructor Detail
Creates a new event controller that will handle scroll events.
Class Method Detail
Instance Method Detail
Gets the flags conditioning the scroll controller behavior.
Sets the flags conditioning scroll controller behavior.
Gets the scroll unit of the last
Gtk::EventControllerScroll::#scroll
signal received.
Always returns %GDK_SCROLL_UNIT_WHEEL if the %GTK_EVENT_CONTROLLER_SCROLL_DISCRETE flag is set.