Class GestureSingle
- All Implemented Interfaces:
Proxy
- Direct Known Subclasses:
DragSource, GestureClick, GestureDrag, GestureLongPress, GestureStylus, GestureSwipe
A GtkGesture subclass optimized for singe-touch and mouse gestures.
Under interaction, these gestures stick to the first interacting sequence,
which is accessible through getCurrentSequence()
while the gesture is being interacted with.
By default gestures react to both GDK_BUTTON_PRIMARY and touch events.
setTouchOnly(boolean) can be used to change the
touch behavior. Callers may also specify a different mouse button number
to interact with through setButton(int), or react
to any mouse button by setting it to 0. While the gesture is active, the
button being currently pressed can be known through
getCurrentButton().
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classGestureSingle.Builder<B extends GestureSingle.Builder<B>>Inner class implementing a builder pattern to construct a GObject with properties.static classNested classes/interfaces inherited from class Gesture
Gesture.BeginCallback, Gesture.CancelCallback, Gesture.EndCallback, Gesture.Gesture$Impl, Gesture.GestureClass, Gesture.SequenceStateChangedCallback, Gesture.UpdateCallbackNested classes/interfaces inherited from class EventController
EventController.EventController$Impl, EventController.EventControllerClassNested classes/interfaces inherited from class GObject
GObject.NotifyCallback, GObject.ObjectClass -
Constructor Summary
ConstructorsConstructorDescriptionCreate a new GestureSingle.GestureSingle(MemorySegment address) Create a GestureSingle instance for the provided memory address. -
Method Summary
Modifier and TypeMethodDescriptionprotected GestureSingleasParent()Return this instance as if it were its parent type.static GestureSingle.Builder<? extends GestureSingle.Builder> builder()AGestureSingle.Builderobject constructs aGestureSinglewith the specified properties.intReturns the button number this GestureSingle listens for.intReturns the button number currently interacting withgesture,or 0 if there is none.@Nullable EventSequenceReturns the event sequence currently interacting withgesture.booleanGets whether a gesture is exclusive.static MemoryLayoutThe memory layout of the native struct.booleanReturnstrueif the gesture is only triggered by touch events.static @Nullable TypegetType()Get the GType of the GestureSingle class.voidsetButton(int button) Sets the button number this GestureSingle listens to.voidsetExclusive(boolean exclusive) Sets whether this GestureSingle is exclusive.voidsetTouchOnly(boolean touchOnly) Sets whether to handle only touch events.Methods inherited from class Gesture
emitBegin, emitCancel, emitEnd, emitSequenceStateChanged, emitUpdate, getBoundingBox, getBoundingBoxCenter, getDevice, getGroup, getLastEvent, getLastUpdatedSequence, getPoint, getSequences, getSequenceState, group, handlesSequence, isActive, isGroupedWith, isRecognized, onBegin, onCancel, onEnd, onSequenceStateChanged, onUpdate, setSequenceState, setState, ungroupMethods inherited from class EventController
getCurrentEvent, getCurrentEventDevice, getCurrentEventState, getCurrentEventTime, getName, getPropagationLimit, getPropagationPhase, getWidget, reset, setName, setPropagationLimit, setPropagationPhase, setStaticNameMethods inherited from class GObject
addToggleRef, addWeakPointer, bindProperty, bindProperty, bindProperty, bindPropertyFull, bindPropertyFull, bindPropertyWithClosures, bindPropertyWithClosures, compatControl, connect, connect, connect, constructed, disconnect, dispatchPropertiesChanged, dispose, dupData, dupQdata, emit, emitNotify, finalize_, forceFloating, freezeNotify, get, getData, getProperty, getProperty, getProperty, getQdata, getv, interfaceFindProperty, interfaceInstallProperty, interfaceListProperties, isFloating, newInstance, newInstance, newv, notify, notify, notifyByPspec, onNotify, ref, refSink, removeToggleRef, removeWeakPointer, replaceData, replaceQdata, runDispose, set, setData, setDataFull, setProperty, setProperty, setProperty, setQdata, setQdataFull, setv, stealData, stealQdata, takeRef, thawNotify, unref, watchClosure, weakRef, weakUnref, withPropertiesMethods inherited from class TypeInstance
callParent, callParent, cast, getPrivate, readGClass, writeGClassMethods inherited from class ProxyInstance
equals, handle, hashCode
-
Constructor Details
-
GestureSingle
Create a GestureSingle instance for the provided memory address.- Parameters:
address- the memory address of the native object
-
GestureSingle
public GestureSingle()Create a new GestureSingle.
-
-
Method Details
-
getType
-
getMemoryLayout
The memory layout of the native struct.- Returns:
- the memory layout
-
asParent
Return this instance as if it were its parent type. Comparable to the Javasuperkeyword, but ensures the parent typeclass is also used in native code. -
getButton
public int getButton()Returns the button number this GestureSingle listens for.
If this is 0, the gesture reacts to any button press.
- Returns:
- The button number, or 0 for any button
-
getCurrentButton
public int getCurrentButton()Returns the button number currently interacting withgesture,or 0 if there is none.- Returns:
- The current button number
-
getCurrentSequence
Returns the event sequence currently interacting with
gesture.This is only meaningful if
Gesture.isActive()returnstrue.- Returns:
- the current sequence
-
getExclusive
public boolean getExclusive()Gets whether a gesture is exclusive.
For more information, see
setExclusive(boolean).- Returns:
- Whether the gesture is exclusive
-
getTouchOnly
public boolean getTouchOnly()Returnstrueif the gesture is only triggered by touch events.- Returns:
trueif the gesture only handles touch events
-
setButton
public void setButton(int button) Sets the button number this GestureSingle listens to.
If non-0, every button press from a different button number will be ignored. Touch events implicitly match with button 1.
- Parameters:
button- button number to listen to, or 0 for any button
-
setExclusive
public void setExclusive(boolean exclusive) Sets whether this GestureSingle 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.
- Parameters:
exclusive-trueto make this GestureSingle exclusive
-
setTouchOnly
public void setTouchOnly(boolean touchOnly) Sets whether to handle only touch events.
If
touchOnlyistrue, this GestureSingle will only handle events of typeEventType.TOUCH_BEGIN,EventType.TOUCH_UPDATEorEventType.TOUCH_END. Iffalse, mouse events will be handled too.- Parameters:
touchOnly- whether this GestureSingle handles only touch events
-
builder
AGestureSingle.Builderobject constructs aGestureSinglewith the specified properties. Use the variousset...()methods to set properties, and finish construction withGestureSingle.Builder.build().- Returns:
- the builder object
-