## GOComponent GOComponent |

## Functions

void | (*GOComponentSaxHandler) ()
GOSnapshotType | go_component_build_snapshot ()
GOComponent * | go_component_duplicate ()
GtkWindow * | go_component_edit ()
void | go_component_emit_changed ()
gboolean | go_component_export_image ()
GOCmdContext * | go_component_get_command_context ()
gboolean | go_component_get_data ()
gboolean | go_component_get_inline ()
char const * | go_component_get_mime_type ()
void | go_component_get_size ()
void const * | go_component_get_snapshot ()
gboolean | go_component_get_use_font_from_app ()
gboolean | go_component_is_editable ()
gboolean | go_component_is_resizable ()
GOComponent * | go_component_new_by_mime_type ()
GOComponent * | go_component_new_from_uri ()
void | go_component_render ()
void | go_component_sax_push_parser ()
void | go_component_set_command_context ()
void | go_component_set_data ()
void | go_component_set_default_command_context ()
void | go_component_set_default_size ()
gboolean | go_component_set_font ()
void | go_component_set_inline ()
void | go_component_set_size ()
void | go_component_set_window ()
void | go_component_set_use_font_from_app ()
void | go_component_stop_editing ()
void | go_component_write_xml_sax ()

## Properties

double | ascent | Read / Write
double | descent | Read / Write
double | height | Read
gboolean | inline | Read / Write
char * | mime-type | Read / Write / Construct Only
double | width | Read / Write

## Signals

void | changed | Run Last

## Types and Values

| GOComponent
| GOComponentClass
enum | GOSnapshotType

## Object Hierarchy

        GObject
        ╰── GOComponent

## Description

## Functions

### GOComponentSaxHandler ()

    void
    (*GOComponentSaxHandler) (GOComponent *component,
                              gpointer user_data);

### go_component_build_snapshot ()

    GOSnapshotType
    go_component_build_snapshot (GOComponent *component);

### go_component_duplicate ()

    GOComponent *
    go_component_duplicate (GOComponent const *component);

Duplicates the component.

#### Parameters

component | a GOComponent |

#### Returns

the duplicated component.

[transfer full]

### go_component_edit ()

    GtkWindow *
    go_component_edit (GOComponent *component);

Opens a top level window editor for the component if it can be edited.

#### Parameters

component | GOComponent |

#### Returns

the editor window or `NULL`.

[transfer none]

### go_component_emit_changed ()

    void
    go_component_emit_changed (GOComponent *component);

### go_component_export_image ()

    gboolean
    go_component_export_image (GOComponent *component,
                               GOImageFormat format,
                               GsfOutput *output,
                               double x_dpi,
                               double y_dpi);

Exports an image of `graph` in given `format` , writing results in a GsfOutput stream. If export format type is a bitmap one, it computes image size with x_dpi, y_dpi and `graph` size (see ``gog_graph_get_size()`` ).

#### Parameters

component | a GOComponent |
format | image format for export |
output | a GsfOutput stream |
x_dpi | x resolution of exported graph |
y_dpi | y resolution of exported graph |

#### Returns

`TRUE` if export succeed.

### go_component_get_command_context ()

    GOCmdContext *
    go_component_get_command_context (GOComponent *component);

#### Parameters

component | GOComponent |

#### Returns

the command context used by the component or the default command context if the argument is NULL.

[transfer none]

### go_component_get_data ()

    gboolean
    go_component_get_data (GOComponent *component,
                           gpointer *data,
                           int *length,
                           GDestroyNotify *clearfunc,
                           gpointer *user_data);

### go_component_get_inline ()

    gboolean
    go_component_get_inline (GOComponent *component);

Returns the in-line or not nature of the component.

#### Parameters

component | a GOComponent |

#### Returns

whether the component is displayed in-line

### go_component_get_mime_type ()

    char const *
    go_component_get_mime_type (GOComponent *component);

### go_component_get_size ()

    void
    go_component_get_size (GOComponent *component,
                           double *width,
                           double *height);

### go_component_get_snapshot ()

    void const *
    go_component_get_snapshot (GOComponent *component,
                               GOSnapshotType *type,
                               size_t *length);

Returns a snapshot is either svg or png format for the component.

#### Parameters

component | GOComponent |
type | GOSnapshotType |
length | where to store the data length |

#### Returns

the snapshot as an arry of bytes.

[transfer none]

### go_component_get_use_font_from_app ()

    gboolean
    go_component_get_use_font_from_app (GOComponent *component);

Returns whether the component should use the font from the calling application or use its own font.

#### Parameters

component | a GOComponent |

#### Returns

whether the component should use the font from the calling application

### go_component_is_editable ()

    gboolean
    go_component_is_editable (GOComponent *component);

### go_component_is_resizable ()

    gboolean
    go_component_is_resizable (GOComponent *component);

### go_component_new_by_mime_type ()

    GOComponent *
    go_component_new_by_mime_type (char const *mime_type);

### go_component_new_from_uri ()

    GOComponent *
    go_component_new_from_uri (char const *uri);

### go_component_render ()

    void
    go_component_render (GOComponent *component,
                         cairo_t *cr,
                         double width,
                         double height);

### go_component_sax_push_parser ()

    void
    go_component_sax_push_parser (GsfXMLIn *xin,
                                  xmlChar const **attrs,
                                  GOComponentSaxHandler handler,
                                  gpointer user_data);

Loads the component from the xml stream. `handler` will be called when done.

#### Parameters

xin | GsfInput |
attrs | the current node attributes. |
handler | GOComponentSaxHandler. | [scope call]
user_data | data to pass to `handler` |

### go_component_set_command_context ()

    void
    go_component_set_command_context (GOComponent *component,
                                      GOCmdContext *cc);

### go_component_set_data ()

    void
    go_component_set_data (GOComponent *component,
                           char const *data,
                           int length);

### go_component_set_default_command_context ()

    void
    go_component_set_default_command_context
                                   (GOCmdContext *cc);

### go_component_set_default_size ()

    void
    go_component_set_default_size (GOComponent *component,
                                   double width,
                                   double ascent,
                                   double descent);

### go_component_set_font ()

    gboolean
    go_component_set_font (GOComponent *component,
                           PangoFontDescription const *desc);

Sets the font the component should use. Not all components will actually changed the font they use.

#### Parameters

component | GOComponent |
desc | PangoFontDescription |

#### Returns

`TRUE` if size changed.

### go_component_set_inline ()

    void
    go_component_set_inline (GOComponent *component,
                             gboolean is_inline);

Sets the in-line or not nature of the component. Default is `FALSE`.

#### Parameters

component | a GOComponent |
is_inline | whether the component should be displayed in-line |

### go_component_set_size ()

    void
    go_component_set_size (GOComponent *component,
                           double width,
                           double height);

### go_component_set_window ()

    void
    go_component_set_window (GOComponent *component,
                             GdkWindow *window);

### go_component_set_use_font_from_app ()

    void
    go_component_set_use_font_from_app (GOComponent *component,
                                        gboolean use_font_from_app);

Sets the source of the font that the component should use. Default is `FALSE`.

#### Parameters

component | a GOComponent |
use_font_from_app | whether the component should use the font from the calling application or use its own font. |

### go_component_stop_editing ()

    void
    go_component_stop_editing (GOComponent *component);

### go_component_write_xml_sax ()

    void
    go_component_write_xml_sax (GOComponent *component,
                                GsfXMLOut *output);

## Types and Values

### GOComponent

    typedef struct _GOComponent GOComponent;

### GOComponentClass

    typedef struct {
    	GObjectClass parent_class;

    	GtkWindow* (*edit) (GOComponent *component);
    	gboolean (*get_data) (GOComponent *component, gpointer *data, int *length,
    			      GDestroyNotify *clearfunc, gpointer *user_data);
    	void (*mime_type_set) (GOComponent* component);
    	void (*set_data) (GOComponent *component);
    	void (*set_default_size) (GOComponent* component);
    	void (*set_size) (GOComponent *component);
    	void (*render) (GOComponent *component, cairo_t *cr,
    			    double width, double height);
    	gboolean (*set_font) (GOComponent *component, PangoFontDescription const *desc);
    } GOComponentClass;

The component base object class.

#### Members

`edit` () | callback for component edition. |
`get_data` () | returns the data embedded in the component. |
`mime_type_set` () | sets the mime type. |
`set_data` () | sets the data embedded in the component. |
`set_default_size` () | sets the default size for the component. |
`set_size` () | sets the requested size. |
`render` () | displays the contents. |
`set_font` () | sets the default font for the component. |

### enum GOSnapshotType

#### Members

GO_SNAPSHOT_NONE | no snapshot. |
GO_SNAPSHOT_SVG | svg snapshot. |
GO_SNAPSHOT_PNG | png snapshot. |

## Property Details

### The `“ascent”` property

      “ascent”                   double

Component ascent.

Owner: GOComponent

Flags: Read / Write

Allowed values: >= 0

Default value: 0

### The `“descent”` property

      “descent”                  double

Component descent.

Owner: GOComponent

Flags: Read / Write

Allowed values: >= 0

Default value: 0

### The `“height”` property

      “height”                   double

Component height.

Owner: GOComponent

Flags: Read

Allowed values: >= 0

Default value: 0

### The `“inline”` property

      “inline”                   gboolean

Whether the component should be displayed in-line.

Owner: GOComponent

Flags: Read / Write

Default value: FALSE

### The `“mime-type”` property

      “mime-type”                char *

mime type of the content of the component.

Owner: GOComponent

Flags: Read / Write / Construct Only

Default value: NULL

### The `“width”` property

      “width”                    double

Component width.

Owner: GOComponent

Flags: Read / Write

Allowed values: >= 0

Default value: 0

## Signal Details

### The `“changed”` signal

    void
    user_function (GOComponent *gocomponent,
                   gpointer     user_data)

Flags: Run Last