## 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 and GtkBuildable.

## 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 the given rectangle of `area` in the given color and queues a redraw.

Since GIMP 2.2

`area` : | a GimpPreviewArea widget.
`x` : | x offset in preview
`y` : | y offset in preview
`width` : | width of the rectangle to fill
`height` : | height of the rectangle to fill
`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