## GOComponent

GOComponent —

## Synopsis

    #define     GO_COMPONENT_TYPE
    #define     GO_COMPONENT                    (o)
    #define     IS_GO_COMPONENT                 (o)
                GOComponent;
    GType       go_component_get_type           (void);
    GOComponent* go_component_new_by_type       (GOComponentType const *type);
    GOComponent* go_component_new_by_name       (char const *id);
    GOComponent* go_component_new_by_mime_type  (char const *mime_type);
    void        go_component_set_default_size   (GOComponent *component,
                                                 double width,
                                                 double ascent,
                                                 double descent);
    gboolean    go_component_needs_window       (GOComponent *component);
    void        go_component_set_window         (GOComponent *component,
                                                 GdkWindow *window);
    void        go_component_set_pixbuf         (GOComponent *component,
                                                 GdkPixbuf *pixbuf);
    void        go_component_set_data           (GOComponent *component,
                                                 char const *data,
                                                 int length);
    gboolean    go_component_get_data           (GOComponent *component,
                                                 gpointer *data,
                                                 int *length);
    void        go_component_set_size           (GOComponent *component,
                                                 double width,
                                                 double height);
    void        go_component_draw               (GOComponent *component,
                                                 int width_pixels,
                                                 int height_pixels);
    gboolean    go_component_is_resizable       (GOComponent *component);
    gboolean    go_component_is_editable        (GOComponent *component);
    gboolean    go_component_edit               (GOComponent *component);
    void        go_component_print              (GOComponent *component,
                                                 GnomePrintContext *gpc,
                                                 double width,
                                                 double height);
    void        go_component_emit_changed       (GOComponent *component);
    char*       go_component_export_to_svg      (GOComponent *component);

## Description

## Details

### GO_COMPONENT_TYPE

    #define GO_COMPONENT_TYPE	(go_component_get_type ())

### GO_COMPONENT()

    #define GO_COMPONENT(o)	(G_TYPE_CHECK_INSTANCE_CAST ((o), GO_COMPONENT_TYPE, GOComponent))

`o` : |

### IS_GO_COMPONENT()

    #define IS_GO_COMPONENT(o)	(G_TYPE_CHECK_INSTANCE_TYPE ((o), GO_COMPONENT_TYPE))

`o` : |

### GOComponent

    typedef struct {
    	GObject parent;

    /*protected*/
    	char *mime_type;
    	double width, ascent, descent, height;
    	double default_width, default_ascent, default_descent;
    	gboolean needs_window, resizable, editable;
    	GdkWindow *window;
    	GdkPixbuf *pixbuf;
    } GOComponent;

### go_component_get_type ()

    GType       go_component_get_type           (void);

Returns : |

### go_component_new_by_type ()

    GOComponent* go_component_new_by_type       (GOComponentType const *type);

`type` : |
Returns : |

### go_component_new_by_name ()

    GOComponent* go_component_new_by_name       (char const *id);

`id` : |
Returns : |

### go_component_new_by_mime_type ()

    GOComponent* go_component_new_by_mime_type  (char const *mime_type);

`mime_type` : |
Returns : |

### go_component_set_default_size ()

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

`component` : |
`width` : |
`ascent` : |
`descent` : |

### go_component_needs_window ()

    gboolean    go_component_needs_window       (GOComponent *component);

`component` : |
Returns : |

### go_component_set_window ()

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

`component` : |
`window` : |

### go_component_set_pixbuf ()

    void        go_component_set_pixbuf         (GOComponent *component,
                                                 GdkPixbuf *pixbuf);

`component` : |
`pixbuf` : |

### go_component_set_data ()

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

`component` : |
`data` : |
`length` : |

### go_component_get_data ()

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

`component` : |
`data` : |
`length` : |
Returns : |

### go_component_set_size ()

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

`component` : |
`width` : |
`height` : |

### go_component_draw ()

    void        go_component_draw               (GOComponent *component,
                                                 int width_pixels,
                                                 int height_pixels);

`component` : |
`width_pixels` : |
`height_pixels` : |

### go_component_is_resizable ()

    gboolean    go_component_is_resizable       (GOComponent *component);

`component` : |
Returns : |

### go_component_is_editable ()

    gboolean    go_component_is_editable        (GOComponent *component);

`component` : |
Returns : |

### go_component_edit ()

    gboolean    go_component_edit               (GOComponent *component);

`component` : |
Returns : |

### go_component_print ()

    void        go_component_print              (GOComponent *component,
                                                 GnomePrintContext *gpc,
                                                 double width,
                                                 double height);

`component` : |
`gpc` : |
`width` : |
`height` : |

### go_component_emit_changed ()

    void        go_component_emit_changed       (GOComponent *component);

`component` : |

### go_component_export_to_svg ()

    char*       go_component_export_to_svg      (GOComponent *component);

`component` : |
Returns : |