140
static GimpParamDef args[] =
139
static const GimpParamDef args[] =
142
{ GIMP_PDB_INT32, "run_mode", "Interactive, non-interactive" },
143
{ GIMP_PDB_IMAGE, "image", "Input image" },
144
{ GIMP_PDB_DRAWABLE, "drawable", "Input drawable" },
145
{ GIMP_PDB_FLOAT, "tile_size", "Average diameter of each tile (in pixels)" },
146
{ GIMP_PDB_FLOAT, "tile_saturation", "Expand tiles by this amount" },
147
{ GIMP_PDB_INT32, "bg_color", "Background color: { BLACK (0), BG (1) }" }
141
{ GIMP_PDB_INT32, "run-mode", "Interactive, non-interactive" },
142
{ GIMP_PDB_IMAGE, "image", "Input image" },
143
{ GIMP_PDB_DRAWABLE, "drawable", "Input drawable" },
144
{ GIMP_PDB_FLOAT, "tile-size", "Average diameter of each tile (in pixels)" },
145
{ GIMP_PDB_FLOAT, "tile-saturation", "Expand tiles by this amount" },
146
{ GIMP_PDB_INT32, "bg-color", "Background color: { BLACK (0), BG (1) }" }
150
gimp_install_procedure ("plug_in_cubism",
151
"Convert the input drawable into a collection of rotated squares",
149
gimp_install_procedure (PLUG_IN_PROC,
150
N_("Convert the image into randomly rotated square blobs"),
152
151
"Help not yet written for this plug-in",
153
152
"Spencer Kimball & Tracy Scott",
154
153
"Spencer Kimball & Tracy Scott",
196
195
case GIMP_RUN_INTERACTIVE:
197
196
/* Possibly retrieve data */
198
gimp_get_data ("plug_in_cubism", &cvals);
197
gimp_get_data (PLUG_IN_PROC, &cvals);
200
199
/* First acquire information with a dialog */
201
200
if (! cubism_dialog (drawable))
241
240
/* Store mvals data */
242
241
if (run_mode == GIMP_RUN_INTERACTIVE)
243
gimp_set_data ("plug_in_cubism", &cvals, sizeof (CubismVals));
242
gimp_set_data (PLUG_IN_PROC, &cvals, sizeof (CubismVals));
245
244
else if (status == GIMP_PDB_SUCCESS)
264
263
GtkObject *scale_data;
267
gimp_ui_init ("cubism", FALSE);
266
gimp_ui_init (PLUG_IN_BINARY, FALSE);
269
dialog = gimp_dialog_new (_("Cubism"), "cubism",
268
dialog = gimp_dialog_new (_("Cubism"), PLUG_IN_BINARY,
271
gimp_standard_help_func, "plug-in-cubism",
270
gimp_standard_help_func, PLUG_IN_PROC,
273
272
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
274
273
GTK_STOCK_OK, GTK_RESPONSE_OK,
277
gtk_dialog_set_alternative_button_order (GTK_DIALOG (dialog),
282
gimp_window_set_transient (GTK_WINDOW (dialog));
278
284
main_vbox = gtk_vbox_new (FALSE, 12);
279
285
gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 12);
280
286
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), main_vbox);
299
305
cvals.tile_size, 0.0, 100.0, 1.0, 10.0, 1,
302
g_signal_connect (scale_data, "value_changed",
308
g_signal_connect (scale_data, "value-changed",
303
309
G_CALLBACK (gimp_double_adjustment_update),
304
310
&cvals.tile_size);
305
g_signal_connect_swapped (scale_data, "value_changed",
311
g_signal_connect_swapped (scale_data, "value-changed",
306
312
G_CALLBACK (gimp_preview_invalidate),
312
318
cvals.tile_saturation, 0.0, 10.0, 0.1, 1, 1,
315
g_signal_connect (scale_data, "value_changed",
321
g_signal_connect (scale_data, "value-changed",
316
322
G_CALLBACK (gimp_double_adjustment_update),
317
323
&cvals.tile_saturation);
318
g_signal_connect_swapped (scale_data, "value_changed",
324
g_signal_connect_swapped (scale_data, "value-changed",
319
325
G_CALLBACK (gimp_preview_invalidate),
412
gimp_progress_init (_("Cubistic Transformation..."));
418
gimp_progress_init (_("Cubistic transformation"));
413
419
gimp_pixel_rgn_init (&src_rgn, drawable,
414
420
x1, y1, (x2 - x1), (y2 - y1), TRUE, TRUE);