gi-gdk-4.0.2: Gdk bindings
CopyrightWill Thompson Iñaki García Etxebarria and Jonas Platte
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria
Safe HaskellNone
LanguageHaskell2010

GI.Gdk.Structs.ContentFormats

Description

This section describes the ContentFormats structure that is used to advertise and negotiate the format of content passed between different widgets, windows or applications using for example the clipboard or drag'n'drop.

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.

A ContentFormats 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-seperated formats of formats from most important to least important.

ContentFormats is an immutable struct. After creation, you cannot change the types it represents. Instead, new ContentFormats have to be created. The ContentFormatsBuilder structure is meant to help in this endeavor.

Synopsis

Exported types

Methods

Overloaded methods

containGtype

contentFormatsContainGtype Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> ContentFormats

formats: a ContentFormats

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

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

-> m (Maybe [GType])

Returns: G_TYPE_INVALID-terminated array of types included in formats or Nothing if none.

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 ContentFormats

-> m (Maybe [Text], Word64)

Returns: Nothing-terminated array of interned strings of mime types included in formats or Nothing if none.

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 ContentFormats to intersect

-> ContentFormats

second: the ContentFormats 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 ContentFormats to intersect

-> ContentFormats

second: the ContentFormats 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 ContentFormats to intersect

-> ContentFormats

second: the ContentFormats to intersect with

-> m 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 ContentFormats.

Creates a new ContentFormats 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 ContentFormatsBuilder instead.

newForGtype

contentFormatsNewForGtype Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> GType

type: a $GType

-> m ContentFormats

Returns: a new ContentFormats

Creates a new ContentFormats for a given GType.

print

contentFormatsPrint Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> ContentFormats

formats: a ContentFormats

-> String

string: a String to print into

-> m () 

Prints the given formats into a string for human consumption. This is meant for debugging and logging.

The form of the representation may change at any time and is not guaranteed to stay identical.

ref

contentFormatsRef Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> ContentFormats

formats: a ContentFormats

-> m ContentFormats

Returns: the passed in ContentFormats.

Increases the reference count of a ContentFormats by one.

toString

contentFormatsToString Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> ContentFormats

formats: a ContentFormats

-> m Text

Returns: a new string

Prints the given formats into a human-readable string. This is a small wrapper around contentFormatsPrint to help when debugging.

union

contentFormatsUnion Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> ContentFormats

first: the ContentFormats to merge into

-> ContentFormats

second: the ContentFormats to merge from

-> m ContentFormats

Returns: a new ContentFormats

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 ContentFormats

-> m ContentFormats

Returns: a new ContentFormats

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

unionDeserializeMimeTypes

contentFormatsUnionDeserializeMimeTypes Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> ContentFormats

formats: a ContentFormats

-> m ContentFormats

Returns: a new ContentFormats

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

unionSerializeGtypes

contentFormatsUnionSerializeGtypes Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> ContentFormats

formats: a ContentFormats

-> m ContentFormats

Returns: a new ContentFormats

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

unionSerializeMimeTypes

contentFormatsUnionSerializeMimeTypes Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> ContentFormats

formats: a ContentFormats

-> m ContentFormats

Returns: a new ContentFormats

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

unref

contentFormatsUnref Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> ContentFormats

formats: a ContentFormats

-> m () 

Decreases the reference count of a ContentFormats by one. If the resulting reference count is zero, frees the formats.