gi-gtk4-4.0.12: Gtk 4.x bindings

Copyright | Will Thompson and Iñaki García Etxebarria
License | LGPL-2.1
Maintainer | Iñaki García Etxebarria
Safe Haskell | None
Language | Haskell2010

GI.Gtk.Objects.GestureDrag

Contents

- Exported types
- Methods
  - getOffset
  - getStartPoint
  - new
- Signals
  - dragBegin
  - dragEnd
  - dragUpdate

Description

Recognizes drag gestures.

The drag operation itself can be tracked throughout the GestureDrag::dragBegin, GestureDrag::dragUpdate and GestureDrag::dragEnd signals, and the relevant coordinates can be extracted through `gestureDragGetOffset` and `gestureDragGetStartPoint`.

Synopsis

- newtype GestureDrag = GestureDrag (ManagedPtr GestureDrag)
- class (GObject o, IsDescendantOf GestureDrag o) => IsGestureDrag o
- toGestureDrag :: (MonadIO m, IsGestureDrag o) => o -> m GestureDrag
- gestureDragGetOffset :: (HasCallStack, MonadIO m, IsGestureDrag a) => a -> m (Bool, Double, Double)
- gestureDragGetStartPoint :: (HasCallStack, MonadIO m, IsGestureDrag a) => a -> m (Bool, Double, Double)
- gestureDragNew :: (HasCallStack, MonadIO m) => m GestureDrag
- type GestureDragDragBeginCallback = Double -> Double -> IO ()
- afterGestureDragDragBegin :: (IsGestureDrag a, MonadIO m) => a -> ((?self :: a) => GestureDragDragBeginCallback) -> m SignalHandlerId
- onGestureDragDragBegin :: (IsGestureDrag a, MonadIO m) => a -> ((?self :: a) => GestureDragDragBeginCallback) -> m SignalHandlerId
- type GestureDragDragEndCallback = Double -> Double -> IO ()
- afterGestureDragDragEnd :: (IsGestureDrag a, MonadIO m) => a -> ((?self :: a) => GestureDragDragEndCallback) -> m SignalHandlerId
- onGestureDragDragEnd :: (IsGestureDrag a, MonadIO m) => a -> ((?self :: a) => GestureDragDragEndCallback) -> m SignalHandlerId
- type GestureDragDragUpdateCallback = Double -> Double -> IO ()
- afterGestureDragDragUpdate :: (IsGestureDrag a, MonadIO m) => a -> ((?self :: a) => GestureDragDragUpdateCallback) -> m SignalHandlerId
- onGestureDragDragUpdate :: (IsGestureDrag a, MonadIO m) => a -> ((?self :: a) => GestureDragDragUpdateCallback) -> m SignalHandlerId

# Exported types

newtype GestureDrag Source #

Memory-managed wrapper type.

Constructors

GestureDrag (ManagedPtr GestureDrag) |

#### Instances

Instances details

Eq GestureDrag Source # |
Instance details Defined in GI.Gtk.Objects.GestureDrag Methods (==) :: GestureDrag -> GestureDrag -> Bool Source # (/=) :: GestureDrag -> GestureDrag -> Bool Source #
GObject GestureDrag Source # |
Instance details Defined in GI.Gtk.Objects.GestureDrag
ManagedPtrNewtype GestureDrag Source # |
Instance details Defined in GI.Gtk.Objects.GestureDrag Methods toManagedPtr :: GestureDrag -> ManagedPtr GestureDrag Source #
TypedObject GestureDrag Source # |
Instance details Defined in GI.Gtk.Objects.GestureDrag Methods glibType :: IO GType Source #
HasParentTypes GestureDrag Source # |
Instance details Defined in GI.Gtk.Objects.GestureDrag
IsGValue (Maybe GestureDrag) Source # | Convert `GestureDrag` to and from `GValue`. See `toGValue` and `fromGValue`.
Instance details Defined in GI.Gtk.Objects.GestureDrag Methods gvalueGType_ :: IO GType Source # gvalueSet_ :: Ptr GValue -> Maybe GestureDrag -> IO () Source # gvalueGet_ :: Ptr GValue -> IO (Maybe GestureDrag) Source #
type ParentTypes GestureDrag Source # |
Instance details Defined in GI.Gtk.Objects.GestureDrag type ParentTypes GestureDrag = '[GestureSingle, Gesture, EventController, Object]

class (GObject o, IsDescendantOf GestureDrag o) => IsGestureDrag o Source #

Type class for types which can be safely cast to `GestureDrag`, for instance with `toGestureDrag`.

#### Instances

Instances details

(GObject o, IsDescendantOf GestureDrag o) => IsGestureDrag o Source # |
Instance details Defined in GI.Gtk.Objects.GestureDrag

toGestureDrag :: (MonadIO m, IsGestureDrag o) => o -> m GestureDrag Source #

Cast to `GestureDrag`, for types for which this is known to be safe. For general casts, use `castTo`.

# Methods

### Click to display all available methods, including inherited ones

Expand

#### Methods

bindProperty, bindPropertyFull, forceFloating, freezeNotify, getv, group, handlesSequence, isActive, isFloating, isGroupedWith, isRecognized, notify, notifyByPspec, ref, refSink, reset, runDispose, stealData, stealQdata, thawNotify, ungroup, unref, watchClosure.

#### Getters

getBoundingBox, getBoundingBoxCenter, getButton, getCurrentButton, getCurrentEvent, getCurrentEventDevice, getCurrentEventState, getCurrentEventTime, getCurrentSequence, getData, getDevice, getExclusive, getGroup, getLastEvent, getLastUpdatedSequence, getName, getOffset, getPoint, getPropagationLimit, getPropagationPhase, getProperty, getQdata, getSequenceState, getSequences, getStartPoint, getTouchOnly, getWidget.

#### Setters

setButton, setData, setDataFull, setExclusive, setName, setPropagationLimit, setPropagationPhase, setProperty, setSequenceState, setState, setStaticName, setTouchOnly.

## getOffset

gestureDragGetOffset Source #

Arguments

:: (HasCallStack, MonadIO m, IsGestureDrag a) |
=> a | `gesture`: a `GtkGesture`
-> m (Bool, Double, Double) | Returns: `True` if the gesture is active

Gets the offset from the start point.

If the `gesture` is active, this function returns `True` and fills in `x` and `y` with the coordinates of the current point, as an offset to the starting drag point.

## getStartPoint

gestureDragGetStartPoint Source #

Arguments

:: (HasCallStack, MonadIO m, IsGestureDrag a) |
=> a | `gesture`: a `GtkGesture`
-> m (Bool, Double, Double) | Returns: `True` if the gesture is active

Gets the point where the drag started.

If the `gesture` is active, this function returns `True` and fills in `x` and `y` with the drag start coordinates, in widget-relative coordinates.

## new

gestureDragNew Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> m GestureDrag | Returns: a newly created `GtkGestureDrag`

Returns a newly created `GtkGesture` that recognizes drags.

# Signals

## dragBegin

type GestureDragDragBeginCallback Source #

Arguments

= Double | `startX`: X coordinate, relative to the widget allocation
-> Double | `startY`: Y coordinate, relative to the widget allocation
-> IO () |

Emitted whenever dragging starts.

afterGestureDragDragBegin :: (IsGestureDrag a, MonadIO m) => a -> ((?self :: a) => GestureDragDragBeginCallback) -> m SignalHandlerId Source #

Connect a signal handler for the dragBegin signal, to be run after the default handler. When overloading is enabled, this is equivalent to

    after gestureDrag #dragBegin callback

By default the object invoking the signal is not passed to the callback. If you need to access it, you can use the implit `?self` parameter. Note that this requires activating the `ImplicitParams` GHC extension.

onGestureDragDragBegin :: (IsGestureDrag a, MonadIO m) => a -> ((?self :: a) => GestureDragDragBeginCallback) -> m SignalHandlerId Source #

Connect a signal handler for the dragBegin signal, to be run before the default handler. When overloading is enabled, this is equivalent to

    on gestureDrag #dragBegin callback

## dragEnd

type GestureDragDragEndCallback Source #

Arguments

= Double | `offsetX`: X offset, relative to the start point
-> Double | `offsetY`: Y offset, relative to the start point
-> IO () |

Emitted whenever the dragging is finished.

afterGestureDragDragEnd :: (IsGestureDrag a, MonadIO m) => a -> ((?self :: a) => GestureDragDragEndCallback) -> m SignalHandlerId Source #

Connect a signal handler for the dragEnd signal, to be run after the default handler. When overloading is enabled, this is equivalent to

    after gestureDrag #dragEnd callback

By default the object invoking the signal is not passed to the callback. If you need to access it, you can use the implit `?self` parameter. Note that this requires activating the `ImplicitParams` GHC extension.

onGestureDragDragEnd :: (IsGestureDrag a, MonadIO m) => a -> ((?self :: a) => GestureDragDragEndCallback) -> m SignalHandlerId Source #

Connect a signal handler for the dragEnd signal, to be run before the default handler. When overloading is enabled, this is equivalent to

    on gestureDrag #dragEnd callback

## dragUpdate

type GestureDragDragUpdateCallback Source #

Arguments

= Double | `offsetX`: X offset, relative to the start point
-> Double | `offsetY`: Y offset, relative to the start point
-> IO () |

Emitted whenever the dragging point moves.

afterGestureDragDragUpdate :: (IsGestureDrag a, MonadIO m) => a -> ((?self :: a) => GestureDragDragUpdateCallback) -> m SignalHandlerId Source #

Connect a signal handler for the dragUpdate signal, to be run after the default handler. When overloading is enabled, this is equivalent to

    after gestureDrag #dragUpdate callback

By default the object invoking the signal is not passed to the callback. If you need to access it, you can use the implit `?self` parameter. Note that this requires activating the `ImplicitParams` GHC extension.

onGestureDragDragUpdate :: (IsGestureDrag a, MonadIO m) => a -> ((?self :: a) => GestureDragDragUpdateCallback) -> m SignalHandlerId Source #

Connect a signal handler for the dragUpdate signal, to be run before the default handler. When overloading is enabled, this is equivalent to

    on gestureDrag #dragUpdate callback