Commit de37bbb7 authored by Sven Neumann's avatar Sven Neumann Committed by Sven Neumann

libgimpwidgets/gimppreview.[ch] added gimp_preview_draw_buffer().

2004-09-29  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimppreview.[ch]
	* libgimpwidgets/gimpwidgets.def: added gimp_preview_draw_buffer().

	* libgimp/gimpaspectpreview.[ch]
	* libgimp/gimpdrawablepreview.[ch]
	* libgimp/gimpui.def: removed the public draw_buffer API.
	Implement the virtual GimpPreview::draw_buffer method instead.

	* plug-ins/common/cartoon.c
	* plug-ins/common/deinterlace.c
	* plug-ins/common/despeckle.c
	* plug-ins/common/dog.c
	* plug-ins/common/edge.c
	* plug-ins/common/engrave.c
	* plug-ins/common/exchange.c
	* plug-ins/common/gauss.c
	* plug-ins/common/grid.c
	* plug-ins/common/neon.c
	* plug-ins/common/noisify.c
	* plug-ins/common/oilify.c
	* plug-ins/common/photocopy.c
	* plug-ins/common/plasma.c
	* plug-ins/common/sel_gauss.c
	* plug-ins/common/sharpen.c
	* plug-ins/common/shift.c
	* plug-ins/common/snoise.c
	* plug-ins/common/sobel.c
	* plug-ins/common/spread.c
	* plug-ins/common/struc.c: changed accordingly. Don't pass the
	preview around as GimpDrawablePreview or GimpAspectPreview. It
	should whenever possible be accessed as GimpPreview.
parent 94bdc061
2004-09-29 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimppreview.[ch]
* libgimpwidgets/gimpwidgets.def: added gimp_preview_draw_buffer().
* libgimp/gimpaspectpreview.[ch]
* libgimp/gimpdrawablepreview.[ch]
* libgimp/gimpui.def: removed the public draw_buffer API.
Implement the virtual GimpPreview::draw_buffer method instead.
* plug-ins/common/cartoon.c
* plug-ins/common/deinterlace.c
* plug-ins/common/despeckle.c
* plug-ins/common/dog.c
* plug-ins/common/edge.c
* plug-ins/common/engrave.c
* plug-ins/common/exchange.c
* plug-ins/common/gauss.c
* plug-ins/common/grid.c
* plug-ins/common/neon.c
* plug-ins/common/noisify.c
* plug-ins/common/oilify.c
* plug-ins/common/photocopy.c
* plug-ins/common/plasma.c
* plug-ins/common/sel_gauss.c
* plug-ins/common/sharpen.c
* plug-ins/common/shift.c
* plug-ins/common/snoise.c
* plug-ins/common/sobel.c
* plug-ins/common/spread.c
* plug-ins/common/struc.c: changed accordingly. Don't pass the
preview around as GimpDrawablePreview or GimpAspectPreview. It
should whenever possible be accessed as GimpPreview.
2004-09-29 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimppreview.[ch]
......
......@@ -743,24 +743,6 @@ gimp_drawable_get_thumbnail
<TITLE>GimpAspectPreview</TITLE>
GimpAspectPreview
gimp_aspect_preview_new
gimp_aspect_preview_draw_buffer
<SUBSECTION Standard>
GimpAspectPreviewClass
GIMP_ASPECT_PREVIEW
GIMP_IS_ASPECT_PREVIEW
GIMP_TYPE_ASPECT_PREVIEW
gimp_aspect_preview_get_type
GIMP_ASPECT_PREVIEW_CLASS
GIMP_IS_ASPECT_PREVIEW_CLASS
GIMP_ASPECT_PREVIEW_GET_CLASS
</SECTION>
<SECTION>
<FILE>gimpaspectpreview</FILE>
<TITLE>GimpAspectPreview</TITLE>
GimpAspectPreview
gimp_aspect_preview_new
gimp_aspect_preview_draw_buffer
<SUBSECTION Standard>
GimpAspectPreviewClass
GIMP_ASPECT_PREVIEW
......@@ -778,7 +760,6 @@ GIMP_ASPECT_PREVIEW_GET_CLASS
GimpDrawablePreview
gimp_drawable_preview_new
gimp_drawable_preview_get_drawable
gimp_drawable_preview_draw_buffer
gimp_drawable_preview_draw_region
<SUBSECTION Standard>
GimpDrawablePreviewClass
......
......@@ -9,13 +9,11 @@ GimpAspectPreview
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### STRUCT GimpAspectPreview ##### -->
<para>
......@@ -32,13 +30,3 @@ GimpAspectPreview
@Returns:
<!-- ##### FUNCTION gimp_aspect_preview_draw_buffer ##### -->
<para>
</para>
@preview:
@buffer:
@rowstride:
......@@ -39,16 +39,6 @@ GimpDrawablePreview
@Returns:
<!-- ##### FUNCTION gimp_drawable_preview_draw_buffer ##### -->
<para>
</para>
@preview:
@buffer:
@rowstride:
<!-- ##### FUNCTION gimp_drawable_preview_draw_region ##### -->
<para>
......
......@@ -809,6 +809,7 @@ gimp_preview_set_bounds
gimp_preview_get_size
gimp_preview_get_position
gimp_preview_draw
gimp_preview_draw_buffer
gimp_preview_invalidate
<SUBSECTION Standard>
GimpPreviewClass
......
......@@ -95,6 +95,16 @@ GimpPreview
@preview:
<!-- ##### FUNCTION gimp_preview_draw_buffer ##### -->
<para>
</para>
@preview:
@buffer:
@rowstride:
<!-- ##### FUNCTION gimp_preview_invalidate ##### -->
<para>
......
......@@ -33,12 +33,16 @@
#include "gimpaspectpreview.h"
static void gimp_aspect_preview_class_init (GimpAspectPreviewClass *klass);
static void gimp_aspect_preview_init (GimpAspectPreview *preview);
static void gimp_aspect_preview_style_set (GtkWidget *widget,
GtkStyle *prev_style);
static void gimp_aspect_preview_draw (GimpPreview *preview);
static void gimp_aspect_preview_class_init (GimpAspectPreviewClass *klass);
static void gimp_aspect_preview_init (GimpAspectPreview *preview);
static void gimp_aspect_preview_style_set (GtkWidget *widget,
GtkStyle *prev_style);
static void gimp_aspect_preview_draw (GimpPreview *preview);
static void gimp_aspect_preview_draw_buffer (GimpPreview *preview,
const guchar *buffer,
gint rowstride);
static GimpPreviewClass *parent_class = NULL;
......@@ -79,8 +83,10 @@ gimp_aspect_preview_class_init (GimpAspectPreviewClass *klass)
parent_class = g_type_class_peek_parent (klass);
widget_class->style_set = gimp_aspect_preview_style_set;
preview_class->draw = gimp_aspect_preview_draw;
widget_class->style_set = gimp_aspect_preview_style_set;
preview_class->draw = gimp_aspect_preview_draw;
preview_class->draw_buffer = gimp_aspect_preview_draw_buffer;
}
static void
......@@ -96,9 +102,10 @@ static void
gimp_aspect_preview_style_set (GtkWidget *widget,
GtkStyle *prev_style)
{
GimpAspectPreview *preview = GIMP_ASPECT_PREVIEW (widget);
gint size;
gint width, height;
GimpPreview *preview = GIMP_PREVIEW (widget);
GimpDrawable *drawable = GIMP_ASPECT_PREVIEW (preview)->drawable;
gint size;
gint width, height;
if (GTK_WIDGET_CLASS (parent_class)->style_set)
GTK_WIDGET_CLASS (parent_class)->style_set (widget, prev_style);
......@@ -106,22 +113,51 @@ gimp_aspect_preview_style_set (GtkWidget *widget,
gtk_widget_style_get (widget,
"size", &size,
NULL);
width = gimp_drawable_width (preview->drawable->drawable_id);
height = gimp_drawable_height (preview->drawable->drawable_id);
width = gimp_drawable_width (drawable->drawable_id);
height = gimp_drawable_height (drawable->drawable_id);
if (width > height)
{
GIMP_PREVIEW (preview)->width = MIN (width, size);
GIMP_PREVIEW (preview)->height = (height * GIMP_PREVIEW (preview)->width) / width;
preview->width = MIN (width, size);
preview->height = (height * preview->width) / width;
}
else
{
GIMP_PREVIEW (preview)->height = MIN (height, size);
GIMP_PREVIEW (preview)->width = (width * GIMP_PREVIEW (preview)->height) / height;
preview->height = MIN (height, size);
preview->width = (width * preview->height) / height;
}
gtk_widget_set_size_request (GIMP_PREVIEW (preview)->area,
GIMP_PREVIEW (preview)->width,
GIMP_PREVIEW (preview)->height);
gtk_widget_set_size_request (preview->area,
preview->width, preview->height);
}
static void
gimp_aspect_preview_draw (GimpPreview *preview)
{
g_return_if_fail (GIMP_IS_ASPECT_PREVIEW (preview));
gimp_preview_area_fill (GIMP_PREVIEW_AREA (preview->area),
0, 0,
preview->width,
preview->height,
0, 0, 0);
}
static void
gimp_aspect_preview_draw_buffer (GimpPreview *preview,
const guchar *buffer,
gint rowstride)
{
GimpDrawable *drawable = GIMP_ASPECT_PREVIEW (preview)->drawable;
if (drawable)
gimp_preview_area_draw (GIMP_PREVIEW_AREA (preview->area),
0, 0,
preview->width, preview->height,
gimp_drawable_type (drawable->drawable_id),
buffer,
rowstride);
}
GtkWidget *
......@@ -140,46 +176,8 @@ gimp_aspect_preview_new (GimpDrawable *drawable,
gimp_preview_set_bounds (GIMP_PREVIEW (preview), 0, 0, width, height);
g_object_set (GIMP_PREVIEW (preview)->frame,
"ratio", (gdouble)width / (gdouble)height,
"ratio", (gdouble) width / (gdouble) height,
NULL);
return GTK_WIDGET (preview);
}
static void
gimp_aspect_preview_draw (GimpPreview *preview)
{
g_return_if_fail (GIMP_IS_ASPECT_PREVIEW (preview));
gimp_preview_area_fill (GIMP_PREVIEW_AREA (preview->area),
0, 0,
preview->width,
preview->height,
0, 0, 0);
}
/**
* gimp_aspect_preview_draw_buffer:
* @preview: a #GimpAspectPreview widget
* @buffer:
* @rowstride:
*
* Since: GIMP 2.2
**/
void
gimp_aspect_preview_draw_buffer (GimpAspectPreview *preview,
const guchar *buffer,
gint rowstride)
{
g_return_if_fail (GIMP_IS_ASPECT_PREVIEW (preview));
g_return_if_fail (buffer != NULL);
gimp_preview_area_draw (GIMP_PREVIEW_AREA (GIMP_PREVIEW (preview)->area),
0, 0,
GIMP_PREVIEW (preview)->width,
GIMP_PREVIEW (preview)->height,
gimp_drawable_type (preview->drawable->drawable_id),
buffer,
rowstride);
}
......@@ -54,13 +54,11 @@ struct _GimpAspectPreviewClass
};
GType gimp_aspect_preview_get_type (void) G_GNUC_CONST;
GtkWidget *gimp_aspect_preview_new (GimpDrawable *drawable,
gboolean *toggle);
GType gimp_aspect_preview_get_type (void) G_GNUC_CONST;
GtkWidget * gimp_aspect_preview_new (GimpDrawable *drawable,
gboolean *toggle);
void gimp_aspect_preview_draw_buffer (GimpAspectPreview *preview,
const guchar *buffer,
gint rowstride);
G_END_DECLS
......
......@@ -46,6 +46,10 @@ static void gimp_drawable_preview_draw_thumb (GimpPreview *preview,
GimpPreviewArea *area,
gint width,
gint height);
static void gimp_drawable_preview_draw_buffer (GimpPreview *preview,
const guchar *buffer,
gint rowstride);
static GimpScrolledPreviewClass *parent_class = NULL;
......@@ -86,10 +90,11 @@ gimp_drawable_preview_class_init (GimpDrawablePreviewClass *klass)
parent_class = g_type_class_peek_parent (klass);
widget_class->style_set = gimp_drawable_preview_style_set;
widget_class->style_set = gimp_drawable_preview_style_set;
preview_class->draw = gimp_drawable_preview_draw_original;
preview_class->draw_thumb = gimp_drawable_preview_draw_thumb;
preview_class->draw = gimp_drawable_preview_draw_original;
preview_class->draw_thumb = gimp_drawable_preview_draw_thumb;
preview_class->draw_buffer = gimp_drawable_preview_draw_buffer;
}
static void
......@@ -267,6 +272,19 @@ gimp_drawable_preview_draw_area (GimpDrawablePreview *preview,
}
}
static void
gimp_drawable_preview_draw_buffer (GimpPreview *preview,
const guchar *buffer,
gint rowstride)
{
gimp_drawable_preview_draw_area (GIMP_DRAWABLE_PREVIEW (preview),
preview->xmin + preview->xoff,
preview->ymin + preview->yoff,
preview->width,
preview->height,
buffer, rowstride);
}
static void
gimp_drawable_preview_set_drawable (GimpDrawablePreview *drawable_preview,
GimpDrawable *drawable)
......@@ -366,35 +384,6 @@ gimp_drawable_preview_get_drawable (GimpDrawablePreview *preview)
return preview->drawable;
}
/**
* gimp_drawable_preview_draw_buffer:
* @preview: a #GimpDrawablePreview widget
* @buffer:
* @rowstride:
*
* Since: GIMP 2.2
**/
void
gimp_drawable_preview_draw_buffer (GimpDrawablePreview *preview,
const guchar *buffer,
gint rowstride)
{
GimpPreview *gimp_preview;
g_return_if_fail (GIMP_IS_DRAWABLE_PREVIEW (preview));
g_return_if_fail (preview->drawable != NULL);
g_return_if_fail (buffer != NULL);
gimp_preview = GIMP_PREVIEW (preview);
gimp_drawable_preview_draw_area (preview,
gimp_preview->xmin + gimp_preview->xoff,
gimp_preview->ymin + gimp_preview->yoff,
gimp_preview->width,
gimp_preview->height,
buffer, rowstride);
}
/**
* gimp_drawable_preview_draw_region:
* @preview: a #GimpDrawablePreview widget
......
......@@ -59,9 +59,6 @@ GtkWidget * gimp_drawable_preview_new (GimpDrawable *drawable
gboolean *toggle);
GimpDrawable * gimp_drawable_preview_get_drawable (GimpDrawablePreview *preview);
void gimp_drawable_preview_draw_buffer (GimpDrawablePreview *preview,
const guchar *buffer,
gint rowstride);
void gimp_drawable_preview_draw_region (GimpDrawablePreview *preview,
const GimpPixelRgn *region);
......
EXPORTS
gimp_aspect_preview_draw_buffer
gimp_aspect_preview_get_type
gimp_aspect_preview_new
gimp_brush_select_widget_close
......@@ -10,7 +9,6 @@ EXPORTS
gimp_drawable_combo_box_new
gimp_drawable_get_thumbnail
gimp_drawable_menu_new
gimp_drawable_preview_draw_buffer
gimp_drawable_preview_draw_region
gimp_drawable_preview_get_drawable
gimp_drawable_preview_get_type
......
......@@ -145,6 +145,7 @@ gimp_preview_class_init (GimpPreviewClass *klass)
klass->draw = NULL;
klass->draw_thumb = NULL;
klass->draw_buffer = NULL;
klass->set_cursor = gimp_preview_set_cursor;
g_object_class_install_property (object_class,
......@@ -593,6 +594,29 @@ gimp_preview_draw (GimpPreview *preview)
class->draw (preview);
}
/*
* gimp_preview_draw_buffer:
* @preview: a #GimpPreview widget
* @buffer: a pixel buffer the size of the preview
* @rowstride: the @buffer's rowstride
*
* Calls the GimpPreview::draw_buffer method. GimpPreview itself
* doesn't implement this method so the behaviour is determined by the
* derived class implementing this method.
*
* Since: GIMP 2.2
**/
void
gimp_preview_draw_buffer (GimpPreview *preview,
const guchar *buffer,
gint rowstride)
{
GimpPreviewClass *class = GIMP_PREVIEW_GET_CLASS (preview);
if (class->draw_buffer)
class->draw_buffer (preview, buffer, rowstride);
}
/*
* gimp_preview_invalidate:
* @preview: a #GimpPreview widget
......
......@@ -71,6 +71,9 @@ struct _GimpPreviewClass
GimpPreviewArea *area,
gint width,
gint height);
void (* draw_buffer) (GimpPreview *preview,
const guchar *buffer,
gint rowstride);
void (* set_cursor) (GimpPreview *preview);
/* signal */
......@@ -80,25 +83,29 @@ struct _GimpPreviewClass
GType gimp_preview_get_type (void) G_GNUC_CONST;
void gimp_preview_set_update (GimpPreview *preview,
gboolean update);
gboolean gimp_preview_get_update (GimpPreview *preview);
void gimp_preview_set_bounds (GimpPreview *preview,
gint xmin,
gint ymin,
gint xmax,
gint ymax);
void gimp_preview_get_position (GimpPreview *preview,
gint *x,
gint *y);
void gimp_preview_get_size (GimpPreview *preview,
gint *width,
gint *height);
void gimp_preview_draw (GimpPreview *preview);
void gimp_preview_invalidate (GimpPreview *preview);
void gimp_preview_set_update (GimpPreview *preview,
gboolean update);
gboolean gimp_preview_get_update (GimpPreview *preview);
void gimp_preview_set_bounds (GimpPreview *preview,
gint xmin,
gint ymin,
gint xmax,
gint ymax);
void gimp_preview_get_position (GimpPreview *preview,
gint *x,
gint *y);
void gimp_preview_get_size (GimpPreview *preview,
gint *width,
gint *height);
void gimp_preview_draw (GimpPreview *preview);
void gimp_preview_draw_buffer (GimpPreview *preview,
const guchar *buffer,
gint rowstride);
void gimp_preview_invalidate (GimpPreview *preview);
G_END_DECLS
......
......@@ -163,6 +163,7 @@ EXPORTS
gimp_preview_area_set_max_size
gimp_preview_area_set_offsets
gimp_preview_draw
gimp_preview_draw_buffer
gimp_preview_get_position
gimp_preview_get_size
gimp_preview_get_type
......
......@@ -57,14 +57,14 @@ static void run (const gchar *name,
gint *nreturn_vals,
GimpParam **return_vals);
static void cartoon (GimpDrawable *drawable,
GimpDrawablePreview *preview);
static gboolean cartoon_dialog (GimpDrawable *drawable);
static void cartoon (GimpDrawable *drawable,
GimpPreview *preview);
static gboolean cartoon_dialog (GimpDrawable *drawable);
static gdouble compute_ramp (guchar *dest1,
guchar *dest2,
gint length,
gdouble pct_black);
static gdouble compute_ramp (guchar *dest1,
guchar *dest2,
gint length,
gdouble pct_black);
/*
* Gaussian blur helper functions
......@@ -251,8 +251,8 @@ run (const gchar *name,
* pixel intensity *= intensity mult
*/
static void
cartoon (GimpDrawable *drawable,
GimpDrawablePreview *preview)
cartoon (GimpDrawable *drawable,
GimpPreview *preview)
{
GimpPixelRgn src_rgn, dest_rgn;
GimpPixelRgn *pr;
......@@ -290,7 +290,7 @@ cartoon (GimpDrawable *drawable,
if (preview)
{
gimp_preview_get_position (preview, &x1, &y1);
gimp_preview_get_size (GIMP_PREVIEW (preview), &width, &height);
gimp_preview_get_size (preview, &width, &height);
}
else
{
......@@ -301,7 +301,7 @@ cartoon (GimpDrawable *drawable,
}
bytes = drawable->bpp;
has_alpha = gimp_drawable_has_alpha(drawable->drawable_id);
has_alpha = gimp_drawable_has_alpha (drawable->drawable_id);
val_p1 = g_new (gdouble, MAX (width, height) * bytes);
val_p2 = g_new (gdouble, MAX (width, height) * bytes);
......@@ -586,8 +586,7 @@ cartoon (GimpDrawable *drawable,
if (preview)
{
gimp_drawable_preview_draw_buffer (preview,
preview_buffer, width * bytes);
gimp_preview_draw_buffer (preview, preview_buffer, width * bytes);
g_free (preview_buffer);
}
else
......
......@@ -53,10 +53,10 @@ static void run (const gchar *name,
GimpParam **return_vals);
static void deinterlace (GimpDrawable *drawable,
GimpDrawablePreview *preview);
static void deinterlace (GimpDrawable *drawable,
GimpPreview *preview);
static gboolean deinterlace_dialog (GimpDrawable *drawable);
static gboolean deinterlace_dialog (GimpDrawable *drawable);
GimpPlugInInfo PLUG_IN_INFO =
......@@ -181,8 +181,8 @@ run (const gchar *name,
}
static void
deinterlace (GimpDrawable *drawable,
GimpDrawablePreview *preview)
deinterlace (GimpDrawable *drawable,
GimpPreview *preview)
{
GimpPixelRgn srcPR, destPR;
gint width, height;
......@@ -199,8 +199,9 @@ deinterlace (GimpDrawable *drawable,
if (preview)
{
gimp_preview_get_position (GIMP_PREVIEW (preview), &x1, &y1);
gimp_preview_get_size (GIMP_PREVIEW (preview), &width, &height);
gimp_preview_get_position (preview, &x1, &y1);
gimp_preview_get_size (preview, &width, &height);
dest_buffer = dest = g_new (guchar, width * height * bytes);
}
else
......@@ -283,7 +284,7 @@ deinterlace (GimpDrawable *drawable,
if (preview)
{
gimp_drawable_preview_draw_buffer (preview, dest_buffer, width * bytes);
gimp_preview_draw_buffer (preview, dest_buffer, width * bytes);
dest = dest_buffer;
}
else
......
......@@ -853,8 +853,7 @@ preview_update (GtkWidget *widget)
* Update the screen...
*/
gimp_drawable_preview_draw_buffer (GIMP_DRAWABLE_PREVIEW (preview),
rgba, preview->width * img_bpp);
gimp_preview_draw_buffer (preview, rgba, preview->width * img_bpp);
g_free (rgba);
g_free (preview_src);
......
......@@ -75,10 +75,10 @@ static void dog (GimpDrawable *drawable,
gdouble outer,
gboolean show_progress);
static void preview_update_preview (GimpDrawablePreview *preview,
GimpDrawable *drawable);
static void change_radius_callback (GtkWidget *widget,
gpointer data);
static void preview_update_preview (GimpPreview *preview,
GimpDrawable *drawable);
static void change_radius_callback (GtkWidget *widget,
gpointer data);
......@@ -908,8 +908,8 @@ run_length_encode (guchar *src,
}
static void
preview_update_preview (GimpDrawablePreview *preview,
GimpDrawable *drawable)
preview_update_preview (GimpPreview *preview,
GimpDrawable *drawable)
{
gint x1, y1;
gint width, height;
......@@ -923,8 +923,8 @@ preview_update_preview (GimpDrawablePreview *preview,
bpp = gimp_drawable_bpp (drawable->drawable_id);
gimp_preview_get_position (GIMP_PREVIEW (preview), &x1, &y1);
gimp_preview_get_size (GIMP_PREVIEW (preview), &width, &height);
gimp_preview_get_position (preview, &x1, &y1);
gimp_preview_get_size (preview, &width, &height);
buffer = g_new (guchar, width * height * bpp);
......@@ -955,7 +955,7 @@ preview_update_preview (GimpDrawablePreview *preview,
gimp_pixel_rgn_get_rect (&preview_rgn, buffer,
0, 0, width, height);
gimp_drawable_preview_draw_buffer (preview, buffer, width * bpp);
gimp_preview_draw_buffer (preview, buffer, width * bpp);
gimp_image_delete (image_id);
g_free (buffer);
......
......@@ -93,15 +93,15 @@ typedef struct
*/
static void query (void);
static void run (const gchar *name,
gint nparams,
const GimpParam *param,
gint *nreturn_vals,
GimpParam **return_vals);
static void run (const gchar *name,
gint nparams,
const GimpParam *param,
gint *nreturn_vals,
GimpParam **return_vals);
static void edge (GimpDrawable *drawable);
static gboolean edge_dialog (GimpDrawable *drawable);
static void edge_preview_update (GimpDrawablePreview *preview);
static void edge (GimpDrawable *drawable);
static gboolean edge_dialog (GimpDrawable *drawable);
static void edge_preview_update (GimpPreview *preview);
static gint edge_detect (const guchar *data);
static gint prewitt (const guchar *data);
......@@ -770,12 +770,13 @@ edge_dialog (GimpDrawable *drawable)
}