class Gtk::GestureSingle

Overview

Gtk::GestureSingle is a Gtk::Gestures subclass optimized for singe-touch and mouse gestures.

Under interaction, these gestures stick to the first interacting sequence, which is accessible through Gtk::GestureSingle#current_sequence while the gesture is being interacted with.

By default gestures react to both %GDK_BUTTON_PRIMARY and touch events. Gtk::GestureSingle#touch_only= can be used to change the touch behavior. Callers may also specify a different mouse button number to interact with through Gtk::GestureSingle#button=, or react to any mouse button by setting it to 0. While the gesture is active, the button being currently pressed can be known through Gtk::GestureSingle#current_button.

Direct Known Subclasses

Defined in:

lib/gi-crystal/src/auto/gtk-4.0/gesture_single.cr

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from class Gtk::Gesture

begin_signal begin_signal, bounding_box : Gdk::Rectangle bounding_box, bounding_box_center(x : Float64, y : Float64) : Bool bounding_box_center, cancel_signal cancel_signal, device : Gdk::Device? device, end_signal end_signal, group(gesture : Gtk::Gesture) : Nil
group : GLib::List
group
, handles_sequence(sequence : Gdk::EventSequence?) : Bool handles_sequence, is_active : Bool is_active, is_grouped_with(other : Gtk::Gesture) : Bool is_grouped_with, is_recognized : Bool is_recognized, last_event(sequence : Gdk::EventSequence?) : Gdk::Event? last_event, last_updated_sequence : Gdk::EventSequence? last_updated_sequence, n_points : UInt32 n_points, n_points=(value : UInt32) : UInt32 n_points=, point(sequence : Gdk::EventSequence?) : Bool point, sequence_state(sequence : Gdk::EventSequence) : Gtk::EventSequenceState sequence_state, sequence_state_changed_signal sequence_state_changed_signal, sequences : GLib::List sequences, set_sequence_state(sequence : Gdk::EventSequence, state : Gtk::EventSequenceState) : Bool set_sequence_state, state=(state : Gtk::EventSequenceState) : Bool state=, ungroup : Nil ungroup, update_signal update_signal

Constructor methods inherited from class Gtk::Gesture

new
new(*, n_points : UInt32? = nil, name : String? = nil, propagation_limit : Gtk::PropagationLimit? = nil, propagation_phase : Gtk::PropagationPhase? = nil, widget : Gtk::Widget? = nil)
new

Class methods inherited from class Gtk::Gesture

g_type : UInt64 g_type

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) : String
name=(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

new
new(*, 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

def self.new #

Initialize a new GestureSingle.


def self.new(*, button : UInt32? = nil, exclusive : Bool? = nil, n_points : UInt32? = nil, name : String? = nil, propagation_limit : Gtk::PropagationLimit? = nil, propagation_phase : Gtk::PropagationPhase? = nil, touch_only : Bool? = nil, widget : Gtk::Widget? = nil) #

Class Method Detail

def self.g_type : UInt64 #

Returns the type id (GType) registered in GLib type system.


Instance Method Detail

def button : UInt32 #

Returns the button number @gesture listens for.

If this is 0, the gesture reacts to any button press.


def button=(button : UInt32) : Nil #

Sets the button number @gesture listens to.

If non-0, every button press from a different button number will be ignored. Touch events implicitly match with button 1.


def current_button : UInt32 #

Returns the button number currently interacting with @gesture, or 0 if there is none.


def current_sequence : Gdk::EventSequence? #

Returns the event sequence currently interacting with @gesture.

This is only meaningful if Gtk::Gesture#is_active? returns true.


def exclusive : Bool #

Gets whether a gesture is exclusive.

For more information, see Gtk::GestureSingle#exclusive=.


def exclusive=(exclusive : Bool) : Nil #

Sets whether @gesture is exclusive.

An exclusive gesture will only handle pointer and "pointer emulated" touch events, so at any given time, there is only one sequence able to interact with those.


def exclusive? : Bool #

def touch_only : Bool #

Returns true if the gesture is only triggered by touch events.


def touch_only=(touch_only : Bool) : Nil #

Sets whether to handle only touch events.

If @touch_only is true, @gesture will only handle events of type %GDK_TOUCH_BEGIN, %GDK_TOUCH_UPDATE or %GDK_TOUCH_END. If false, mouse events will be handled too.


def touch_only? : Bool #