class Gdk::ContentProvider

Overview

A Gdk::ContentProvider is used to provide content for the clipboard or for drag-and-drop operations in a number of formats.

To create a Gdk::ContentProvider, use Gdk::ContentProvider#new_for_value or Gdk::ContentProvider#new_for_bytes.

GDK knows how to handle common text and image formats out-of-the-box. See Gdk::ContentSerializer and Gdk::ContentDeserializer if you want to add support for application-specific data formats.

Defined in:

lib/gi-crystal/src/auto/gdk-4.0/content_provider.cr

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from class GObject::Object

==(other : self) ==, bind_property(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags) : GObject::Binding bind_property, bind_property_full(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags, transform_to : GObject::Closure, transform_from : GObject::Closure) : GObject::Binding bind_property_full, data(key : String) : Pointer(Void) | Nil data, finalize finalize, freeze_notify : Nil freeze_notify, getv(names : Enumerable(String), values : Enumerable(_)) : Nil getv, hash(hasher) hash, notify(property_name : String) : Nil notify, notify_by_pspec(pspec : GObject::ParamSpec) : Nil notify_by_pspec, notify_signal notify_signal, property(property_name : String, value : _) : Nil property, qdata(quark : UInt32) : Pointer(Void) | Nil qdata, ref_count : UInt32 ref_count, run_dispose : Nil run_dispose, set_data(key : String, data : Pointer(Void) | Nil) : Nil set_data, set_property(property_name : String, value : _) : Nil set_property, steal_data(key : String) : Pointer(Void) | Nil steal_data, steal_qdata(quark : UInt32) : Pointer(Void) | Nil steal_qdata, thaw_notify : Nil thaw_notify, to_unsafe : Pointer(Void) to_unsafe, watch_closure(closure : GObject::Closure) : Nil watch_closure

Constructor methods inherited from class GObject::Object

cast(obj : GObject::Object) : self cast, new(pointer : Pointer(Void), transfer : GICrystal::Transfer)
new
new
, newv(object_type : UInt64, parameters : Enumerable(GObject::Parameter)) : self newv

Class methods inherited from class GObject::Object

cast?(obj : GObject::Object) : self | Nil cast?, compat_control(what : UInt64, data : Pointer(Void) | Nil) : UInt64 compat_control, g_type : UInt64 g_type, interface_find_property(g_iface : GObject::TypeInterface, property_name : String) : GObject::ParamSpec interface_find_property, interface_list_properties(g_iface : GObject::TypeInterface) : Enumerable(GObject::ParamSpec) interface_list_properties

Macros inherited from class GObject::Object

previous_vfunc(*args) previous_vfunc, previous_vfunc!(*args) previous_vfunc!, signal(signature) signal

Constructor Detail

def self.new #

Initialize a new ContentProvider.


[View source]
def self.new(*, formats : Gdk::ContentFormats | Nil = nil, storable_formats : Gdk::ContentFormats | Nil = nil) #

[View source]
def self.new_for_bytes(mime_type : String, bytes : GLib::Bytes) : self #

Create a content provider that provides the given bytes as data for the given mime_type.


[View source]
def self.new_for_value(value : _) : self #

Create a content provider that provides the given value.


[View source]
def self.new_union(providers : Enumerable(Gdk::ContentProvider) | Nil) : self #

Creates a content provider that represents all the given providers.

Whenever data needs to be written, the union provider will try the given providers in the given order and the first one supporting a format will be chosen to provide it.

This allows an easy way to support providing data in different formats. For example, an image may be provided by its file and by the image contents with a call such as

WARNING ⚠️ The following code is in c ⚠️

gdk_content_provider_new_union ((Gdk::ContentProvider *[2]) {
                                  gdk_content_provider_new_typed (G_TYPE_FILE, file),
                                  gdk_content_provider_new_typed (G_TYPE_TEXTURE, texture)
                                }, 2);

[View source]

Class Method Detail

def self.g_type : UInt64 #

Returns the type id (GType) registered in GLib type system.


[View source]
def self.new_union(*providers : Gdk::ContentProvider) #

[View source]

Instance Method Detail

def ==(other : self) #
Description copied from class Reference

Returns true if this reference is the same as other. Invokes same?.


def content_changed : Nil #

Emits the ::content-changed signal.


[View source]
def content_changed_signal #

[View source]
def formats : Gdk::ContentFormats | Nil #

[View source]
def hash(hasher) #
Description copied from class Reference

See Object#hash(hasher)


def ref_formats : Gdk::ContentFormats #

Gets the formats that the provider can provide its current contents in.


[View source]
def ref_storable_formats : Gdk::ContentFormats #

Gets the formats that the provider suggests other applications to store the data in.

An example of such an application would be a clipboard manager.

This can be assumed to be a subset of Gdk::ContentProvider#ref_formats.


[View source]
def storable_formats : Gdk::ContentFormats | Nil #

[View source]
def value : GObject::Value #

Gets the contents of provider stored in value.

The value will have been initialized to the GType the value should be provided in. This given GType does not need to be listed in the formats returned by Gdk::ContentProvider#ref_formats. However, if the given GType is not supported, this operation can fail and G_IO_ERROR_NOT_SUPPORTED will be reported.


[View source]
def write_mime_type_async(mime_type : String, stream : Gio::OutputStream, io_priority : Int32, cancellable : Gio::Cancellable | Nil, &callback : Gio::AsyncReadyCallback) : Nil #

Asynchronously writes the contents of provider to stream in the given mime_type.

When the operation is finished callback will be called. You must then call Gdk::ContentProvider#write_mime_type_finish to get the result of the operation.

The given mime type does not need to be listed in the formats returned by Gdk::ContentProvider#ref_formats. However, if the given GType is not supported, G_IO_ERROR_NOT_SUPPORTED will be reported.

The given stream will not be closed.


[View source]
def write_mime_type_finish(result : Gio::AsyncResult) : Bool #

Finishes an asynchronous write operation.

See Gdk::ContentProvider#write_mime_type_async.


[View source]