---
name: "Gtk2::Gdk::Event"
section: "3pm"
platform: "linux"
package: "libgtk2-perl-doc"
version: "2:1.24992-1"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/Gtk2::Gdk::Event"
---

# Gtk2::Gdk::Event(3pm)

wrapper for GdkEvent

## NAME

Gtk2::Gdk::Event - wrapper for GdkEvent

## HIERARCHY

```
  Glib::Boxed
  +----Gtk2::Gdk::Event
```

## EVENT TYPES

- •

  Gtk2::Gdk::Event::Button

- •

  Gtk2::Gdk::Event::Client

- •

  Gtk2::Gdk::Event::Configure

- •

  Gtk2::Gdk::Event::Crossing

- •

  Gtk2::Gdk::Event::DND

- •

  Gtk2::Gdk::Event::Expose

- •

  Gtk2::Gdk::Event::Focus

- •

  Gtk2::Gdk::Event::Key

- •

  Gtk2::Gdk::Event::Motion

- •

  Gtk2::Gdk::Event::NoExpose

- •

  Gtk2::Gdk::Event::Property

- •

  Gtk2::Gdk::Event::Proximity

- •

  Gtk2::Gdk::Event::Scroll

- •

  Gtk2::Gdk::Event::Selection

- •

  Gtk2::Gdk::Event::Setting

- •

  Gtk2::Gdk::Event::Visibility

- •

  Gtk2::Gdk::Event::WindowState

- •

  Gtk2::Gdk::Event::OwnerChange (since gtk+ 2.6)

- •

  Gtk2::Gdk::Event::GrabBroken (since gtk+ 2.8)

## METHODS

### event = Gtk2::Gdk::Event-\>new ($type)

- •

  `$type` (Gtk2::Gdk::EventType)

### double = $event-\>axis ($axis\_use)

- •

  `$axis_use` (Gtk2::Gdk::AxisUse)

### double = $event-\>get\_axis ($axis\_use)

- •

  `$axis_use` (Gtk2::Gdk::AxisUse)

### ($x, $y) = $event-\>coords

### ($x, $y) = $event-\>get\_coords

### event = $event-\>copy

### event or undef = Gtk2::Gdk::Event-\>get

### event or undef = Gtk2::Gdk::Event-\>get\_graphics\_expose ($window)

- •

  `$window` (Gtk2::Gdk::Window)

### Gtk2::Gdk::Event-\>handler\_set ($func, $data=undef)

- •

  `$func` (subroutine) function to get called for each event.

- •

  `$data` (scalar)

Set the function that handles all events from GDK.  GTK+ uses this to dispatch events, and as such this is rarely of use to applications, unless you are implementing completely custom event dispatching (unlikely) or preprocess events somehow and then pass them on to `"Gtk2::main_do_event"`.  As a special case, if *func* is undef, we "reset" the handler by passing the actual C function gtk\_main\_do\_event to GDK, to bypass the Perl marshaling (and take things back up to full speed).

### event or undef = Gtk2::Gdk::Event-\>peek

### Gtk2::Gdk::Event-\>put ($event)

- •

  `$event` (Gtk2::Gdk::Event)

### ($x\_root, $y\_root) = $event-\>root\_coords

### ($x\_root, $y\_root) = $event-\>get\_root\_coords

### screen = $event-\>get\_screen

Since: gtk+ 2.2

### $event-\>set\_screen ($screen)

- •

  `$screen` (Gtk2::Gdk::Screen)

Since: gtk+ 2.2

### boolean = Gtk2::Gdk::Event-\>send\_client\_message ($event, $winid)

- •

  `$event` (Gtk2::Gdk::Event)

- •

  `$winid` (Gtk2::Gdk::NativeWindow)

### boolean = Gtk2::Gdk::Event-\>send\_client\_message\_for\_display ($display, $event, $winid)

- •

  `$display` (Gtk2::Gdk::Display)

- •

  `$event` (Gtk2::Gdk::Event)

- •

  `$winid` (Gtk2::Gdk::NativeWindow)

Since: gtk+ 2.2

### Gtk2::Gdk::Event-\>send\_clientmessage\_toall ($event)

- •

  `$event` (Gtk2::Gdk::Event)

### integer = $event-\>send\_event ($newvalue=0)

- •

  `$newvalue` (integer)

### $modifiertype = $event-\>get\_state

### $modifiertype = $event-\>state

Get *$event*'s state.  Croaks if that event type doesn't have a state.

### $event-\>set\_state ($newstate)

- •

  `$newstate` (Gtk2::Gdk::ModifierType)

### $timestamp = $event-\>get\_time

### $timestamp = $event-\>time

Get *$event*'s time.  If that event type doesn't have a time, or if *$event* is undef, returns GDK\_CURRENT\_TIME, which is 0.

### $event-\>set\_time ($newtime)

- •

  `$newtime` (integer) timestamp

### eventtype = $event-\>type

### window or undef = $event-\>window ($newvalue=undef)

- •

  `$newvalue` (Gtk2::Gdk::Window or undef)

### integer = $event-\>x\_root

### integer = $event-\>y\_root

## ENUMS AND FLAGS

### enum Gtk2::Gdk::AxisUse

- •

  'ignore' / 'GDK\_AXIS\_IGNORE'

- •

  'x' / 'GDK\_AXIS\_X'

- •

  'y' / 'GDK\_AXIS\_Y'

- •

  'pressure' / 'GDK\_AXIS\_PRESSURE'

- •

  'xtilt' / 'GDK\_AXIS\_XTILT'

- •

  'ytilt' / 'GDK\_AXIS\_YTILT'

- •

  'wheel' / 'GDK\_AXIS\_WHEEL'

- •

  'last' / 'GDK\_AXIS\_LAST'

### enum Gtk2::Gdk::EventType

- •

  'nothing' / 'GDK\_NOTHING'

- •

  'delete' / 'GDK\_DELETE'

- •

  'destroy' / 'GDK\_DESTROY'

- •

  'expose' / 'GDK\_EXPOSE'

- •

  'motion-notify' / 'GDK\_MOTION\_NOTIFY'

- •

  'button-press' / 'GDK\_BUTTON\_PRESS'

- •

  '2button-press' / 'GDK\_2BUTTON\_PRESS'

- •

  '3button-press' / 'GDK\_3BUTTON\_PRESS'

- •

  'button-release' / 'GDK\_BUTTON\_RELEASE'

- •

  'key-press' / 'GDK\_KEY\_PRESS'

- •

  'key-release' / 'GDK\_KEY\_RELEASE'

- •

  'enter-notify' / 'GDK\_ENTER\_NOTIFY'

- •

  'leave-notify' / 'GDK\_LEAVE\_NOTIFY'

- •

  'focus-change' / 'GDK\_FOCUS\_CHANGE'

- •

  'configure' / 'GDK\_CONFIGURE'

- •

  'map' / 'GDK\_MAP'

- •

  'unmap' / 'GDK\_UNMAP'

- •

  'property-notify' / 'GDK\_PROPERTY\_NOTIFY'

- •

  'selection-clear' / 'GDK\_SELECTION\_CLEAR'

- •

  'selection-request' / 'GDK\_SELECTION\_REQUEST'

- •

  'selection-notify' / 'GDK\_SELECTION\_NOTIFY'

- •

  'proximity-in' / 'GDK\_PROXIMITY\_IN'

- •

  'proximity-out' / 'GDK\_PROXIMITY\_OUT'

- •

  'drag-enter' / 'GDK\_DRAG\_ENTER'

- •

  'drag-leave' / 'GDK\_DRAG\_LEAVE'

- •

  'drag-motion' / 'GDK\_DRAG\_MOTION'

- •

  'drag-status' / 'GDK\_DRAG\_STATUS'

- •

  'drop-start' / 'GDK\_DROP\_START'

- •

  'drop-finished' / 'GDK\_DROP\_FINISHED'

- •

  'client-event' / 'GDK\_CLIENT\_EVENT'

- •

  'visibility-notify' / 'GDK\_VISIBILITY\_NOTIFY'

- •

  'no-expose' / 'GDK\_NO\_EXPOSE'

- •

  'scroll' / 'GDK\_SCROLL'

- •

  'window-state' / 'GDK\_WINDOW\_STATE'

- •

  'setting' / 'GDK\_SETTING'

- •

  'owner-change' / 'GDK\_OWNER\_CHANGE'

- •

  'grab-broken' / 'GDK\_GRAB\_BROKEN'

- •

  'damage' / 'GDK\_DAMAGE'

- •

  'event-last' / 'GDK\_EVENT\_LAST'

### flags Gtk2::Gdk::ModifierType

- •

  'shift-mask' / 'GDK\_SHIFT\_MASK'

- •

  'lock-mask' / 'GDK\_LOCK\_MASK'

- •

  'control-mask' / 'GDK\_CONTROL\_MASK'

- •

  'mod1-mask' / 'GDK\_MOD1\_MASK'

- •

  'mod2-mask' / 'GDK\_MOD2\_MASK'

- •

  'mod3-mask' / 'GDK\_MOD3\_MASK'

- •

  'mod4-mask' / 'GDK\_MOD4\_MASK'

- •

  'mod5-mask' / 'GDK\_MOD5\_MASK'

- •

  'button1-mask' / 'GDK\_BUTTON1\_MASK'

- •

  'button2-mask' / 'GDK\_BUTTON2\_MASK'

- •

  'button3-mask' / 'GDK\_BUTTON3\_MASK'

- •

  'button4-mask' / 'GDK\_BUTTON4\_MASK'

- •

  'button5-mask' / 'GDK\_BUTTON5\_MASK'

- •

  'super-mask' / 'GDK\_SUPER\_MASK'

- •

  'hyper-mask' / 'GDK\_HYPER\_MASK'

- •

  'meta-mask' / 'GDK\_META\_MASK'

- •

  'release-mask' / 'GDK\_RELEASE\_MASK'

- •

  'modifier-mask' / 'GDK\_MODIFIER\_MASK'

## SEE ALSO

Gtk2, Glib::Boxed

## COPYRIGHT

Copyright (C) 2003-2011 by the gtk2-perl team.

This software is licensed under the LGPL.  See Gtk2 for a full notice.
