## EMailFormatterExtension EMailFormatterExtension |

## Functions

gboolean | e_mail_formatter_extension_format ()
gboolean | e_mail_formatter_extension_has_widget ()
GtkWidget * | e_mail_formatter_extension_get_widget ()

## Types and Values

struct | EMailFormatterExtension

## Object Hierarchy

        GObject
        ╰── EMailFormatterExtension
            ├── EMailFormatterPrintExtension
            ╰── EMailFormatterQuoteExtension

## Description

## Functions

### e_mail_formatter_extension_format ()

    gboolean
    e_mail_formatter_extension_format (EMailFormatterExtension *extension,
                                       EMailFormatter *formatter,
                                       EMailFormatterContext *context,
                                       EMailPart *part,
                                       GOutputStream *stream,
                                       GCancellable *cancellable);

A virtual function reimplemented in all mail formatter extensions. The function formats `part` , generated HTML (or other format that can be displayed to user) and writes it to the `stream` .

When the function is unable to format the `part` (either because it's broken or because it is a different mimetype then the extension is specialized for), the function will return `FALSE` indicating the EMailFormatter, that it should pick another extension.

Implementation of this function must be thread-safe.

#### Parameters

extension | an EMailFormatterExtension |
formatter | an EMailFormatter |
context | an EMailFormatterContext |
part | a EMailPart to be formatter |
stream | a GOutputStream to which the output should be written |
cancellable | (allow-none) a GCancellable |

#### Returns

Returns `TRUE` when the `part` was successfully formatted and data were written to the `stream` , `FALSE` otherwise.

### e_mail_formatter_extension_has_widget ()

    gboolean
    e_mail_formatter_extension_has_widget (EMailFormatterExtension *extension);

Returns whether the extension can provide a GtkWidget.

#### Parameters

extension | an EMailFormatterExtension |

#### Returns

Returns `TRUE` when `extension` reimplements `get_widget()`, `FALSE` otherwise.

### e_mail_formatter_extension_get_widget ()

    GtkWidget *
    e_mail_formatter_extension_get_widget (EMailFormatterExtension *extension,
                                           EMailPartList *context,
                                           EMailPart *part,
                                           GHashTable *params);

A virtual function reimplemented in some mail formatter extensions. The function should construct a GtkWidget for given `part` . The `params` hash table can contain additional parameters listed in the <object> HTML element that has requested the widget.

When `bind_dom_func` is not `NULL`, the callee will set a callback function which should be called when the webpage is completely rendered to setup bindings between DOM events and the widget.

#### Parameters

extension | an EMailFormatterExtension |
part | an EMailPart |
params | a GHashTable |

#### Returns

Returns a GtkWidget or `NULL`, when error occurs or given `extension` does not reimplement this method.

## Types and Values

### struct EMailFormatterExtension

    struct EMailFormatterExtension;

The EMailFormatterExtension is an abstract class for all extensions for EMailFormatter.