pub trait ContentProviderExt: 'static {
    fn content_changed(&self);
    fn formats(&self) -> ContentFormats;
    fn storable_formats(&self) -> ContentFormats;
    fn write_mime_type_async<P: FnOnce(Result<(), Error>) + 'static>(
        mime_type: &str,
        stream: &impl IsA<OutputStream>,
        io_priority: Priority,
        cancellable: Option<&impl IsA<Cancellable>>,
        callback: P
    ); fn write_mime_type_future(
        mime_type: &str,
        stream: &impl IsA<OutputStream> + Clone + 'static,
        io_priority: Priority
    ) -> Pin<Box_<dyn Future<Output = Result<(), Error>> + 'static>>; fn connect_content_changed<F: Fn(&Self) + 'static>(
        f: F
    ) -> SignalHandlerId; fn connect_formats_notify<F: Fn(&Self) + 'static>(
        f: F
    ) -> SignalHandlerId; fn connect_storable_formats_notify<F: Fn(&Self) + 'static>(
        f: F
    ) -> SignalHandlerId; }
Expand description

Trait containing all ContentProvider methods.



Required Methods

Emits the ::content-changed signal.

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


The formats of the provider

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 formats().


The storable formats of the provider

Asynchronously writes the contents of @self 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 formats(). However, if the given GType is not supported, G_IO_ERROR_NOT_SUPPORTED will be reported.

The given @stream will not be closed.


the mime type to provide the data in


the GOutputStream to write to


I/O priority of the request.


optional GCancellable object, None to ignore.


callback to call when the request is satisfied

Emitted whenever the content provided by this provider has changed.