GestureSingle

#GtkGestureSingle is a subclass of #GtkGesture, optimized (although not restricted) for dealing with mouse and single-touch gestures. Under interaction, these gestures stick to the first interacting sequence, which is accessible through gtk.gesture_single.GestureSingle.getCurrentSequence while the gesture is being interacted with.

By default gestures react to both gdk.types.BUTTON_PRIMARY and touch events, gtk.gesture_single.GestureSingle.setTouchOnly can be used to change the touch behavior. Callers may also specify a different mouse button number to interact with through gtk.gesture_single.GestureSingle.setButton, or react to any mouse button by setting 0. While the gesture is active, the button being currently pressed can be known through gtk.gesture_single.GestureSingle.getCurrentButton.

Constructors

this
this(void* ptr, Flag!"Take" take)

Members

Functions

getButton
uint getButton()

Returns the button number gesture listens for, or 0 if gesture reacts to any button press.

getCurrentButton
uint getCurrentButton()

Returns the button number currently interacting with gesture, or 0 if there is none.

getCurrentSequence
gdk.event_sequence.EventSequence getCurrentSequence()

Returns the event sequence currently interacting with gesture. This is only meaningful if gtk.gesture.Gesture.isActive returns true.

getExclusive
bool getExclusive()

Gets whether a gesture is exclusive. For more information, see gtk.gesture_single.GestureSingle.setExclusive.

getTouchOnly
bool getTouchOnly()

Returns true if the gesture is only triggered by touch events.

self
GestureSingle self()

Returns this, for use in with statements.

setButton
void setButton(uint button)

Sets the button number gesture listens to. If non-0, every button press from a different button number will be ignored. Touch events implicitly match with button 1.

setExclusive
void setExclusive(bool exclusive)

Sets whether gesture is exclusive. An exclusive gesture will only handle pointer and "pointer emulated" touch events, so at any given time, there is only one sequence able to interact with those.

setTouchOnly
void setTouchOnly(bool touchOnly)

If touch_only is true, gesture will only handle events of type #GDK_TOUCH_BEGIN, #GDK_TOUCH_UPDATE or #GDK_TOUCH_END. If false, mouse events will be handled too.

Properties

_gType
GType _gType [@property getter]
button
uint button [@property getter]

Get button property.

button
uint button [@property setter]

Set button property.

exclusive
bool exclusive [@property getter]

Get exclusive property.

exclusive
bool exclusive [@property setter]

Set exclusive property.

touchOnly
bool touchOnly [@property getter]

Get touchOnly property.

touchOnly
bool touchOnly [@property setter]

Set touchOnly property.

Static functions

_getGType
GType _getGType()
builder
GestureSingleGidBuilder builder()

Get builder for gtk.gesture_single.GestureSingle

Inherited Members

From Gesture

_getGType
GType _getGType()
_gType
GType _gType [@property getter]
self
Gesture self()

Returns this, for use in with statements.

builder
GestureGidBuilder builder()

Get builder for gtk.gesture.Gesture

nPoints
uint nPoints [@property getter]

Get nPoints property.

window
gdk.window.Window window [@property getter]

Get window property.

window
gdk.window.Window window [@property setter]

Set window property.

getBoundingBox
bool getBoundingBox(gdk.rectangle.Rectangle rect)

If there are touch sequences being currently handled by gesture, this function returns true and fills in rect with the bounding box containing all active touches. Otherwise, false will be returned.

getBoundingBoxCenter
bool getBoundingBoxCenter(double x, double y)

If there are touch sequences being currently handled by gesture, this function returns true and fills in x and y with the center of the bounding box containing all active touches. Otherwise, false will be returned.

getDevice
gdk.device.Device getDevice()

Returns the master #GdkDevice that is currently operating on gesture, or null if the gesture is not being interacted.

getGroup
gtk.gesture.Gesture[] getGroup()

Returns all gestures in the group of gesture

getLastEvent
gdk.event.Event getLastEvent(gdk.event_sequence.EventSequence sequence)

Returns the last event that was processed for sequence.

getLastUpdatedSequence
gdk.event_sequence.EventSequence getLastUpdatedSequence()

Returns the #GdkEventSequence that was last updated on gesture.

getPoint
bool getPoint(gdk.event_sequence.EventSequence sequence, double x, double y)

If sequence is currently being interpreted by gesture, this function returns true and fills in x and y with the last coordinates stored for that event sequence. The coordinates are always relative to the widget allocation.

getSequenceState
gtk.types.EventSequenceState getSequenceState(gdk.event_sequence.EventSequence sequence)

Returns the sequence state, as seen by gesture.

getSequences
gdk.event_sequence.EventSequence[] getSequences()

Returns the list of #GdkEventSequences currently being interpreted by gesture.

getWindow
gdk.window.Window getWindow()

Returns the user-defined window that receives the events handled by gesture. See gtk.gesture.Gesture.setWindow for more information.

group
void group(gtk.gesture.Gesture gesture)

Adds gesture to the same group than group_gesture. Gestures are by default isolated in their own groups.

handlesSequence
bool handlesSequence(gdk.event_sequence.EventSequence sequence)

Returns true if gesture is currently handling events corresponding to sequence.

isActive
bool isActive()

Returns true if the gesture is currently active. A gesture is active meanwhile there are touch sequences interacting with it.

isGroupedWith
bool isGroupedWith(gtk.gesture.Gesture other)

Returns true if both gestures pertain to the same group.

isRecognized
bool isRecognized()

Returns true if the gesture is currently recognized. A gesture is recognized if there are as many interacting touch sequences as required by gesture, and #GtkGesture::check returned true for the sequences being currently interpreted.

setSequenceState
bool setSequenceState(gdk.event_sequence.EventSequence sequence, gtk.types.EventSequenceState state)

Sets the state of sequence in gesture. Sequences start in state #GTK_EVENT_SEQUENCE_NONE, and whenever they change state, they can never go back to that state. Likewise, sequences in state #GTK_EVENT_SEQUENCE_DENIED cannot turn back to a not denied state. With these rules, the lifetime of an event sequence is constrained to the next four:

setState
bool setState(gtk.types.EventSequenceState state)

Sets the state of all sequences that gesture is currently interacting with. See gtk.gesture.Gesture.setSequenceState for more details on sequence states.

setWindow
void setWindow(gdk.window.Window window)

Sets a specific window to receive events about, so gesture will effectively handle only events targeting window, or a child of it. window must pertain to gtk.event_controller.EventController.getWidget.

ungroup
void ungroup()

Separates gesture into an isolated group.

connectBegin
gulong connectBegin(T callback, Flag!"After" after)

Connect to Begin signal.

connectCancel
gulong connectCancel(T callback, Flag!"After" after)

Connect to Cancel signal.

connectEnd
gulong connectEnd(T callback, Flag!"After" after)

Connect to End signal.

connectSequenceStateChanged
gulong connectSequenceStateChanged(T callback, Flag!"After" after)

Connect to SequenceStateChanged signal.

connectUpdate
gulong connectUpdate(T callback, Flag!"After" after)

Connect to Update signal.