class Gtk::EventController

Overview

GtkEventController is the base class for event controllers.

These are ancillary objects associated to widgets, which react to GdkEvents, and possibly trigger actions as a consequence.

Event controllers are added to a widget with Gtk::Widget#add_controller. It is rarely necessary to explicitly remove a controller with Gtk::Widget#remove_controller.

See the chapter on input handling for an overview of the basic concepts, such as the capture and bubble phases of even propagation.

Direct Known Subclasses

Defined in:

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

Constructors

Class Method Summary

Instance Method Summary

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 EventController.


def self.new(*, name : String? = nil, propagation_limit : Gtk::PropagationLimit? = nil, propagation_phase : Gtk::PropagationPhase? = 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 current_event : Gdk::Event? #

Returns the event that is currently being handled by the controller.

At other times, %NULL is returned.


def current_event_device : Gdk::Device? #

Returns the device of the event that is currently being handled by the controller.

At other times, %NULL is returned.


def current_event_state : Gdk::ModifierType #

Returns the modifier state of the event that is currently being handled by the controller.

At other times, 0 is returned.


def current_event_time : UInt32 #

Returns the timestamp of the event that is currently being handled by the controller.

At other times, 0 is returned.


def name : String? #

Gets the name of @controller.


def name=(value : String) : String #

def name=(name : String?) : Nil #

Sets a name on the controller that can be used for debugging.


def propagation_limit : Gtk::PropagationLimit #

Gets the propagation limit of the event controller.


def propagation_limit=(limit : Gtk::PropagationLimit) : Nil #

Sets the event propagation limit on the event controller.

If the limit is set to %GTK_LIMIT_SAME_NATIVE, the controller won't handle events that are targeted at widgets on a different surface, such as popovers.


def propagation_phase : Gtk::PropagationPhase #

Gets the propagation phase at which @controller handles events.


def propagation_phase=(phase : Gtk::PropagationPhase) : Nil #

Sets the propagation phase at which a controller handles events.

If @phase is %GTK_PHASE_NONE, no automatic event handling will be performed, but other additional gesture maintenance will.


def reset : Nil #

Resets the @controller to a clean state.


def widget : Gtk::Widget #

Returns the GtkWidget this controller relates to.