StDrawingArea

StDrawingArea — A dynamically-sized Cairo drawing area

Synopsis

struct              StDrawingArea;
struct              StDrawingAreaClass;
cairo_t *           st_drawing_area_get_context         (StDrawingArea *area);
void                st_drawing_area_get_surface_size    (StDrawingArea *area,
                                                         guint *width,
                                                         guint *height);
void                st_drawing_area_queue_repaint       (StDrawingArea *area);

Object Hierarchy

  GObject
   +----GInitiallyUnowned
         +----ClutterActor
               +----StWidget
                     +----StDrawingArea

Implemented Interfaces

StDrawingArea implements ClutterContainer, ClutterScriptable, ClutterAnimatable and AtkImplementorIface.

Signals

  "repaint"                                        : Run Last

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.

Details

struct StDrawingArea

struct StDrawingArea;

struct StDrawingAreaClass

struct StDrawingAreaClass {
    StWidgetClass parent_class;

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

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.

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.

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]

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.

area :

the StDrawingArea

Signal Details

The "repaint" signal

void                user_function                      (StDrawingArea *stdrawingarea,
                                                        gpointer       user_data)          : Run Last