mirror of https://github.com/GNOME/gimp.git
plug-ins/gimpressionist/brush.c plug-ins/gimpressionist/orientmap.c
* plug-ins/gimpressionist/brush.c * plug-ins/gimpressionist/orientmap.c * plug-ins/gimpressionist/paper.c * plug-ins/gimpressionist/preview.c * plug-ins/gimpressionist/size.c: Converted the code from using GtkPreview to GimpPreviewArea.
This commit is contained in:
parent
6696cb7743
commit
5ab2ac02dd
|
@ -1,3 +1,12 @@
|
|||
2004-07-31 Shlomi Fish <shlomif@iglu.org.il>
|
||||
|
||||
* plug-ins/gimpressionist/brush.c
|
||||
* plug-ins/gimpressionist/orientmap.c
|
||||
* plug-ins/gimpressionist/paper.c
|
||||
* plug-ins/gimpressionist/preview.c
|
||||
* plug-ins/gimpressionist/size.c:
|
||||
Converted the code from using GtkPreview to GimpPreviewArea.
|
||||
|
||||
2004-07-30 Seth Burgess <sjburges@gimp.org>
|
||||
|
||||
* plug-ins/common/gauss.c: added some non-interactive modes (if called
|
||||
|
|
|
@ -294,16 +294,15 @@ static void
|
|||
update_brush_preview (const gchar *fn)
|
||||
{
|
||||
gint i, j;
|
||||
guchar buf[100];
|
||||
guchar *preview_image;
|
||||
|
||||
if(fn)
|
||||
brush_from_file = 1;
|
||||
|
||||
preview_image = g_new0(guchar, 100*100);
|
||||
|
||||
if (!fn && brush_from_file) {
|
||||
memset(buf, 0, 100);
|
||||
for(i = 0; i < 100; i++) {
|
||||
gtk_preview_draw_row (GTK_PREVIEW (brush_preview), buf, 0, i, 100);
|
||||
}
|
||||
/* preview_image is already initialized to our liking. */
|
||||
} else {
|
||||
double sc;
|
||||
ppm_t p = {0,0,NULL};
|
||||
|
@ -332,21 +331,29 @@ update_brush_preview (const gchar *fn)
|
|||
padbrush (&p, 100, 100);
|
||||
for(i = 0; i < 100; i++) {
|
||||
int k = i * p.width * 3;
|
||||
memset(buf,0,100);
|
||||
if(i < p.height)
|
||||
for(j = 0; j < p.width; j++)
|
||||
buf[j] = gammatable[p.col[k + j * 3]];
|
||||
gtk_preview_draw_row (GTK_PREVIEW (brush_preview), buf, 0, i, 100);
|
||||
preview_image[i*100+j] = gammatable[p.col[k + j * 3]];
|
||||
}
|
||||
ppm_kill(&p);
|
||||
}
|
||||
gtk_widget_queue_draw (brush_preview);
|
||||
gimp_preview_area_draw (GIMP_PREVIEW_AREA (brush_preview),
|
||||
0, 0, 100, 100,
|
||||
GIMP_GRAY_IMAGE,
|
||||
preview_image,
|
||||
100);
|
||||
|
||||
g_free (preview_image);
|
||||
}
|
||||
|
||||
static gboolean brush_dont_update = FALSE;
|
||||
|
||||
/*
|
||||
* "force" implies here to change the brush even if it was the same.
|
||||
* It is used for the initialization of the preview.
|
||||
* */
|
||||
static void
|
||||
brush_select (GtkTreeSelection *selection)
|
||||
brush_select (GtkTreeSelection *selection, gboolean force)
|
||||
{
|
||||
GtkTreeIter iter;
|
||||
GtkTreeModel *model;
|
||||
|
@ -377,7 +384,12 @@ brush_select (GtkTreeSelection *selection)
|
|||
else
|
||||
{
|
||||
if (!strcmp (last_selected_brush, brush))
|
||||
goto cleanup;
|
||||
{
|
||||
if (!force)
|
||||
{
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
g_free (last_selected_brush);
|
||||
|
@ -413,7 +425,15 @@ brush_select_file (GtkTreeSelection *selection, gpointer data)
|
|||
{
|
||||
brush_from_file = 1;
|
||||
preset_save_button_set_sensitive (TRUE);
|
||||
brush_select (selection);
|
||||
brush_select (selection, FALSE);
|
||||
}
|
||||
|
||||
static void
|
||||
brush_preview_size_allocate (GtkWidget *preview)
|
||||
{
|
||||
GtkTreeSelection *selection;
|
||||
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (brush_list));
|
||||
brush_select (selection, TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -460,10 +480,12 @@ create_brushpage(GtkNotebook *notebook)
|
|||
gtk_box_pack_start(GTK_BOX (box2), frame, FALSE, FALSE, 0);
|
||||
gtk_widget_show (frame);
|
||||
|
||||
brush_preview = tmpw = gtk_preview_new (GTK_PREVIEW_GRAYSCALE);
|
||||
gtk_preview_size (GTK_PREVIEW (tmpw), 100, 100);
|
||||
brush_preview = tmpw = gimp_preview_area_new ();
|
||||
gtk_widget_set_size_request (brush_preview, 100, 100);
|
||||
gtk_container_add (GTK_CONTAINER (frame), tmpw);
|
||||
gtk_widget_show (tmpw);
|
||||
g_signal_connect (brush_preview, "size-allocate",
|
||||
G_CALLBACK(brush_preview_size_allocate), NULL);
|
||||
|
||||
box3 = gtk_vbox_new (FALSE, 2);
|
||||
gtk_box_pack_end (GTK_BOX (box2), box3, FALSE, FALSE,0);
|
||||
|
@ -548,7 +570,7 @@ create_brushpage(GtkNotebook *notebook)
|
|||
G_CALLBACK (gimp_double_adjustment_update),
|
||||
&pcvals.brush_relief);
|
||||
|
||||
brush_select (selection);
|
||||
brush_select (selection, FALSE);
|
||||
readdirintolist ("Brushes", view, pcvals.selected_brush);
|
||||
|
||||
/*
|
||||
|
|
|
@ -151,11 +151,11 @@ static void update_orient_map_preview_prev (void)
|
|||
ppm_put_rgb (&update_om_preview_nbuffer, x-xo, y-yo, white);
|
||||
}
|
||||
|
||||
for (y = 0; y < OMHEIGHT; y++)
|
||||
gtk_preview_draw_row (GTK_PREVIEW (orient_map_preview_prev),
|
||||
(guchar *) update_om_preview_nbuffer.col +
|
||||
y * OMWIDTH * 3, 0, y,
|
||||
OMWIDTH);
|
||||
gimp_preview_area_draw (GIMP_PREVIEW_AREA (orient_map_preview_prev),
|
||||
0, 0, OMWIDTH, OMHEIGHT,
|
||||
GIMP_RGB_IMAGE,
|
||||
(guchar *)update_om_preview_nbuffer.col,
|
||||
OMWIDTH * 3);
|
||||
|
||||
gtk_widget_queue_draw (orient_map_preview_prev);
|
||||
|
||||
|
@ -213,13 +213,11 @@ static void update_vector_prev(void)
|
|||
ppm_put_rgb (&update_vector_preview_buffer, x-xo, y-yo, white);
|
||||
}
|
||||
|
||||
for (y = 0; y < OMHEIGHT; y++)
|
||||
gtk_preview_draw_row (GTK_PREVIEW (vector_preview),
|
||||
(guchar *) update_vector_preview_buffer.col +
|
||||
y * OMWIDTH * 3,
|
||||
0, y, OMWIDTH);
|
||||
|
||||
gtk_widget_queue_draw (vector_preview);
|
||||
gimp_preview_area_draw (GIMP_PREVIEW_AREA (vector_preview),
|
||||
0, 0, OMWIDTH, OMHEIGHT,
|
||||
GIMP_RGB_IMAGE,
|
||||
(guchar *)update_vector_preview_buffer.col,
|
||||
OMWIDTH * 3);
|
||||
}
|
||||
|
||||
void orientation_map_free_resources()
|
||||
|
@ -475,8 +473,8 @@ void create_orientmap_dialog(void)
|
|||
"Middle-click to add a new vector."), NULL);
|
||||
gtk_box_pack_start(GTK_BOX(hbox), ebox, FALSE, FALSE, 0);
|
||||
|
||||
tmpw = vector_preview = gtk_preview_new (GTK_PREVIEW_COLOR);
|
||||
gtk_preview_size (GTK_PREVIEW (tmpw), OMWIDTH, OMHEIGHT);
|
||||
tmpw = vector_preview = gimp_preview_area_new ();
|
||||
gtk_widget_set_size_request (tmpw, OMWIDTH, OMHEIGHT);
|
||||
gtk_container_add (GTK_CONTAINER (ebox), tmpw);
|
||||
gtk_widget_show (tmpw);
|
||||
gtk_widget_add_events (ebox, GDK_BUTTON_PRESS_MASK);
|
||||
|
@ -498,8 +496,8 @@ void create_orientmap_dialog(void)
|
|||
gtk_table_attach(GTK_TABLE(table1), tmpw, 1,2,0,1,GTK_EXPAND,GTK_EXPAND,0,0);
|
||||
gtk_widget_show(tmpw);
|
||||
|
||||
tmpw = orient_map_preview_prev = gtk_preview_new(GTK_PREVIEW_COLOR);
|
||||
gtk_preview_size(GTK_PREVIEW(tmpw), OMWIDTH, OMHEIGHT);
|
||||
tmpw = orient_map_preview_prev = gimp_preview_area_new ();
|
||||
gtk_widget_set_size_request (tmpw, OMWIDTH, OMHEIGHT);;
|
||||
gtk_container_add(GTK_CONTAINER(tmpw2), tmpw);
|
||||
gtk_widget_show(tmpw);
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ static GtkWidget *paper_overlay = NULL;
|
|||
static void paper_update_preview(void)
|
||||
{
|
||||
gint i, j;
|
||||
guchar buf[100];
|
||||
guchar *buf,*paper_preview_buffer;
|
||||
gdouble sc;
|
||||
ppm_t p = {0,0,NULL};
|
||||
|
||||
|
@ -37,9 +37,9 @@ static void paper_update_preview(void)
|
|||
sc = p.width > p.height ? p.width : p.height;
|
||||
sc = 100.0 / sc;
|
||||
resize(&p, p.width*sc,p.height*sc);
|
||||
for (i = 0; i < 100; i++) {
|
||||
paper_preview_buffer = g_new0 (guchar, 100*100);
|
||||
for (i = 0, buf = paper_preview_buffer; i < 100; i++, buf += 100) {
|
||||
int k = i * p.width * 3;
|
||||
memset(buf, 0, 100);
|
||||
if(i < p.height) {
|
||||
for(j = 0; j < p.width; j++)
|
||||
buf[j] = p.col[k + j * 3];
|
||||
|
@ -47,9 +47,15 @@ static void paper_update_preview(void)
|
|||
for (j = 0; j < p.width; j++)
|
||||
buf[j] = 255 - buf[j];
|
||||
}
|
||||
gtk_preview_draw_row (GTK_PREVIEW (paper_preview), buf, 0, i, 100);
|
||||
}
|
||||
gimp_preview_area_draw (GIMP_PREVIEW_AREA (paper_preview),
|
||||
0, 0, 100, 100,
|
||||
GIMP_GRAY_IMAGE,
|
||||
paper_preview_buffer,
|
||||
100);
|
||||
|
||||
ppm_kill(&p);
|
||||
g_free (paper_preview_buffer);
|
||||
|
||||
gtk_widget_queue_draw (paper_preview);
|
||||
}
|
||||
|
@ -129,8 +135,8 @@ void create_paperpage(GtkNotebook *notebook)
|
|||
gtk_box_pack_start(GTK_BOX (box2), frame, FALSE, FALSE, 0);
|
||||
gtk_widget_show (frame);
|
||||
|
||||
paper_preview = tmpw = gtk_preview_new (GTK_PREVIEW_GRAYSCALE);
|
||||
gtk_preview_size(GTK_PREVIEW (tmpw), 100, 100);
|
||||
paper_preview = tmpw = gimp_preview_area_new ();
|
||||
gtk_widget_set_size_request (tmpw, 100, 100);
|
||||
gtk_container_add (GTK_CONTAINER (frame), tmpw);
|
||||
gtk_widget_show(tmpw);
|
||||
|
||||
|
|
|
@ -68,8 +68,6 @@ void preview_free_resources (void)
|
|||
void
|
||||
updatepreview (GtkWidget *wg, gpointer d)
|
||||
{
|
||||
gint i;
|
||||
|
||||
/* This portion is remmed out because of the remming out of the
|
||||
* code below.
|
||||
* -- Shlomi Fish
|
||||
|
@ -88,13 +86,17 @@ updatepreview (GtkWidget *wg, gpointer d)
|
|||
* */
|
||||
#if 0
|
||||
if (!PPM_IS_INITED (&infile) && !d) {
|
||||
guchar *buffer;
|
||||
|
||||
memset(buf, 0, sizeof(buf));
|
||||
for(i = 0; i < PREVIEWSIZE; i++)
|
||||
{
|
||||
gtk_preview_draw_row (GTK_PREVIEW(preview), buf, 0, i, PREVIEWSIZE);
|
||||
}
|
||||
}
|
||||
buffer = g_new0 (guchar, 3*PREVIEWSIZE*PREVIEWSIZE);
|
||||
gimp_preview_area_draw (GIMP_PREVIEW_AREA (preview),
|
||||
0, 0, PREVIEWSIZE, PREVIEWSIZE,
|
||||
GIMP_RGB_IMAGE,
|
||||
buffer,
|
||||
PREVIEWSIZE * 3);
|
||||
|
||||
g_free (buffer);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
|
@ -126,18 +128,22 @@ updatepreview (GtkWidget *wg, gpointer d)
|
|||
if(img_has_alpha)
|
||||
drawalpha(&preview_ppm, &alpha_ppm);
|
||||
|
||||
for(i = 0; i < PREVIEWSIZE; i++)
|
||||
{
|
||||
gtk_preview_draw_row(GTK_PREVIEW(preview),
|
||||
(guchar*) &preview_ppm.col[i * PREVIEWSIZE * 3], 0, i,
|
||||
PREVIEWSIZE);
|
||||
}
|
||||
gimp_preview_area_draw (GIMP_PREVIEW_AREA (preview),
|
||||
0, 0, PREVIEWSIZE, PREVIEWSIZE,
|
||||
GIMP_RGB_IMAGE,
|
||||
preview_ppm.col,
|
||||
PREVIEWSIZE * 3);
|
||||
|
||||
ppm_kill(&preview_ppm);
|
||||
if(img_has_alpha)
|
||||
ppm_kill(&alpha_ppm);
|
||||
}
|
||||
}
|
||||
|
||||
gtk_widget_queue_draw (preview);
|
||||
static void
|
||||
preview_size_allocate (GtkWidget *preview)
|
||||
{
|
||||
updatepreview (preview, GINT_TO_POINTER (0));
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
|
@ -155,10 +161,14 @@ create_preview (void)
|
|||
gtk_box_pack_start(GTK_BOX (vbox), frame, FALSE, FALSE, 5);
|
||||
gtk_widget_show (frame);
|
||||
|
||||
preview = gtk_preview_new (GTK_PREVIEW_COLOR);
|
||||
gtk_preview_size (GTK_PREVIEW (preview), PREVIEWSIZE, PREVIEWSIZE);
|
||||
preview = gimp_preview_area_new ();
|
||||
gtk_widget_set_size_request (preview, PREVIEWSIZE, PREVIEWSIZE);
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (frame), preview);
|
||||
gtk_widget_show (preview);
|
||||
/* This is so the preview will be displayed when the dialog is invoked. */
|
||||
g_signal_connect (preview, "size-allocate",
|
||||
G_CALLBACK (preview_size_allocate), NULL);
|
||||
|
||||
hbox = gtk_hbox_new (TRUE, 6);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
|
||||
|
|
|
@ -78,12 +78,12 @@ static void updatesmpreviewprev(void)
|
|||
}
|
||||
}
|
||||
|
||||
for (y = 0; y < OMHEIGHT; y++)
|
||||
gtk_preview_draw_row (GTK_PREVIEW(smpreviewprev),
|
||||
nsbuffer.col + y * nsbuffer.width * 3,
|
||||
0, y, OMWIDTH);
|
||||
|
||||
gtk_widget_queue_draw (smpreviewprev);
|
||||
gimp_preview_area_draw (GIMP_PREVIEW_AREA (smpreviewprev),
|
||||
0, 0, OMWIDTH, OMHEIGHT,
|
||||
GIMP_RGB_IMAGE,
|
||||
nsbuffer.col,
|
||||
OMWIDTH * 3);
|
||||
}
|
||||
|
||||
static gint selectedsmvector = 0;
|
||||
|
@ -139,13 +139,11 @@ static void updatesmvectorprev(void)
|
|||
ppm_put_rgb (&update_vector_preview_sbuffer, x, y, white);
|
||||
}
|
||||
|
||||
for (y = 0; y < OMHEIGHT; y++)
|
||||
gtk_preview_draw_row (GTK_PREVIEW(smvectorprev),
|
||||
update_vector_preview_sbuffer.col +
|
||||
y * update_vector_preview_sbuffer.width * 3,
|
||||
0, y, OMWIDTH);
|
||||
|
||||
gtk_widget_queue_draw (smvectorprev);
|
||||
gimp_preview_area_draw (GIMP_PREVIEW_AREA (smvectorprev),
|
||||
0, 0, OMWIDTH, OMHEIGHT,
|
||||
GIMP_RGB_IMAGE,
|
||||
update_vector_preview_sbuffer.col,
|
||||
OMWIDTH * 3);
|
||||
|
||||
gtk_widget_set_sensitive (prev_button, (numsmvect > 1));
|
||||
gtk_widget_set_sensitive (next_button, (numsmvect > 1));
|
||||
|
@ -397,8 +395,8 @@ void create_sizemap_dialog(void)
|
|||
gtk_box_pack_start(GTK_BOX(hbox), tmpw, FALSE, FALSE, 0);
|
||||
tmpw2 = tmpw;
|
||||
|
||||
tmpw = smvectorprev = gtk_preview_new(GTK_PREVIEW_COLOR);
|
||||
gtk_preview_size(GTK_PREVIEW(tmpw), OMWIDTH, OMHEIGHT);
|
||||
tmpw = smvectorprev = gimp_preview_area_new ();
|
||||
gtk_widget_set_size_request (tmpw, OMWIDTH, OMHEIGHT);
|
||||
gtk_container_add(GTK_CONTAINER(tmpw2), tmpw);
|
||||
gtk_widget_show(tmpw);
|
||||
gtk_widget_add_events (tmpw2, GDK_BUTTON_PRESS_MASK);
|
||||
|
@ -420,8 +418,8 @@ void create_sizemap_dialog(void)
|
|||
gtk_table_attach(GTK_TABLE(table1), tmpw, 1,2,0,1,GTK_EXPAND,GTK_EXPAND,0,0);
|
||||
gtk_widget_show(tmpw);
|
||||
|
||||
tmpw = smpreviewprev = gtk_preview_new(GTK_PREVIEW_COLOR);
|
||||
gtk_preview_size(GTK_PREVIEW(tmpw), OMWIDTH, OMHEIGHT);
|
||||
tmpw = smpreviewprev = gimp_preview_area_new ();
|
||||
gtk_widget_set_size_request (tmpw, OMWIDTH, OMHEIGHT);
|
||||
gtk_container_add(GTK_CONTAINER(tmpw2), tmpw);
|
||||
gtk_widget_show(tmpw);
|
||||
|
||||
|
|
Loading…
Reference in New Issue