gtkmm  3.91.0
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:
Inheritance graph
[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::Deviceget_device ()
 Returns the device where the event originated from. More...
 
Glib::RefPtr< const Gdk::Deviceget_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)
 
Eventoperator= (const Event& other)
 
 Event (Event&& other) noexcept
 
Eventoperator= (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::Windowget_window ()
 Returns the window which received the event. More...
 
Glib::RefPtr< const Gdk::Windowget_window () const
 
bool is_send_event () const
 Returns true if the event was sent explicitly (e.g. More...
 
Glib::RefPtr< Screenget_screen ()
 Returns the screen for the event. More...
 
Glib::RefPtr< const Screenget_screen () const
 Returns the screen for the event. More...
 
Glib::RefPtr< Seatget_seat ()
 Returns the Gdk::Seat this event was generated for. More...
 
Glib::RefPtr< const Seatget_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 EventButtonwrap_event (const GdkEventButton*& event)
 Wraps a C event instance without making unnecessary copy when the ownership can not be acquired. More...
 
EventButtonwrap_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...
 

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:

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:

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
gobjectEvent to wrap.
make_a_copyIf 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_useThe axis use to look for.
valueLocation 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
lhsThe left-hand side
rhsThe right-hand side
Gdk::EventButton wrap ( GdkEventButton *  object,
bool  take_copy = false 
)
related

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

Parameters
objectThe C instance.
take_copyFalse 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