110
static GimpParamDef args[] =
107
static const GimpParamDef args[] =
112
{ GIMP_PDB_INT32, "run_mode", "Interactive" },
113
{ GIMP_PDB_IMAGE, "image", "Input image" },
114
{ GIMP_PDB_DRAWABLE, "drawable", "Input drawable" },
115
{ GIMP_PDB_INT8, "fromred", "Red value (from)" },
116
{ GIMP_PDB_INT8, "fromgreen", "Green value (from)" },
117
{ GIMP_PDB_INT8, "fromblue", "Blue value (from)" },
118
{ GIMP_PDB_INT8, "tored", "Red value (to)" },
119
{ GIMP_PDB_INT8, "togreen", "Green value (to)" },
120
{ GIMP_PDB_INT8, "toblue", "Blue value (to)" },
121
{ GIMP_PDB_INT8, "red_threshold", "Red threshold" },
122
{ GIMP_PDB_INT8, "green_threshold", "Green threshold" },
123
{ GIMP_PDB_INT8, "blue_threshold", "Blue threshold" }
109
{ GIMP_PDB_INT32, "run-mode", "Interactive" },
110
{ GIMP_PDB_IMAGE, "image", "Input image" },
111
{ GIMP_PDB_DRAWABLE, "drawable", "Input drawable" },
112
{ GIMP_PDB_INT8, "from-red", "Red value (from)" },
113
{ GIMP_PDB_INT8, "from-green", "Green value (from)" },
114
{ GIMP_PDB_INT8, "from-blue", "Blue value (from)" },
115
{ GIMP_PDB_INT8, "to-red", "Red value (to)" },
116
{ GIMP_PDB_INT8, "to-green", "Green value (to)" },
117
{ GIMP_PDB_INT8, "to-blue", "Blue value (to)" },
118
{ GIMP_PDB_INT8, "red-threshold", "Red threshold" },
119
{ GIMP_PDB_INT8, "green-threshold", "Green threshold" },
120
{ GIMP_PDB_INT8, "blue-threshold", "Blue threshold" }
126
gimp_install_procedure ("plug_in_exchange",
123
gimp_install_procedure (PLUG_IN_PROC,
124
N_("Swap one color with another"),
128
125
"Exchange one color with another, optionally setting a threshold "
129
126
"to convert from one shade to another",
130
127
"robert@experimental.net",
287
284
gint framenumber;
290
gimp_ui_init ("exchange", TRUE);
287
gimp_ui_init (PLUG_IN_BINARY, TRUE);
292
/* set up the dialog */
293
dialog = gimp_dialog_new (_("Color Exchange"), "exchange",
289
dialog = gimp_dialog_new (_("Color Exchange"), PLUG_IN_BINARY,
295
gimp_standard_help_func, "plug-in-exchange",
291
gimp_standard_help_func, PLUG_IN_PROC,
297
293
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
298
294
GTK_STOCK_OK, GTK_RESPONSE_OK,
298
gtk_dialog_set_alternative_button_order (GTK_DIALOG (dialog),
303
gimp_window_set_transient (GTK_WINDOW (dialog));
302
305
/* do some boxes here */
303
306
main_vbox = gtk_vbox_new (FALSE, 12);
304
307
gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 12);
305
308
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), main_vbox);
306
309
gtk_widget_show (main_vbox);
308
frame = gimp_frame_new (_("Middle-click inside preview to pick \"From Color\""));
311
frame = gimp_frame_new (_("Middle-Click Inside Preview to Pick \"From Color\""));
309
312
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), frame);
310
313
gtk_widget_show (frame);
325
328
&xargs.threshold,
326
329
GIMP_COLOR_AREA_FLAT);
328
g_signal_connect (threshold, "color_changed",
331
g_signal_connect (threshold, "color-changed",
329
332
G_CALLBACK (gimp_color_button_get_color),
330
333
&xargs.threshold);
331
g_signal_connect (threshold, "color_changed",
334
g_signal_connect (threshold, "color-changed",
332
335
G_CALLBACK (color_button_callback),
333
336
&xargs.threshold);
334
g_signal_connect_swapped (threshold, "color_changed",
337
g_signal_connect_swapped (threshold, "color-changed",
335
338
G_CALLBACK (gimp_preview_invalidate),
372
375
colorbutton, 1, FALSE);
374
g_signal_connect (colorbutton, "color_changed",
377
g_signal_connect (colorbutton, "color-changed",
375
378
G_CALLBACK (gimp_color_button_get_color),
376
379
framenumber ? &xargs.to : &xargs.from);
377
g_signal_connect (colorbutton, "color_changed",
380
g_signal_connect (colorbutton, "color-changed",
378
381
G_CALLBACK (color_button_callback),
379
382
framenumber ? &xargs.to : &xargs.from);
380
g_signal_connect_swapped (colorbutton, "color_changed",
383
g_signal_connect_swapped (colorbutton, "color-changed",
381
384
G_CALLBACK (gimp_preview_invalidate),
403
406
g_object_set_data (G_OBJECT (adj), "colorbutton", colorbutton);
404
407
g_object_set_data (G_OBJECT (colorbutton), "red", adj);
406
g_signal_connect (adj, "value_changed",
409
g_signal_connect (adj, "value-changed",
407
410
G_CALLBACK (gimp_double_adjustment_update),
408
411
framenumber ? &xargs.to.r : &xargs.from.r);
409
g_signal_connect (adj, "value_changed",
412
g_signal_connect (adj, "value-changed",
410
413
G_CALLBACK (scale_callback),
411
414
framenumber ? &xargs.to : &xargs.from);
412
g_signal_connect_swapped (adj, "value_changed",
415
g_signal_connect_swapped (adj, "value-changed",
413
416
G_CALLBACK (gimp_preview_invalidate),
429
432
g_object_set_data (G_OBJECT (adj), "colorbutton", threshold);
430
433
g_object_set_data (G_OBJECT (threshold), "red", adj);
432
g_signal_connect (adj, "value_changed",
435
g_signal_connect (adj, "value-changed",
433
436
G_CALLBACK (gimp_double_adjustment_update),
434
437
&xargs.threshold.r);
435
g_signal_connect (adj, "value_changed",
438
g_signal_connect (adj, "value-changed",
436
439
G_CALLBACK (scale_callback),
437
440
&xargs.threshold);
438
g_signal_connect_swapped (adj, "value_changed",
441
g_signal_connect_swapped (adj, "value-changed",
439
442
G_CALLBACK (gimp_preview_invalidate),
463
466
g_object_set_data (G_OBJECT (adj), "colorbutton", colorbutton);
464
467
g_object_set_data (G_OBJECT (colorbutton), "green", adj);
466
g_signal_connect (adj, "value_changed",
469
g_signal_connect (adj, "value-changed",
467
470
G_CALLBACK (gimp_double_adjustment_update),
468
471
framenumber ? &xargs.to.g : &xargs.from.g);
469
g_signal_connect (adj, "value_changed",
472
g_signal_connect (adj, "value-changed",
470
473
G_CALLBACK (scale_callback),
471
474
framenumber ? &xargs.to : &xargs.from);
472
g_signal_connect_swapped (adj, "value_changed",
475
g_signal_connect_swapped (adj, "value-changed",
473
476
G_CALLBACK (gimp_preview_invalidate),
477
479
scale = GTK_WIDGET (GIMP_SCALE_ENTRY_SCALE (adj));
478
480
gtk_range_set_update_policy (GTK_RANGE (scale), GTK_UPDATE_DELAYED);
479
481
gtk_size_group_add_widget (group, GIMP_SCALE_ENTRY_LABEL (adj));
490
492
g_object_set_data (G_OBJECT (adj), "colorbutton", threshold);
491
493
g_object_set_data (G_OBJECT (threshold), "green", adj);
493
g_signal_connect (adj, "value_changed",
495
g_signal_connect (adj, "value-changed",
494
496
G_CALLBACK (gimp_double_adjustment_update),
495
497
&xargs.threshold.g);
496
g_signal_connect (adj, "value_changed",
498
g_signal_connect (adj, "value-changed",
497
499
G_CALLBACK (scale_callback),
498
500
&xargs.threshold);
499
g_signal_connect_swapped (adj, "value_changed",
501
g_signal_connect_swapped (adj, "value-changed",
500
502
G_CALLBACK (gimp_preview_invalidate),
525
527
g_object_set_data (G_OBJECT (adj), "colorbutton", colorbutton);
526
528
g_object_set_data (G_OBJECT (colorbutton), "blue", adj);
528
g_signal_connect (adj, "value_changed",
530
g_signal_connect (adj, "value-changed",
529
531
G_CALLBACK (gimp_double_adjustment_update),
530
532
framenumber ? &xargs.to.b : &xargs.from.b);
531
g_signal_connect (adj, "value_changed",
533
g_signal_connect (adj, "value-changed",
532
534
G_CALLBACK (scale_callback),
533
535
framenumber ? &xargs.to : &xargs.from);
534
g_signal_connect_swapped (adj, "value_changed",
536
g_signal_connect_swapped (adj, "value-changed",
535
537
G_CALLBACK (gimp_preview_invalidate),
551
553
g_object_set_data (G_OBJECT (adj), "colorbutton", threshold);
552
554
g_object_set_data (G_OBJECT (threshold), "blue", adj);
554
g_signal_connect (adj, "value_changed",
556
g_signal_connect (adj, "value-changed",
555
557
G_CALLBACK (gimp_double_adjustment_update),
556
558
&xargs.threshold.b);
557
g_signal_connect (adj, "value_changed",
559
g_signal_connect (adj, "value-changed",
558
560
G_CALLBACK (scale_callback),
559
561
&xargs.threshold);
560
g_signal_connect_swapped (adj, "value_changed",
562
g_signal_connect_swapped (adj, "value-changed",
561
563
G_CALLBACK (gimp_preview_invalidate),