gi-gdk-4.0.4: Gdk bindings
CopyrightWill Thompson and Iñaki García Etxebarria
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria
Safe HaskellSafe-Inferred
LanguageHaskell2010

GI.Gdk.Structs.ContentFormats

Description

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

Exported types

Methods

containGtype

contentFormatsContainGtype Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> ContentFormats

formats: a GdkContentFormats

-> GType

type: the GType to search for

-> m Bool

Returns: True if the GType was found

Checks if a given GType is part of the given formats.

containMimeType

contentFormatsContainMimeType Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> ContentFormats

formats: a GdkContentFormats

-> Text

mimeType: the mime type to search for

-> m Bool

Returns: True if the mime_type was found

Checks if a given mime type is part of the given formats.

getGtypes

contentFormatsGetGtypes Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> ContentFormats

formats: a GdkContentFormats

-> m (Maybe [GType], Word64)

Returns: G_TYPE_INVALID-terminated array of types included in formats

Gets the GTypes included in formats.

Note that formats may not contain any GTypes, in particular when they are empty. In that case Nothing will be returned.

getMimeTypes

contentFormatsGetMimeTypes Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> ContentFormats

formats: a GdkContentFormats

-> m (Maybe [Text], Word64)

Returns: Nothing-terminated array of interned strings of mime types included in formats

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

contentFormatsMatch Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> ContentFormats

first: the primary GdkContentFormats to intersect

-> ContentFormats

second: the GdkContentFormats to intersect with

-> m Bool

Returns: True if a matching format was found.

Checks if first and second have any matching formats.

matchGtype

contentFormatsMatchGtype Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> ContentFormats

first: the primary GdkContentFormats to intersect

-> ContentFormats

second: the GdkContentFormats to intersect with

-> m GType

Returns: The first common GType or G_TYPE_INVALID if none.

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 #

Arguments

:: (HasCallStack, MonadIO m) 
=> ContentFormats

first: the primary GdkContentFormats to intersect

-> ContentFormats

second: the GdkContentFormats to intersect with

-> m (Maybe Text)

Returns: The first common mime type or Nothing if none

Finds the first mime type from first that is also contained in second.

If no matching mime type is found, Nothing is returned.

new

contentFormatsNew Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Maybe [Text]

mimeTypes: Pointer to an array of mime types

-> m ContentFormats

Returns: the new GdkContentFormats.

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 #

Arguments

:: (HasCallStack, MonadIO m) 
=> GType

type: a GType

-> m ContentFormats

Returns: a new GdkContentFormats

Creates a new GdkContentFormats for a given GType.

parse

contentFormatsParse Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Text

string: the string to parse

-> m (Maybe ContentFormats)

Returns: the content formats if string is valid

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

print

contentFormatsPrint Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> ContentFormats

formats: a GdkContentFormats

-> String

string: a GString to print into

-> 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

contentFormatsRef Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> ContentFormats

formats: a GdkContentFormats

-> m ContentFormats

Returns: the passed in GdkContentFormats.

Increases the reference count of a GdkContentFormats by one.

toString

contentFormatsToString Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> ContentFormats

formats: a GdkContentFormats

-> 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

contentFormatsUnion Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> ContentFormats

first: the GdkContentFormats to merge into

-> ContentFormats

second: the GdkContentFormats to merge from

-> m ContentFormats

Returns: a new GdkContentFormats

Append all missing types from second to first, in the order they had in second.

unionDeserializeGtypes

contentFormatsUnionDeserializeGtypes Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> ContentFormats

formats: a GdkContentFormats

-> m ContentFormats

Returns: a new GdkContentFormats

Add GTypes for mime types in formats for which deserializers are registered.

unionDeserializeMimeTypes

contentFormatsUnionDeserializeMimeTypes Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> ContentFormats

formats: a GdkContentFormats

-> m ContentFormats

Returns: a new GdkContentFormats

Add mime types for GTypes in formats for which deserializers are registered.

unionSerializeGtypes

contentFormatsUnionSerializeGtypes Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> ContentFormats

formats: a GdkContentFormats

-> m ContentFormats

Returns: a new GdkContentFormats

Add GTypes for the mime types in formats for which serializers are registered.

unionSerializeMimeTypes

contentFormatsUnionSerializeMimeTypes Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> ContentFormats

formats: a GdkContentFormats

-> m ContentFormats

Returns: a new GdkContentFormats

Add mime types for GTypes in formats for which serializers are registered.

unref

contentFormatsUnref Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> ContentFormats

formats: a GdkContentFormats

-> m () 

Decreases the reference count of a GdkContentFormats by one.

If the resulting reference count is zero, frees the formats.