## GtkEventController GtkEventController — Self-contained handler of series of events |

## Functions

GtkPropagationPhase | gtk_event_controller_get_propagation_phase ()
void | gtk_event_controller_set_propagation_phase ()
gboolean | gtk_event_controller_handle_event ()
GtkWidget * | gtk_event_controller_get_widget ()
void | gtk_event_controller_reset ()

## Properties

GtkPropagationPhase | propagation-phase | Read / Write
GtkWidget * | widget | Read / Write / Construct Only

## Types and Values

| GtkEventController
enum | GtkPropagationPhase

## Object Hierarchy

        GObject
        ╰── GtkEventController
            ├── GtkEventControllerKey
            ├── GtkEventControllerMotion
            ├── GtkEventControllerScroll
            ├── GtkGesture
            ╰── GtkPadController

## Includes

    #include <gtk/gtk.h>

## Description

GtkEventController is a base, low-level implementation for event controllers. Those react to a series of GdkEvents, and possibly trigger actions as a consequence of those.

## Functions

### gtk_event_controller_get_propagation_phase ()

    GtkPropagationPhase
    gtk_event_controller_get_propagation_phase
                                   (GtkEventController *controller);

Gets the propagation phase at which `controller` handles events.

#### Parameters

controller | a GtkEventController |

#### Returns

the propagation phase

Since: 3.14

### gtk_event_controller_set_propagation_phase ()

    void
    gtk_event_controller_set_propagation_phase
                                   (GtkEventController *controller,
                                    GtkPropagationPhase phase);

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. In that phase, the events can be managed by calling `gtk_event_controller_handle_event()`.

#### Parameters

controller | a GtkEventController |
phase | a propagation phase |

Since: 3.14

### gtk_event_controller_handle_event ()

    gboolean
    gtk_event_controller_handle_event (GtkEventController *controller,
                                       const GdkEvent *event);

Feeds an events into `controller` , so it can be interpreted and the controller actions triggered.

#### Parameters

controller | a GtkEventController |
event | a GdkEvent |

#### Returns

`TRUE` if the event was potentially useful to trigger the controller action

Since: 3.14

### gtk_event_controller_get_widget ()

    GtkWidget *
    gtk_event_controller_get_widget (GtkEventController *controller);

Returns the GtkWidget this controller relates to.

#### Parameters

controller | a GtkEventController |

#### Returns

a GtkWidget.

[transfer none]

Since: 3.14

### gtk_event_controller_reset ()

    void
    gtk_event_controller_reset (GtkEventController *controller);

Resets the `controller` to a clean state. Every interaction the controller did through “handle-event” will be dropped at this point.

#### Parameters

controller | a GtkEventController |

Since: 3.14

## Property Details

### The `“propagation-phase”` property

      “propagation-phase”        GtkPropagationPhase

The propagation phase at which this controller will handle events.

Owner: GtkEventController

Flags: Read / Write

Default value: GTK_PHASE_BUBBLE

Since: 3.14

### The `“widget”` property

      “widget”                   GtkWidget *

The widget receiving the GdkEvents that the controller will handle.

Owner: GtkEventController

Flags: Read / Write / Construct Only

Since: 3.14

## See Also

GtkGesture