## GocStyledItem

GocStyledItem — Styled items

## Functions

gboolean | goc_styled_item_set_cairo_line ()
gboolean | goc_styled_item_get_scale_line_width ()
void | goc_styled_item_set_scale_line_width ()

## Types and Values

| GocStyledItem
struct | GocStyledItemClass

## Object Hierarchy

        GObject
        ╰── GocItem
            ╰── GocStyledItem
                ├── GocArc
                ├── GocCircle
                ├── GocEllipse
                ├── GocLine
                ├── GocPath
                ├── GocPolygon
                ├── GocPolyline
                ├── GocRectangle
                ╰── GocText

## Implemented Interfaces

GocStyledItem implements GOStyledObject.

## Description

The virtual base object for canvas items with style.

## Functions

### goc_styled_item_set_cairo_line ()

    gboolean
    goc_styled_item_set_cairo_line (GocStyledItem const *gsi,
                                    cairo_t *cr);

Prepares the cairo context `cr` to draw a line according to the item style and canvas scale. The line width is scaled only if the scale-line-width property is set to `TRUE`. This function calls `go_styled_object_set_cairo_line()`.

If the item drawing used `goc_group_cairo_transform()`, scale-line-width should be `FALSE` to avoid scaling twice, or `go_styled_object_set_cairo_line()` should be called directly instead.

#### Parameters

gsi | GocStyledItem |
cr | cairo_t |

#### Returns

`TRUE` if the line is not invisible

### goc_styled_item_get_scale_line_width ()

    gboolean
    goc_styled_item_get_scale_line_width (GocStyledItem const *gsi);

This function returns `TRUE` if the line width needs to be scaled. It will always return `FALSE` if the line width is 0.

#### Parameters

gsi | GocStyledItem |

#### Returns

whether the line width needs to be scaled.

### goc_styled_item_set_scale_line_width ()

    void
    goc_styled_item_set_scale_line_width (GocStyledItem *gsi,
                                          gboolean scale_line_width);

Sets whether the line width needs to be scaled according to the current canvas resolution and the item transformation. It will be ignored if the line width is 0. Default value is `TRUE`.

#### Parameters

gsi | GocStyledItem |
scale_line_width | boolean |

## Types and Values

### GocStyledItem

    typedef struct _GocStyledItem GocStyledItem;

### struct GocStyledItemClass

    struct GocStyledItemClass {
    	/* virtual */
    	void	  (*init_style)     	(GocStyledItem *item, GOStyle *style);
    	void (*reserved1) (void);
    	void (*reserved2) (void);
    };

#### Members

`init_style` () | style initialization handler. |
`reserved1` () | reserved for future expansion |
`reserved2` () | reserved for future expansion |