## StDrawingArea

StDrawingArea — A dynamically-sized Cairo drawing area

## Functions

void | st_drawing_area_queue_repaint ()
cairo_t * | st_drawing_area_get_context ()
void | st_drawing_area_get_surface_size ()

## Signals

void | repaint | Run Last

## Types and Values

#define | ST_TYPE_DRAWING_AREA
struct | StDrawingAreaClass
| StDrawingArea

## Object Hierarchy

        GObject
        ╰── GInitiallyUnowned
            ╰── ClutterActor
                ╰── StWidget
                    ╰── StDrawingArea

## Implemented Interfaces

StDrawingArea implements ClutterContainer, ClutterScriptable, ClutterAnimatable and AtkImplementorIface.

## Description

StDrawingArea is similar to ClutterCairoTexture in that it allows drawing via Cairo; the primary difference is that it is dynamically sized. To use, connect to the “repaint” signal, and inside the signal handler, call `st_drawing_area_get_context()` to get the Cairo context to draw to. The “repaint” signal will be emitted by default when the area is resized or the CSS style changes; you can use the `st_drawing_area_queue_repaint()` as well.

## Functions

### st_drawing_area_queue_repaint ()

    void
    st_drawing_area_queue_repaint (StDrawingArea *area);

Will cause the actor to emit a ::repaint signal before it is next drawn to the scene. Useful if some parameters for the area being drawn other than the size or style have changed. Note that `clutter_actor_queue_redraw()` will simply result in the same contents being drawn to the scene again.

#### Parameters

area | the StDrawingArea |

### st_drawing_area_get_context ()

    cairo_t *
    st_drawing_area_get_context (StDrawingArea *area);

Gets the Cairo context to paint to. This function must only be called from a signal hander for the ::repaint signal.

#### Parameters

area | the StDrawingArea |

#### Returns

the Cairo context for the paint operation.

[transfer none]

### st_drawing_area_get_surface_size ()

    void
    st_drawing_area_get_surface_size (StDrawingArea *area,
                                      guint *width,
                                      guint *height);

Gets the size of the cairo surface being painted to, which is equal to the size of the content area of the widget. This function must only be called from a signal hander for the ::repaint signal.

#### Parameters

area | the StDrawingArea |
width | location to store the width of the painted area. | [out]
height | location to store the height of the painted area. | [out]

## Types and Values

### ST_TYPE_DRAWING_AREA

    #define ST_TYPE_DRAWING_AREA (st_drawing_area_get_type ())

### struct StDrawingAreaClass

    struct StDrawingAreaClass {
        StWidgetClass parent_class;

        void (*repaint) (StDrawingArea *area);
    };

### StDrawingArea

    typedef struct _StDrawingArea StDrawingArea;

## Signal Details

### The `“repaint”` signal

    void
    user_function (StDrawingArea *stdrawingarea,
                   gpointer       user_data)

Flags: Run Last