| Copyright | Will Thompson and Iñaki García Etxebarria |
|---|---|
| License | LGPL-2.1 |
| Maintainer | Iñaki García Etxebarria |
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
GI.Gdk.Objects.Drop
Description
The GdkDrop object represents the target of an ongoing DND operation.
Possible drop sites get informed about the status of the ongoing drag
operation with events of type EventTypeDragEnter, EventTypeDragLeave,
EventTypeDragMotion and EventTypeDropStart. The GdkDrop object can be obtained
from these Event types using dNDEventGetDrop.
The actual data transfer is initiated from the target side via an async
read, using one of the GdkDrop methods for this purpose:
dropReadAsync or dropReadValueAsync.
GTK provides a higher level abstraction based on top of these functions, and so they are not normally needed in GTK applications. See the "Drag and Drop" section of the GTK documentation for more information.
Synopsis
- newtype Drop = Drop (ManagedPtr Drop)
- class (GObject o, IsDescendantOf Drop o) => IsDrop o
- toDrop :: (MonadIO m, IsDrop o) => o -> m Drop
- dropFinish :: (HasCallStack, MonadIO m, IsDrop a) => a -> [DragAction] -> m ()
- dropGetActions :: (HasCallStack, MonadIO m, IsDrop a) => a -> m [DragAction]
- dropGetDevice :: (HasCallStack, MonadIO m, IsDrop a) => a -> m Device
- dropGetDisplay :: (HasCallStack, MonadIO m, IsDrop a) => a -> m Display
- dropGetDrag :: (HasCallStack, MonadIO m, IsDrop a) => a -> m (Maybe Drag)
- dropGetFormats :: (HasCallStack, MonadIO m, IsDrop a) => a -> m ContentFormats
- dropGetSurface :: (HasCallStack, MonadIO m, IsDrop a) => a -> m Surface
- dropReadAsync :: (HasCallStack, MonadIO m, IsDrop a, IsCancellable b) => a -> [Text] -> Int32 -> Maybe b -> Maybe AsyncReadyCallback -> m ()
- dropReadFinish :: (HasCallStack, MonadIO m, IsDrop a, IsAsyncResult b) => a -> b -> m (Maybe InputStream, Text)
- dropReadValueAsync :: (HasCallStack, MonadIO m, IsDrop a, IsCancellable b) => a -> GType -> Int32 -> Maybe b -> Maybe AsyncReadyCallback -> m ()
- dropReadValueFinish :: (HasCallStack, MonadIO m, IsDrop a, IsAsyncResult b) => a -> b -> m GValue
- dropStatus :: (HasCallStack, MonadIO m, IsDrop a) => a -> [DragAction] -> [DragAction] -> m ()
- constructDropActions :: (IsDrop o, MonadIO m) => [DragAction] -> m (GValueConstruct o)
- getDropActions :: (MonadIO m, IsDrop o) => o -> m [DragAction]
- constructDropDevice :: (IsDrop o, MonadIO m, IsDevice a) => a -> m (GValueConstruct o)
- getDropDevice :: (MonadIO m, IsDrop o) => o -> m Device
- getDropDisplay :: (MonadIO m, IsDrop o) => o -> m Display
- constructDropDrag :: (IsDrop o, MonadIO m, IsDrag a) => a -> m (GValueConstruct o)
- getDropDrag :: (MonadIO m, IsDrop o) => o -> m (Maybe Drag)
- constructDropFormats :: (IsDrop o, MonadIO m) => ContentFormats -> m (GValueConstruct o)
- getDropFormats :: (MonadIO m, IsDrop o) => o -> m ContentFormats
- constructDropSurface :: (IsDrop o, MonadIO m, IsSurface a) => a -> m (GValueConstruct o)
- getDropSurface :: (MonadIO m, IsDrop o) => o -> m Surface
Exported types
Memory-managed wrapper type.
Constructors
| Drop (ManagedPtr Drop) |
Instances
| Eq Drop Source # | |
| GObject Drop Source # | |
Defined in GI.Gdk.Objects.Drop | |
| ManagedPtrNewtype Drop Source # | |
Defined in GI.Gdk.Objects.Drop Methods toManagedPtr :: Drop -> ManagedPtr Drop # | |
| TypedObject Drop Source # | |
Defined in GI.Gdk.Objects.Drop | |
| HasParentTypes Drop Source # | |
Defined in GI.Gdk.Objects.Drop | |
| IsGValue (Maybe Drop) Source # | Convert |
Defined in GI.Gdk.Objects.Drop | |
| type ParentTypes Drop Source # | |
Defined in GI.Gdk.Objects.Drop | |
class (GObject o, IsDescendantOf Drop o) => IsDrop o Source #
Instances
| (GObject o, IsDescendantOf Drop o) => IsDrop o Source # | |
Defined in GI.Gdk.Objects.Drop | |
Methods
Click to display all available methods, including inherited ones
Methods
bindProperty, bindPropertyFull, finish, forceFloating, freezeNotify, getv, isFloating, notify, notifyByPspec, readAsync, readFinish, readValueAsync, readValueFinish, ref, refSink, runDispose, status, stealData, stealQdata, thawNotify, unref, watchClosure.
Getters
getActions, getData, getDevice, getDisplay, getDrag, getFormats, getProperty, getQdata, getSurface.
Setters
finish
Arguments
| :: (HasCallStack, MonadIO m, IsDrop a) | |
| => a |
|
| -> [DragAction] |
|
| -> m () |
Ends the drag operation after a drop.
The action must be a single action selected from the actions
available via dropGetActions.
getActions
Arguments
| :: (HasCallStack, MonadIO m, IsDrop a) | |
| => a |
|
| -> m [DragAction] | Returns: The possible |
Returns the possible actions for this GdkDrop.
If this value contains multiple actions - i.e.
[funcgdk.DragAction.is_unique] returns False for the result -
dropFinish must choose the action to use when
accepting the drop. This will only happen if you passed
DragActionAsk as one of the possible actions in
dropStatus. DragActionAsk itself will not
be included in the actions returned by this function.
This value may change over the lifetime of the Drop
both as a response to source side actions as well as to calls to
dropStatus or dropFinish. The source
side will not change this value anymore once a drop has started.
getDevice
Arguments
| :: (HasCallStack, MonadIO m, IsDrop a) | |
| => a |
|
| -> m Device | Returns: The |
Returns the GdkDevice performing the drop.
getDisplay
Arguments
| :: (HasCallStack, MonadIO m, IsDrop a) | |
| => a |
|
| -> m Display | Returns: a |
Gets the GdkDisplay that self was created for.
getDrag
Arguments
| :: (HasCallStack, MonadIO m, IsDrop a) | |
| => a |
|
| -> m (Maybe Drag) | Returns: the corresponding |
If this is an in-app drag-and-drop operation, returns the GdkDrag
that corresponds to this drop.
If it is not, Nothing is returned.
getFormats
Arguments
| :: (HasCallStack, MonadIO m, IsDrop a) | |
| => a |
|
| -> m ContentFormats | Returns: The possible |
Returns the GdkContentFormats that the drop offers the data
to be read in.
getSurface
Arguments
| :: (HasCallStack, MonadIO m, IsDrop a) | |
| => a |
|
| -> m Surface | Returns: The |
Returns the GdkSurface performing the drop.
readAsync
Arguments
| :: (HasCallStack, MonadIO m, IsDrop a, IsCancellable b) | |
| => a |
|
| -> [Text] |
|
| -> Int32 |
|
| -> Maybe b |
|
| -> Maybe AsyncReadyCallback |
|
| -> m () |
Asynchronously read the dropped data from a GdkDrop
in a format that complies with one of the mime types.
readFinish
Arguments
| :: (HasCallStack, MonadIO m, IsDrop a, IsAsyncResult b) | |
| => a |
|
| -> b |
|
| -> m (Maybe InputStream, Text) | Returns: the |
Finishes an async drop read operation.
Note that you must not use blocking read calls on the returned stream
in the GTK thread, since some platforms might require communication with
GTK to complete the data transfer. You can use async APIs such as
inputStreamReadBytesAsync.
See dropReadAsync.
readValueAsync
Arguments
| :: (HasCallStack, MonadIO m, IsDrop a, IsCancellable b) | |
| => a |
|
| -> GType |
|
| -> Int32 |
|
| -> Maybe b |
|
| -> Maybe AsyncReadyCallback |
|
| -> m () |
Asynchronously request the drag operation's contents converted
to the given type.
When the operation is finished callback will be called. You must
then call dropReadValueFinish to get the resulting
GValue.
For local drag-and-drop operations that are available in the given
GType, the value will be copied directly. Otherwise, GDK will
try to use contentDeserializeAsync to convert the data.
readValueFinish
Arguments
| :: (HasCallStack, MonadIO m, IsDrop a, IsAsyncResult b) | |
| => a |
|
| -> b |
|
| -> m GValue | Returns: a |
Finishes an async drop read.
See dropReadValueAsync.
status
Arguments
| :: (HasCallStack, MonadIO m, IsDrop a) | |
| => a |
|
| -> [DragAction] |
|
| -> [DragAction] |
|
| -> m () |
Selects all actions that are potentially supported by the destination.
When calling this function, do not restrict the passed in actions to
the ones provided by dropGetActions. Those actions may
change in the future, even depending on the actions you provide here.
The preferred action is a hint to the drag-and-drop mechanism about which
action to use when multiple actions are possible.
This function should be called by drag destinations in response to
EventTypeDragEnter or EventTypeDragMotion events. If the destination does
not yet know the exact actions it supports, it should set any possible
actions first and then later call this function again.
Properties
actions
The possible actions for this drop
constructDropActions :: (IsDrop o, MonadIO m) => [DragAction] -> m (GValueConstruct o) Source #
Construct a GValueConstruct with valid value for the “actions” property. This is rarely needed directly, but it is used by new.
getDropActions :: (MonadIO m, IsDrop o) => o -> m [DragAction] Source #
Get the value of the “actions” property.
When overloading is enabled, this is equivalent to
get drop #actions
device
The GdkDevice performing the drop
constructDropDevice :: (IsDrop o, MonadIO m, IsDevice a) => a -> m (GValueConstruct o) Source #
Construct a GValueConstruct with valid value for the “device” property. This is rarely needed directly, but it is used by new.
getDropDevice :: (MonadIO m, IsDrop o) => o -> m Device Source #
Get the value of the “device” property.
When overloading is enabled, this is equivalent to
get drop #device
display
The GdkDisplay that the drop belongs to.
getDropDisplay :: (MonadIO m, IsDrop o) => o -> m Display Source #
Get the value of the “display” property.
When overloading is enabled, this is equivalent to
get drop #display
drag
The GdkDrag that initiated this drop
constructDropDrag :: (IsDrop o, MonadIO m, IsDrag a) => a -> m (GValueConstruct o) Source #
Construct a GValueConstruct with valid value for the “drag” property. This is rarely needed directly, but it is used by new.
getDropDrag :: (MonadIO m, IsDrop o) => o -> m (Maybe Drag) Source #
Get the value of the “drag” property.
When overloading is enabled, this is equivalent to
get drop #drag
formats
The possible formats that the drop can provide its data in.
constructDropFormats :: (IsDrop o, MonadIO m) => ContentFormats -> m (GValueConstruct o) Source #
Construct a GValueConstruct with valid value for the “formats” property. This is rarely needed directly, but it is used by new.
getDropFormats :: (MonadIO m, IsDrop o) => o -> m ContentFormats Source #
Get the value of the “formats” property.
When overloading is enabled, this is equivalent to
get drop #formats
surface
The GdkSurface the drop happens on
constructDropSurface :: (IsDrop o, MonadIO m, IsSurface a) => a -> m (GValueConstruct o) Source #
Construct a GValueConstruct with valid value for the “surface” property. This is rarely needed directly, but it is used by new.
getDropSurface :: (MonadIO m, IsDrop o) => o -> m Surface Source #
Get the value of the “surface” property.
When overloading is enabled, this is equivalent to
get drop #surface