Class ContentFormats

java.lang.Object
org.javagi.base.ProxyInstance
org.gnome.gdk.ContentFormats
All Implemented Interfaces:
Proxy

@Generated("org.javagi.JavaGI") public class ContentFormats extends ProxyInstance

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 union(ContentFormats), 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 toString() 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 Gdk.ContentFormatsBuilder structure is meant to help in this endeavor.

  • Constructor Details

    • ContentFormats

      public ContentFormats(MemorySegment address)
      Create a ContentFormats proxy instance for the provided memory address.
      Parameters:
      address - the memory address of the native object
    • ContentFormats

      public ContentFormats(@Nullable String @Nullable [] mimeTypes)

      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 Gdk.ContentFormatsBuilder instead.

      Parameters:
      mimeTypes - Pointer to an array of mime types
  • Method Details

    • getType

      public static @Nullable Type getType()
      Get the GType of the ContentFormats class.
      Returns:
      the GType
    • getMemoryLayout

      public static MemoryLayout getMemoryLayout()
      The memory layout of the native struct.
      Returns:
      the memory layout
    • forGtype

      public static ContentFormats forGtype(Type type)
      Creates a new GdkContentFormats for a given GType.
      Parameters:
      type - a GType
      Returns:
      a new GdkContentFormats
    • parse

      public static @Nullable ContentFormats parse(String string)

      Parses the given string into GdkContentFormats and returns the formats.

      Strings printed via toString() can be read in again successfully using this function.

      If string does not describe valid content formats, null is returned.

      Parameters:
      string - the string to parse
      Returns:
      the content formats if string is valid
      Since:
      4.4
    • containGtype

      public boolean containGtype(Type type)
      Checks if a given GType is part of the given formats.
      Parameters:
      type - the GType to search for
      Returns:
      true if the GType was found
    • containMimeType

      public boolean containMimeType(String mimeType)
      Checks if a given mime type is part of the given formats.
      Parameters:
      mimeType - the mime type to search for
      Returns:
      true if the mime_type was found
    • getGtypes

      public @Nullable Type @Nullable [] getGtypes()

      Gets the GTypes included in formats.

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

      Returns:
      G_TYPE_INVALID-terminated array of types included in this ContentFormats
    • getMimeTypes

      public @Nullable String @Nullable [] getMimeTypes()

      Gets the mime types included in formats.

      Note that this ContentFormats may not contain any mime types, in particular when they are empty. In that case null will be returned.

      Returns:
      null-terminated array of interned strings of mime types included in this ContentFormats
    • isEmpty

      public boolean isEmpty()
      Returns whether the content formats contain any formats.
      Returns:
      true if this ContentFormats contains no mime types and no GTypes
      Since:
      4.18
    • match

      public boolean match(ContentFormats second)
      Checks if this ContentFormats and second have any matching formats.
      Parameters:
      second - the GdkContentFormats to intersect with
      Returns:
      true if a matching format was found.
    • matchGtype

      public Type matchGtype(ContentFormats second)

      Finds the first GType from this ContentFormats that is also contained in second.

      If no matching GType is found, G_TYPE_INVALID is returned.

      Parameters:
      second - the GdkContentFormats to intersect with
      Returns:
      The first common GType or G_TYPE_INVALID if none.
    • matchMimeType

      public @Nullable String matchMimeType(ContentFormats second)

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

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

      Parameters:
      second - the GdkContentFormats to intersect with
      Returns:
      The first common mime type or null if none
    • print

      public void print(String string)

      Prints the given this ContentFormats into a string for human consumption.

      The result of this function can later be parsed with parse(String).

      Parameters:
      string - a GString to print into
    • ref

      public ContentFormats ref()
      Increases the reference count of a GdkContentFormats by one.
      Returns:
      the passed in GdkContentFormats.
    • toString

      public String toString()

      Prints the given this ContentFormats into a human-readable string.

      The resulting string can be parsed with parse(String).

      This is a small wrapper around print(String) to help when debugging.

      Overrides:
      toString in class Object
      Returns:
      a new string
    • union

      public ContentFormats union(ContentFormats second)
      Append all missing types from second to first, in the order they had in second.
      Parameters:
      second - the GdkContentFormats to merge from
      Returns:
      a new GdkContentFormats
    • unionDeserializeGtypes

      public ContentFormats unionDeserializeGtypes()
      Add GTypes for mime types in this ContentFormats for which deserializers are registered.
      Returns:
      a new GdkContentFormats
    • unionDeserializeMimeTypes

      public ContentFormats unionDeserializeMimeTypes()
      Add mime types for GTypes in this ContentFormats for which deserializers are registered.
      Returns:
      a new GdkContentFormats
    • unionSerializeGtypes

      public ContentFormats unionSerializeGtypes()
      Add GTypes for the mime types in this ContentFormats for which serializers are registered.
      Returns:
      a new GdkContentFormats
    • unionSerializeMimeTypes

      public ContentFormats unionSerializeMimeTypes()
      Add mime types for GTypes in this ContentFormats for which serializers are registered.
      Returns:
      a new GdkContentFormats
    • unref

      public void unref()

      Decreases the reference count of a GdkContentFormats by one.

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