Copyright | Will Thompson and Iñaki García Etxebarria |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria |
Safe Haskell | None |
Language | Haskell2010 |
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.
Instances
Eq Drop Source # | |
GObject Drop Source # | |
Defined in GI.Gdk.Objects.Drop | |
ManagedPtrNewtype Drop Source # | |
Defined in GI.Gdk.Objects.Drop 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 type ParentTypes Drop = '[Object] |
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
:: (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
:: (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
:: (HasCallStack, MonadIO m, IsDrop a) | |
=> a |
|
-> m Device | Returns: The |
Returns the GdkDevice
performing the drop.
getDisplay
:: (HasCallStack, MonadIO m, IsDrop a) | |
=> a |
|
-> m Display | Returns: a |
Gets the GdkDisplay
that self
was created for.
getDrag
:: (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
:: (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
:: (HasCallStack, MonadIO m, IsDrop a) | |
=> a |
|
-> m Surface | Returns: The |
Returns the GdkSurface
performing the drop.
readAsync
:: (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
:: (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
:: (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
:: (HasCallStack, MonadIO m, IsDrop a, IsAsyncResult b) | |
=> a |
|
-> b |
|
-> m GValue | Returns: a |
Finishes an async drop read.
See dropReadValueAsync
.
status
:: (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