package ocgtk

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Wrappers.Content_formats

type t = [ `content_formats ] Gobject.obj

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 class@Gdk.Drag, class@Gdk.Drop, class@Gdk.Clipboard or class@Gdk.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, class@Gdk.ContentSerializer and class@Gdk.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 method@Gdk.ContentFormats.union, 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 method@Gdk.ContentFormats.to_string 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 struct@Gdk.ContentFormatsBuilder structure is meant to help in this endeavor.

val new_ : string array option -> int -> t

Create a new ContentFormats

val new_for_gtype : Gobject.Type.t -> t

Create a new ContentFormats

val union_serialize_mime_types : t -> t

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

val union_serialize_gtypes : t -> t

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

val union_deserialize_mime_types : t -> t

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

val union_deserialize_gtypes : t -> t

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

val union : t -> t -> t

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

val to_string : t -> string

Prints the given @formats into a human-readable string.

The resulting string can be parsed with func@Gdk.ContentFormats.parse.

This is a small wrapper around method@Gdk.ContentFormats.print to help when debugging.

val ref : t -> t

Increases the reference count of a `GdkContentFormats` by one.

val match_mime_type : t -> t -> string option

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

If no matching mime type is found, %NULL is returned.

val match_gtype : t -> t -> Gobject.Type.t

Finds the first `GType` from @first that is also contained in @second.

If no matching `GType` is found, %G_TYPE_INVALID is returned.

val match_ : t -> t -> bool

Checks if @first and @second have any matching formats.

val get_mime_types : t -> string array option * Gsize.t

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 %NULL will be returned.

val get_gtypes : t -> Gobject.Type.t array option * Gsize.t

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 %NULL will be returned.

val contain_mime_type : t -> string -> bool

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

val contain_gtype : t -> Gobject.Type.t -> bool

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

val get_type : unit -> Gobject.Type.t