gtkmm: Gdk::EventButton Class Reference

gtkmm 3.91.0

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Related Functions | List of all members
Gdk::EventButton Class Reference

Represents a mouse button press or release event. More...

`#include <gdkmm/event.h>`

Inheritance diagram for Gdk::EventButton:
[legend]

## Public Member Functions
| EventButton ()
| Creates an invalid event object. More...
| EventButton (GdkEventButton* gobject, bool make_a_copy=false)
| Wraps a C event instance. More...
void | swap (EventButton& other) noexcept
GdkEventButton* | gobj ()
| Provides access to the underlying C instance. More...
const GdkEventButton* | gobj () const
| Provides access to the underlying C instance. More...
GdkEventButton* | gobj_copy () const
| Provides access to the underlying C instance. More...
guint32 | get_time () const
| Returns the timestamp of the event in milliseconds. More...
ModifierType | get_state () const
| Returns a bit mask representing the state of the modifier keys (e.g. More...
double | get_x () const
| Returns the X coordinate of the pointer relative to the window. More...
double | get_y () const
| Returns the Y coordinate of the pointer relative to the window. More...
double | get_root_x () const
| Returns the X coordinate of the pointer relative to the root screen. More...
double | get_root_y () const
| Returns the Y coordinate of the pointer relative to the root screen. More...
bool | get_axis (Gdk::AxisUse axis_use, double& value) const
| Extract the axis value for a particular axis use from an event structure. More...
guint | get_button () const
| Returns the number of the button which was pressed or released, numbered from 1 to 5. More...
Glib::RefPtr< Gdk::Device > | get_device ()
| Returns the device where the event originated from. More...
Glib::RefPtr< const Gdk::Device > | get_device () const
guint | get_click_count () const
| Extracts the click count from an event. More...
bool | shall_trigger_context_menu () const
| This function returns whether a Gdk::EventButton should trigger a context menu, according to platform conventions. More...
Public Member Functions inherited from Gdk::Event
| Event ()
| Creates an invalid event object. More...
| Event (GdkEvent* gobject, bool make_a_copy=false)
| Wraps a C event instance. More...
| Event (const Event& other)
Event& | operator= (const Event& other)
| Event (Event&& other) noexcept
Event& | operator= (Event&& other) noexcept
| ~Event () noexcept
void | swap (Event& other) noexcept
GdkEvent* | gobj ()
| Provides access to the underlying C instance. More...
const GdkEvent* | gobj () const
| Provides access to the underlying C instance. More...
GdkEvent* | gobj_copy () const
| Provides access to the underlying C instance. More...
Event::Type | get_event_type () const
| Retrieves the type of the event. More...
Glib::RefPtr< Gdk::Window > | get_window ()
| Returns the window which received the event. More...
Glib::RefPtr< const Gdk::Window > | get_window () const
bool | is_send_event () const
| Returns `true` if the event was sent explicitly (e.g. More...
Glib::RefPtr< Screen > | get_screen ()
| Returns the screen for the event. More...
Glib::RefPtr< const Screen > | get_screen () const
| Returns the screen for the event. More...
Glib::RefPtr< Seat > | get_seat ()
| Returns the Gdk::Seat this event was generated for. More...
Glib::RefPtr< const Seat > | get_seat () const
| Returns the Gdk::Seat this event was generated for. More...
void | put ()
| Appends a copy of the given event onto the front of the event queue for event->any.window’s display, or the default event queue if event->any.window is `nullptr`. More...

## Related Functions
(Note that these are not member functions.)
void | swap (EventButton& lhs, EventButton& rhs) noexcept
const EventButton& | wrap_event (const GdkEventButton*& event)
| Wraps a C event instance without making unnecessary copy when the ownership can not be acquired. More...
EventButton& | wrap_event (GdkEventButton*& event)
| See wrap_event(const GdkEventButton*& event). More...
Gdk::EventButton | wrap (GdkEventButton* object, bool take_copy=false)
| A Glib::wrap() method for this object. More...
Related Functions inherited from Gdk::Event
void | swap (Event& lhs, Event& rhs) noexcept
const Event& | wrap_event (const GdkEvent*& event)
| Wraps a C event instance without making unnecessary copy when the ownership can not be acquired. More...
Event& | wrap_event (GdkEvent*& event)
| See wrap_event(const GdkEvent*& event). More...
Gdk::Event | wrap (GdkEvent* object, bool take_copy=false)
| A Glib::wrap() method for this object. More...

## Additional Inherited Members
Public Types inherited from Gdk::Event
enum | Type { Type::NOTHING = -1, Type::DELETE = 0, Type::DESTROY = 1, Type::EXPOSE = 2, Type::MOTION_NOTIFY = 3, Type::BUTTON_PRESS = 4, Type::DOUBLE_BUTTON_PRESS = 5, Type::TRIPLE_BUTTON_PRESS = 6, Type::BUTTON_RELEASE = 7, Type::KEY_PRESS = 8, Type::KEY_RELEASE = 9, Type::ENTER_NOTIFY = 10, Type::LEAVE_NOTIFY = 11, Type::FOCUS_CHANGE = 12, Type::CONFIGURE = 13, Type::MAP = 14, Type::UNMAP = 15, Type::PROPERTY_NOTIFY = 16, Type::SELECTION_CLEAR = 17, Type::SELECTION_REQUEST = 18, Type::SELECTION_NOTIFY = 19, Type::PROXIMITY_IN = 20, Type::PROXIMITY_OUT = 21, Type::DRAG_ENTER = 22, Type::DRAG_LEAVE = 23, Type::DRAG_MOTION = 24, Type::DRAG_STATUS = 25, Type::DROP_START = 26, Type::DROP_FINISHED = 27, Type::CLIENT_EVENT = 28, Type::VISIBILITY_NOTIFY = 29, Type::SCROLL = 31, Type::WINDOW_STATE = 32, Type::SETTING = 33, Type::OWNER_CHANGE = 34, Type::GRAB_BROKEN = 35, Type::DAMAGE = 36, Type::TOUCH_BEGIN = 37, Type::TOUCH_UPDATE = 38, Type::TOUCH_END = 39, Type::TOUCH_CANCEL = 40, Type::TOUCHPAD_SWIPE = 41, Type::TOUCHPAD_PINCH = 42, Type::PAD_BUTTON_PRESS = 43, Type::PAD_BUTTON_RELEASE = 44, Type::PAD_RING = 45, Type::PAD_STRIP = 46, Type::PAD_GROUP_MODE = 47, Type::EVENT_LAST = 48 }
| Specifies the type of the event. More...
Static Public Member Functions inherited from Gdk::Event
static void | set_show_events (bool show_events)
| Sets whether a trace of received events is output. More...
static bool | get_show_events ()
| Gets whether event debugging output is enabled. More...
static Event | get ()
| Checks all open displays for a Gdk::Event to process,to be processed on, fetching events from the windowing system if necessary. More...
static Event | peek ()
| If there is an event waiting in the event queue of some open display, returns a copy of it. More...
static bool | events_pending ()
| Checks if any events are ready to be processed for any display. More...

## Detailed Description

Represents a mouse button press or release event.

get_event_type() will return one of Gdk::Event::Type::BUTTON_PRESS, Gdk::Event::Type::DOUBLE_BUTTON_PRESS, Gdk::Event::Type::TRIPLE_BUTTON_PRESS or Gdk::Event::Type::BUTTON_RELEASE.

Double and triple-clicks result in a sequence of events being received. For double-clicks the order of events will be:

Gdk::Event::Type::BUTTON_PRESS
Gdk::Event::Type::BUTTON_RELEASE
Gdk::Event::Type::BUTTON_PRESS
Gdk::Event::Type::DOUBLE_BUTTON_PRESS
Gdk::Event::Type::BUTTON_RELEASE

Note that the first click is received just like a normal button press, while the second click results in a Gdk::Event::Type::DOUBLE_BUTTON_PRESS being received just after the Gdk::Event::Type::BUTTON_PRESS.

Triple-clicks are very similar to double-clicks, except that Gdk::Event::Type::TRIPLE_BUTTON_PRESS is inserted after the third click. The order of the events is:

Gdk::Event::Type::BUTTON_PRESS
Gdk::Event::Type::BUTTON_RELEASE
Gdk::Event::Type::BUTTON_PRESS
Gdk::Event::Type::DOUBLE_BUTTON_PRESS
Gdk::Event::Type::BUTTON_RELEASE
Gdk::Event::Type::BUTTON_PRESS
Gdk::Event::Type::TRIPLE_BUTTON_PRESS
Gdk::Event::Type::BUTTON_RELEASE

For a double click to occur, the second button press must occur within 1/4 of a second of the first. For a triple click to occur, the third button press must also occur within 1/2 second of the first button press.

Since gtkmm 3.90:

## Constructor & Destructor Documentation

Gdk::EventButton::EventButton | ( |  | ) |

Creates an invalid event object.

Calling any member functions is undefined behavior.

Gdk::EventButton::EventButton | ( | GdkEventButton * | gobject,
|  | bool | make_a_copy = `false`
| ) |  |
| explicit

Wraps a C event instance.

This constructor either acquires ownership of gobject, or copies it.

Parameters

  gobject | Event to wrap.
  make_a_copy | If `false`, the ownership of gobject is acquired, otherwise, a copy is made.

## Member Function Documentation

bool Gdk::EventButton::get_axis | ( | Gdk::AxisUse | axis_use,
|  | double & | value
| ) |  | const

Extract the axis value for a particular axis use from an event structure.

Parameters

  axis_use | The axis use to look for.
  value | Location to store the value found.

Returns
  `true` if the specified axis was found, otherwise `false`.

guint Gdk::EventButton::get_button | ( |  | ) | const

Returns the number of the button which was pressed or released, numbered from 1 to 5.

Normally button 1 is the left mouse button, 2 is the middle button, and 3 is the right button. On 2-button mice, the middle button can often be simulated by pressing both mouse buttons together

guint Gdk::EventButton::get_click_count | ( |  | ) | const

Extracts the click count from an event.

Returns
  The click count (0..3).

Glib::RefPtr<Gdk::Device> Gdk::EventButton::get_device | ( |  | ) |

Returns the device where the event originated from.

Glib::RefPtr<const Gdk::Device> Gdk::EventButton::get_device | ( |  | ) | const

double Gdk::EventButton::get_root_x | ( |  | ) | const

Returns the X coordinate of the pointer relative to the root screen.

double Gdk::EventButton::get_root_y | ( |  | ) | const

Returns the Y coordinate of the pointer relative to the root screen.

ModifierType Gdk::EventButton::get_state | ( |  | ) | const

Returns a bit mask representing the state of the modifier keys (e.g.

Control, Shift and Alt) and the pointer buttons.

guint32 Gdk::EventButton::get_time | ( |  | ) | const

Returns the timestamp of the event in milliseconds.

double Gdk::EventButton::get_x | ( |  | ) | const

Returns the X coordinate of the pointer relative to the window.

double Gdk::EventButton::get_y | ( |  | ) | const

Returns the Y coordinate of the pointer relative to the window.

GdkEventButton* Gdk::EventButton::gobj | ( |  | ) |
| inline

Provides access to the underlying C instance.

const GdkEventButton* Gdk::EventButton::gobj | ( |  | ) | const
| inline

Provides access to the underlying C instance.

GdkEventButton* Gdk::EventButton::gobj_copy | ( |  | ) | const

Provides access to the underlying C instance.

The caller is responsible for freeing it with gdk_event_free(). Use when directly setting fields in structs.

bool Gdk::EventButton::shall_trigger_context_menu | ( |  | ) | const

This function returns whether a Gdk::EventButton should trigger a context menu, according to platform conventions.

The right mouse button always triggers context menus. Additionally, if Gdk::Keymap::get_modifier_mask() returns a non-0 mask for Gdk::ModifierIntent::CONTEXT_MENU, then the left mouse button will also trigger a context menu if this modifier is pressed.

This function should always be used instead of simply checking for event->button == GDK_BUTTON_SECONDARY.

Since gtkmm 3.4:

Returns
  `true` if the event should trigger a context menu.

void Gdk::EventButton::swap | ( | EventButton& | other | ) |
| noexcept

## Friends And Related Function Documentation

void swap | ( | EventButton& | lhs,
|  | EventButton& | rhs
| ) |  |
| related

Parameters

  lhs | The left-hand side
  rhs | The right-hand side

Gdk::EventButton wrap | ( | GdkEventButton * | object,
|  | bool | take_copy = `false`
| ) |  |
| related

A Glib::wrap() method for this object.

Parameters

  object | The C instance.
  take_copy | False if the result should take ownership of the C instance. True if it should take a new copy.

Returns
  A C++ instance that wraps this C instance.

const EventButton& wrap_event | ( | const GdkEventButton *& | event | ) |
| related

Wraps a C event instance without making unnecessary copy when the ownership can not be acquired.

The event pointer must not be deleted until last usage of the returned instance. Note, that this requirement applies to the pointer itself, in addition to the object it is pointing to.

EventButton& wrap_event | ( | GdkEventButton *& | event | ) |
| related

See wrap_event(const GdkEventButton*& event).