## GimpPreviewArea

GimpPreviewArea — A general purpose preview widget which caches its pixel data.

## Synopsis

                GimpPreviewArea;
    GtkWidget*  gimp_preview_area_new           (void);
    void        gimp_preview_area_draw          (GimpPreviewArea *area,
                                                 gint x,
                                                 gint y,
                                                 gint width,
                                                 gint height,
                                                 GimpImageType type,
                                                 const guchar *buf,
                                                 gint rowstride);
    void        gimp_preview_area_fill          (GimpPreviewArea *area,
                                                 gint x,
                                                 gint y,
                                                 gint width,
                                                 gint height,
                                                 guchar red,
                                                 guchar green,
                                                 guchar blue);
    void        gimp_preview_area_blend         (GimpPreviewArea *area,
                                                 gint x,
                                                 gint y,
                                                 gint width,
                                                 gint height,
                                                 GimpImageType type,
                                                 const guchar *buf1,
                                                 gint rowstride1,
                                                 const guchar *buf2,
                                                 gint rowstride2,
                                                 guchar opacity);
    void        gimp_preview_area_mask          (GimpPreviewArea *area,
                                                 gint x,
                                                 gint y,
                                                 gint width,
                                                 gint height,
                                                 GimpImageType type,
                                                 const guchar *buf1,
                                                 gint rowstride1,
                                                 const guchar *buf2,
                                                 gint rowstride2,
                                                 const guchar *mask,
                                                 gint rowstride_mask);
    void        gimp_preview_area_set_offsets   (GimpPreviewArea *area,
                                                 gint x,
                                                 gint y);
    void        gimp_preview_area_set_colormap  (GimpPreviewArea *area,
                                                 const guchar *colormap,
                                                 gint num_colors);
    void        gimp_preview_area_set_max_size  (GimpPreviewArea *area,
                                                 gint width,
                                                 gint height);
    void        gimp_preview_area_menu_popup    (GimpPreviewArea *area,
                                                 GdkEventButton *event);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkObject
                   +----GtkWidget
                         +----GtkDrawingArea
                               +----GimpPreviewArea

## Implemented Interfaces

GimpPreviewArea implements AtkImplementorIface.

## Properties

      "check-size"           GimpCheckSize         : Read / Write
      "check-type"           GimpCheckType         : Read / Write

## Description

A general purpose preview widget which caches its pixel data.

## Details

### GimpPreviewArea

    typedef struct _GimpPreviewArea GimpPreviewArea;

### gimp_preview_area_new ()

    GtkWidget*  gimp_preview_area_new           (void);

Creates a new GimpPreviewArea widget.

Returns : | a new GimpPreviewArea widget. Since GIMP 2.2

### gimp_preview_area_draw ()

    void        gimp_preview_area_draw          (GimpPreviewArea *area,
                                                 gint x,
                                                 gint y,
                                                 gint width,
                                                 gint height,
                                                 GimpImageType type,
                                                 const guchar *buf,
                                                 gint rowstride);

Draws `buf` on `area` and queues a redraw on the given rectangle.

Since GIMP 2.2

`area` : | a GimpPreviewArea widget.
`x` : | x offset in preview
`y` : | y offset in preview
`width` : | buffer width
`height` : | buffer height
`type` : | the GimpImageType of `buf`
`buf` : | a guchar buffer that contains the preview pixel data.
`rowstride` : | rowstride of `buf`

### gimp_preview_area_fill ()

    void        gimp_preview_area_fill          (GimpPreviewArea *area,
                                                 gint x,
                                                 gint y,
                                                 gint width,
                                                 gint height,
                                                 guchar red,
                                                 guchar green,
                                                 guchar blue);

Fills `area` in the given color and queues a redraw on the given rectangle.

Since GIMP 2.2

`area` : | a GimpPreviewArea widget.
`x` : | x offset in preview
`y` : | y offset in preview
`width` : | buffer width
`height` : | buffer height
`red` : | red component of the fill color (0-255)
`green` : | green component of the fill color (0-255)
`blue` : | red component of the fill color (0-255)

### gimp_preview_area_blend ()

    void        gimp_preview_area_blend         (GimpPreviewArea *area,
                                                 gint x,
                                                 gint y,
                                                 gint width,
                                                 gint height,
                                                 GimpImageType type,
                                                 const guchar *buf1,
                                                 gint rowstride1,
                                                 const guchar *buf2,
                                                 gint rowstride2,
                                                 guchar opacity);

Composites `buf1` on `buf2` with the given `opacity`, draws the result to `area` and queues a redraw on the given rectangle.

Since GIMP 2.2

`area` : | a GimpPreviewArea widget.
`x` : | x offset in preview
`y` : | y offset in preview
`width` : | buffer width
`height` : | buffer height
`type` : | the GimpImageType of `buf1` and `buf2`
`buf1` : | a guchar buffer that contains the pixel data for the lower layer
`rowstride1` : | rowstride of `buf1`
`buf2` : | a guchar buffer that contains the pixel data for the upper layer
`rowstride2` : | rowstride of `buf2`
`opacity` : | The opacity of the first layer.

### gimp_preview_area_mask ()

    void        gimp_preview_area_mask          (GimpPreviewArea *area,
                                                 gint x,
                                                 gint y,
                                                 gint width,
                                                 gint height,
                                                 GimpImageType type,
                                                 const guchar *buf1,
                                                 gint rowstride1,
                                                 const guchar *buf2,
                                                 gint rowstride2,
                                                 const guchar *mask,
                                                 gint rowstride_mask);

Composites `buf1` on `buf2` with the given `mask`, draws the result on `area` and queues a redraw on the given rectangle.

Since GIMP 2.2

`area` : | a GimpPreviewArea widget.
`x` : | x offset in preview
`y` : | y offset in preview
`width` : | buffer width
`height` : | buffer height
`type` : | the GimpImageType of `buf1` and `buf2`
`buf1` : | a guchar buffer that contains the pixel data for the lower layer
`rowstride1` : | rowstride of `buf1`
`buf2` : | a guchar buffer that contains the pixel data for the upper layer
`rowstride2` : | rowstride of `buf2`
`mask` : | a guchar buffer representing the mask of the second layer.
`rowstride_mask` : | rowstride for the mask.

### gimp_preview_area_set_offsets ()

    void        gimp_preview_area_set_offsets   (GimpPreviewArea *area,
                                                 gint x,
                                                 gint y);

Sets the offsets of the previewed area. This information is used when drawing the checkerboard and to determine the dither offsets.

`area` : | a GimpPreviewArea
`x` : | horizontal offset
`y` : | vertical offset

Since GIMP 2.2

### gimp_preview_area_set_colormap ()

    void        gimp_preview_area_set_colormap  (GimpPreviewArea *area,
                                                 const guchar *colormap,
                                                 gint num_colors);

Sets the colormap for the GimpPreviewArea widget. You need to call this function before you use `gimp_preview_area_draw()` with an image type of `GIMP_INDEXED_IMAGE` or `GIMP_INDEXEDA_IMAGE`.

Since GIMP 2.2

`area` : | a GimpPreviewArea
`colormap` : | a guchar buffer that contains the colormap
`num_colors` : | the number of colors in the colormap

### gimp_preview_area_set_max_size ()

    void        gimp_preview_area_set_max_size  (GimpPreviewArea *area,
                                                 gint width,
                                                 gint height);

Usually a GimpPreviewArea fills the size that it is allocated. This funtion allows you to limit the preview area to a maximum size. If a larger size is allocated for the widget, the preview will draw itself centered into the allocated area.

`area` : | a GimpPreviewArea widget
`width` : | the maximum width in pixels or -1 to unset the limit
`height` : | the maximum height in pixels or -1 to unset the limit

Since GIMP 2.2

### gimp_preview_area_menu_popup ()

    void        gimp_preview_area_menu_popup    (GimpPreviewArea *area,
                                                 GdkEventButton *event);

Creates a popup menu that allows to configure the size and type of the checkerboard pattern that the `area` uses to visualize transparency.

`area` : | a GimpPreviewArea
`event` : | the button event that causes the menu to popup or `NULL`

Since GIMP 2.2

## Property Details

### The "`check-size`" property

      "check-size"           GimpCheckSize         : Read / Write

Default value: GIMP_CHECK_SIZE_MEDIUM_CHECKS

### The "`check-type`" property

      "check-type"           GimpCheckType         : Read / Write

Default value: GIMP_CHECK_TYPE_GRAY_CHECKS