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 |
The GdkContentFormats
structure is used to advertise and negotiate the
format of content.
You will encounter GdkContentFormats
when interacting with objects
controlling operations that pass data between different widgets, window
or application, like Drag
, Drop
,
Clipboard
or ContentProvider
.
GDK supports content in 2 forms: GType
and mime type.
Using GTypes
is meant only for in-process content transfers. Mime types
are meant to be used for data passing both in-process and out-of-process.
The details of how data is passed is described in the documentation of
the actual implementations. To transform between the two forms,
ContentSerializer
and ContentDeserializer
are used.
A GdkContentFormats
describes a set of possible formats content can be
exchanged in. It is assumed that this set is ordered. GTypes
are more
important than mime types. Order between different GTypes
or mime types
is the order they were added in, most important first. Functions that
care about order, such as contentFormatsUnion
, will describe
in their documentation how they interpret that order, though in general the
order of the first argument is considered the primary order of the result,
followed by the order of further arguments.
For debugging purposes, the function contentFormatsToString
exists. It will print a comma-separated list of formats from most important
to least important.
GdkContentFormats
is an immutable struct. After creation, you cannot change
the types it represents. Instead, new GdkContentFormats
have to be created.
The [structgdk
.ContentFormatsBuilder] structure is meant to help in this
endeavor.
Synopsis
- newtype ContentFormats = ContentFormats (ManagedPtr ContentFormats)
- contentFormatsContainGtype :: (HasCallStack, MonadIO m) => ContentFormats -> GType -> m Bool
- contentFormatsContainMimeType :: (HasCallStack, MonadIO m) => ContentFormats -> Text -> m Bool
- contentFormatsGetGtypes :: (HasCallStack, MonadIO m) => ContentFormats -> m (Maybe [GType], Word64)
- contentFormatsGetMimeTypes :: (HasCallStack, MonadIO m) => ContentFormats -> m (Maybe [Text], Word64)
- contentFormatsMatch :: (HasCallStack, MonadIO m) => ContentFormats -> ContentFormats -> m Bool
- contentFormatsMatchGtype :: (HasCallStack, MonadIO m) => ContentFormats -> ContentFormats -> m GType
- contentFormatsMatchMimeType :: (HasCallStack, MonadIO m) => ContentFormats -> ContentFormats -> m (Maybe Text)
- contentFormatsNew :: (HasCallStack, MonadIO m) => Maybe [Text] -> m ContentFormats
- contentFormatsNewForGtype :: (HasCallStack, MonadIO m) => GType -> m ContentFormats
- contentFormatsParse :: (HasCallStack, MonadIO m) => Text -> m (Maybe ContentFormats)
- contentFormatsPrint :: (HasCallStack, MonadIO m) => ContentFormats -> String -> m ()
- contentFormatsRef :: (HasCallStack, MonadIO m) => ContentFormats -> m ContentFormats
- contentFormatsToString :: (HasCallStack, MonadIO m) => ContentFormats -> m Text
- contentFormatsUnion :: (HasCallStack, MonadIO m) => ContentFormats -> ContentFormats -> m ContentFormats
- contentFormatsUnionDeserializeGtypes :: (HasCallStack, MonadIO m) => ContentFormats -> m ContentFormats
- contentFormatsUnionDeserializeMimeTypes :: (HasCallStack, MonadIO m) => ContentFormats -> m ContentFormats
- contentFormatsUnionSerializeGtypes :: (HasCallStack, MonadIO m) => ContentFormats -> m ContentFormats
- contentFormatsUnionSerializeMimeTypes :: (HasCallStack, MonadIO m) => ContentFormats -> m ContentFormats
- contentFormatsUnref :: (HasCallStack, MonadIO m) => ContentFormats -> m ()
Exported types
newtype ContentFormats Source #
Memory-managed wrapper type.
Instances
Eq ContentFormats Source # | |
Defined in GI.Gdk.Structs.ContentFormats (==) :: ContentFormats -> ContentFormats -> Bool # (/=) :: ContentFormats -> ContentFormats -> Bool # | |
GBoxed ContentFormats Source # | |
Defined in GI.Gdk.Structs.ContentFormats | |
ManagedPtrNewtype ContentFormats Source # | |
Defined in GI.Gdk.Structs.ContentFormats | |
TypedObject ContentFormats Source # | |
Defined in GI.Gdk.Structs.ContentFormats | |
HasParentTypes ContentFormats Source # | |
Defined in GI.Gdk.Structs.ContentFormats | |
IsGValue (Maybe ContentFormats) Source # | Convert |
Defined in GI.Gdk.Structs.ContentFormats gvalueGType_ :: IO GType # gvalueSet_ :: Ptr GValue -> Maybe ContentFormats -> IO () # gvalueGet_ :: Ptr GValue -> IO (Maybe ContentFormats) # | |
type ParentTypes ContentFormats Source # | |
Defined in GI.Gdk.Structs.ContentFormats |
Methods
Click to display all available methods, including inherited ones
Methods
containGtype, containMimeType, match, matchGtype, matchMimeType, print, ref, toString, union, unionDeserializeGtypes, unionDeserializeMimeTypes, unionSerializeGtypes, unionSerializeMimeTypes, unref.
Getters
Setters
None.
containGtype
contentFormatsContainGtype Source #
:: (HasCallStack, MonadIO m) | |
=> ContentFormats |
|
-> GType |
|
-> m Bool | Returns: |
Checks if a given GType
is part of the given formats
.
containMimeType
contentFormatsContainMimeType Source #
:: (HasCallStack, MonadIO m) | |
=> ContentFormats |
|
-> Text |
|
-> m Bool | Returns: |
Checks if a given mime type is part of the given formats
.
getGtypes
contentFormatsGetGtypes Source #
:: (HasCallStack, MonadIO m) | |
=> ContentFormats |
|
-> m (Maybe [GType], Word64) | Returns:
|
Gets the GType
s included in formats
.
Note that formats
may not contain any GType
s, in particular when
they are empty. In that case Nothing
will be returned.
getMimeTypes
contentFormatsGetMimeTypes Source #
:: (HasCallStack, MonadIO m) | |
=> ContentFormats |
|
-> m (Maybe [Text], Word64) | Returns:
|
Gets the mime types included in formats
.
Note that formats
may not contain any mime types, in particular
when they are empty. In that case Nothing
will be returned.
match
:: (HasCallStack, MonadIO m) | |
=> ContentFormats |
|
-> ContentFormats |
|
-> m Bool | Returns: |
Checks if first
and second
have any matching formats.
matchGtype
contentFormatsMatchGtype Source #
:: (HasCallStack, MonadIO m) | |
=> ContentFormats |
|
-> ContentFormats |
|
-> m GType | Returns: The first common |
Finds the first GType
from first
that is also contained
in second
.
If no matching GType
is found, G_TYPE_INVALID
is returned.
matchMimeType
contentFormatsMatchMimeType Source #
:: (HasCallStack, MonadIO m) | |
=> ContentFormats |
|
-> ContentFormats |
|
-> m (Maybe Text) | Returns: The first common mime type or |
Finds the first mime type from first
that is also contained
in second
.
If no matching mime type is found, Nothing
is returned.
new
:: (HasCallStack, MonadIO m) | |
=> Maybe [Text] |
|
-> m ContentFormats | Returns: the new |
Creates a new GdkContentFormats
from an array of mime types.
The mime types must be valid and different from each other or the
behavior of the return value is undefined. If you cannot guarantee
this, use [structgdk
.ContentFormatsBuilder] instead.
newForGtype
contentFormatsNewForGtype Source #
:: (HasCallStack, MonadIO m) | |
=> GType |
|
-> m ContentFormats | Returns: a new |
Creates a new GdkContentFormats
for a given GType
.
parse
:: (HasCallStack, MonadIO m) | |
=> Text |
|
-> m (Maybe ContentFormats) | Returns: the content formats if |
Parses the given string
into GdkContentFormats
and
returns the formats.
Strings printed via contentFormatsToString
can be read in again successfully using this function.
If string
does not describe valid content formats, Nothing
is returned.
Since: 4.4
:: (HasCallStack, MonadIO m) | |
=> ContentFormats |
|
-> String |
|
-> m () |
Prints the given formats
into a string for human consumption.
The result of this function can later be parsed with
[funcgdk
.ContentFormats.parse].
ref
:: (HasCallStack, MonadIO m) | |
=> ContentFormats |
|
-> m ContentFormats | Returns: the passed in |
Increases the reference count of a GdkContentFormats
by one.
toString
contentFormatsToString Source #
:: (HasCallStack, MonadIO m) | |
=> ContentFormats |
|
-> m Text | Returns: a new string |
Prints the given formats
into a human-readable string.
The resulting string can be parsed with [funcgdk
.ContentFormats.parse].
This is a small wrapper around contentFormatsPrint
to help when debugging.
union
:: (HasCallStack, MonadIO m) | |
=> ContentFormats |
|
-> ContentFormats |
|
-> m ContentFormats | Returns: a new |
Append all missing types from second
to first
, in the order
they had in second
.
unionDeserializeGtypes
contentFormatsUnionDeserializeGtypes Source #
:: (HasCallStack, MonadIO m) | |
=> ContentFormats |
|
-> m ContentFormats | Returns: a new |
Add GTypes for mime types in formats
for which deserializers are
registered.
unionDeserializeMimeTypes
contentFormatsUnionDeserializeMimeTypes Source #
:: (HasCallStack, MonadIO m) | |
=> ContentFormats |
|
-> m ContentFormats | Returns: a new |
Add mime types for GTypes in formats
for which deserializers are
registered.
unionSerializeGtypes
contentFormatsUnionSerializeGtypes Source #
:: (HasCallStack, MonadIO m) | |
=> ContentFormats |
|
-> m ContentFormats | Returns: a new |
Add GTypes for the mime types in formats
for which serializers are
registered.
unionSerializeMimeTypes
contentFormatsUnionSerializeMimeTypes Source #
:: (HasCallStack, MonadIO m) | |
=> ContentFormats |
|
-> m ContentFormats | Returns: a new |
Add mime types for GTypes in formats
for which serializers are
registered.
unref
:: (HasCallStack, MonadIO m) | |
=> ContentFormats |
|
-> m () |
Decreases the reference count of a GdkContentFormats
by one.
If the resulting reference count is zero, frees the formats.