124
109
/* the opacity scale */
125
gimp_prop_opacity_entry_new (config, "opacity",
126
GTK_TABLE (table), 0, table_row++,
110
scale = gimp_prop_opacity_spin_scale_new (config, "opacity",
112
gtk_box_pack_start (GTK_BOX (vbox), scale, FALSE, FALSE, 0);
113
gtk_widget_show (scale);
130
116
if (g_type_is_a (tool_type, GIMP_TYPE_BRUSH_TOOL))
134
button = gimp_prop_brush_box_new (NULL, GIMP_CONTEXT (tool_options), 2,
135
"brush-view-type", "brush-view-size");
136
gimp_table_attach_aligned (GTK_TABLE (table), 0, table_row++,
137
_("Brush:"), 0.0, 0.5,
140
adj = gimp_prop_scale_entry_new (config, "brush-scale",
141
GTK_TABLE (table), 0, table_row++,
145
gimp_scale_entry_set_logarithmic (adj, TRUE);
148
if (tool_has_opacity_dynamics (tool_type))
150
dynamics_labels[n_dynamics] = gtk_label_new (_("Opacity"));
154
if (tool_has_hardness_dynamics (tool_type))
156
dynamics_labels[n_dynamics] = gtk_label_new (_("Hardness"));
160
if (tool_has_rate_dynamics (tool_type))
162
dynamics_labels[n_dynamics] = gtk_label_new (_("Rate"));
166
if (tool_has_size_dynamics (tool_type))
168
dynamics_labels[n_dynamics] = gtk_label_new (_("Size"));
172
if (tool_has_color_dynamics (tool_type))
174
dynamics_labels[n_dynamics] = gtk_label_new (_("Color"));
180
GtkWidget *inner_frame;
183
gboolean rtl = gtk_widget_get_direction (vbox) == GTK_TEXT_DIR_RTL;
185
frame = gimp_prop_expander_new (config, "dynamics-expanded",
186
_("Brush Dynamics"));
187
gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
188
gtk_widget_show (frame);
190
inner_frame = gimp_frame_new ("<expander>");
191
gtk_container_add (GTK_CONTAINER (frame), inner_frame);
192
gtk_widget_show (inner_frame);
194
table = gtk_table_new (4, n_dynamics + 2, FALSE);
195
gtk_container_add (GTK_CONTAINER (inner_frame), table);
196
gtk_widget_show (table);
198
label = gtk_label_new (_("Pressure:"));
199
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
200
gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2,
201
GTK_SHRINK | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0);
202
gtk_widget_show (label);
204
label = gtk_label_new (_("Velocity:"));
205
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
206
gtk_table_attach (GTK_TABLE (table), label, 0, 1, 2, 3,
207
GTK_SHRINK | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0);
208
gtk_widget_show (label);
210
label = gtk_label_new (_("Random:"));
211
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
212
gtk_table_attach (GTK_TABLE (table), label, 0, 1, 3, 4,
213
GTK_SHRINK | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0);
214
gtk_widget_show (label);
216
pressure_options_gui (options, tool_type,
217
GTK_TABLE (table), 1,
220
velocity_options_gui (options, tool_type,
221
GTK_TABLE (table), 2);
223
random_options_gui (options, tool_type,
224
GTK_TABLE (table), 3);
226
/* EEK: pack the fixed *after* the buttons so the table calls
227
* size-allocates on it *before* it places the toggles. Fixes
228
* label positions in RTL mode.
230
fixed = gtk_fixed_new ();
231
gtk_table_attach (GTK_TABLE (table), fixed, 0, n_dynamics + 2, 0, 1,
232
GTK_SHRINK | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0);
233
gtk_widget_show (fixed);
235
for (i = 0; i < n_dynamics; i++)
237
gtk_label_set_angle (GTK_LABEL (dynamics_labels[i]),
239
gtk_misc_set_alignment (GTK_MISC (dynamics_labels[i]), 1.0, 1.0);
240
gtk_fixed_put (GTK_FIXED (fixed), dynamics_labels[i], 0, 0);
241
gtk_widget_show (dynamics_labels[i]);
245
if (g_type_is_a (tool_type, GIMP_TYPE_BRUSH_TOOL))
247
frame = fade_options_gui (options, tool_type);
122
button = gimp_prop_brush_box_new (NULL, GIMP_CONTEXT (tool_options),
124
"brush-view-type", "brush-view-size",
125
"gimp-brush-editor");
126
gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
127
gtk_widget_show (button);
129
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2);
130
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
131
gtk_widget_show (hbox);
133
scale = gimp_prop_spin_scale_new (config, "brush-size",
136
gimp_spin_scale_set_scale_limits (GIMP_SPIN_SCALE (scale), 1.0, 1000.0);
137
gtk_box_pack_start (GTK_BOX (hbox), scale, TRUE, TRUE, 0);
138
gtk_widget_show (scale);
140
button = gimp_stock_button_new (GIMP_STOCK_RESET, NULL);
141
gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);
142
gtk_image_set_from_stock (GTK_IMAGE (gtk_bin_get_child (GTK_BIN (button))),
143
GIMP_STOCK_RESET, GTK_ICON_SIZE_MENU);
144
gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0);
145
gtk_widget_show (button);
147
g_signal_connect (button, "clicked",
148
G_CALLBACK (gimp_paint_options_gui_reset_size),
151
gimp_help_set_help_data (button,
152
_("Reset size to brush's native size"), NULL);
154
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2);
155
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
156
gtk_widget_show (hbox);
158
scale = gimp_prop_spin_scale_new (config, "brush-aspect-ratio",
161
gtk_box_pack_start (GTK_BOX (hbox), scale, TRUE, TRUE, 0);
162
gtk_widget_show (scale);
164
button = gimp_stock_button_new (GIMP_STOCK_RESET, NULL);
165
gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);
166
gtk_image_set_from_stock (GTK_IMAGE (gtk_bin_get_child (GTK_BIN (button))),
167
GIMP_STOCK_RESET, GTK_ICON_SIZE_MENU);
168
gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0);
169
gtk_widget_show (button);
171
g_signal_connect (button, "clicked",
172
G_CALLBACK (gimp_paint_options_gui_reset_aspect_ratio),
175
gimp_help_set_help_data (button,
176
_("Reset aspect ratio to brush's native"), NULL);
178
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2);
179
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
180
gtk_widget_show (hbox);
182
scale = gimp_prop_spin_scale_new (config, "brush-angle",
185
gtk_box_pack_start (GTK_BOX (hbox), scale, TRUE, TRUE, 0);
186
gtk_widget_show (scale);
188
button = gimp_stock_button_new (GIMP_STOCK_RESET, NULL);
189
gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);
190
gtk_image_set_from_stock (GTK_IMAGE (gtk_bin_get_child (GTK_BIN (button))),
191
GIMP_STOCK_RESET, GTK_ICON_SIZE_MENU);
192
gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0);
193
gtk_widget_show (button);
195
g_signal_connect (button, "clicked",
196
G_CALLBACK (gimp_paint_options_gui_reset_angle),
199
gimp_help_set_help_data (button,
200
_("Reset angle to zero"), NULL);
202
button = gimp_prop_dynamics_box_new (NULL, GIMP_CONTEXT (tool_options),
204
"dynamics-view-type",
205
"dynamics-view-size",
206
"gimp-dynamics-editor");
207
gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
208
gtk_widget_show (button);
210
frame = dynamics_options_gui (options, tool_type);
248
211
gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
249
212
gtk_widget_show (frame);
277
251
tool_type == GIMP_TYPE_DODGE_BURN_TOOL ||
278
252
tool_type == GIMP_TYPE_SMUDGE_TOOL)
280
256
button = gimp_prop_check_button_new (config, "hard", _("Hard edge"));
281
257
gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
282
258
gtk_widget_show (button);
285
if (g_type_is_a (tool_type, GIMP_TYPE_PAINTBRUSH_TOOL))
287
frame = gradient_options_gui (options, tool_type, incremental_toggle);
288
gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
289
gtk_widget_show (frame);
296
265
/* private functions */
299
tool_has_opacity_dynamics (GType tool_type)
301
return (g_type_is_a (tool_type, GIMP_TYPE_PAINTBRUSH_TOOL) ||
302
tool_type == GIMP_TYPE_CLONE_TOOL ||
303
tool_type == GIMP_TYPE_HEAL_TOOL ||
304
tool_type == GIMP_TYPE_PERSPECTIVE_CLONE_TOOL ||
305
tool_type == GIMP_TYPE_DODGE_BURN_TOOL ||
306
tool_type == GIMP_TYPE_ERASER_TOOL);
310
tool_has_hardness_dynamics (GType tool_type)
312
return (tool_type == GIMP_TYPE_AIRBRUSH_TOOL ||
313
tool_type == GIMP_TYPE_CLONE_TOOL ||
314
tool_type == GIMP_TYPE_HEAL_TOOL ||
315
tool_type == GIMP_TYPE_PERSPECTIVE_CLONE_TOOL ||
316
tool_type == GIMP_TYPE_CONVOLVE_TOOL ||
317
tool_type == GIMP_TYPE_ERASER_TOOL ||
318
tool_type == GIMP_TYPE_DODGE_BURN_TOOL ||
319
tool_type == GIMP_TYPE_PAINTBRUSH_TOOL ||
320
tool_type == GIMP_TYPE_SMUDGE_TOOL);
324
tool_has_rate_dynamics (GType tool_type)
326
return (tool_type == GIMP_TYPE_AIRBRUSH_TOOL ||
327
tool_type == GIMP_TYPE_CONVOLVE_TOOL ||
328
tool_type == GIMP_TYPE_SMUDGE_TOOL);
332
tool_has_size_dynamics (GType tool_type)
334
return (g_type_is_a (tool_type, GIMP_TYPE_PAINTBRUSH_TOOL) ||
335
tool_type == GIMP_TYPE_CLONE_TOOL ||
336
tool_type == GIMP_TYPE_HEAL_TOOL ||
337
tool_type == GIMP_TYPE_PERSPECTIVE_CLONE_TOOL ||
338
tool_type == GIMP_TYPE_CONVOLVE_TOOL ||
339
tool_type == GIMP_TYPE_DODGE_BURN_TOOL ||
340
tool_type == GIMP_TYPE_ERASER_TOOL);
344
tool_has_color_dynamics (GType tool_type)
346
return (g_type_is_a (tool_type, GIMP_TYPE_PAINTBRUSH_TOOL));
350
dynamics_check_button_new (GObject *config,
351
const gchar *property_name,
358
button = gimp_prop_check_button_new (config, property_name, NULL);
359
gtk_table_attach (table, button, column, column + 1, row, row + 1,
360
GTK_SHRINK, GTK_SHRINK, 0, 0);
361
gtk_widget_show (button);
367
dynamics_check_button_size_allocate (GtkWidget *toggle,
368
GtkAllocation *allocation,
371
GtkWidget *fixed = label->parent;
374
if (gtk_widget_get_direction (label) == GTK_TEXT_DIR_LTR)
377
x = allocation->x + allocation->width - label->allocation.width;
379
x -= fixed->allocation.x;
381
y = fixed->allocation.height - label->allocation.height;
383
gtk_fixed_move (GTK_FIXED (fixed), label, x, y);
387
pressure_options_gui (GimpPaintOptions *paint_options,
393
GObject *config = G_OBJECT (paint_options);
396
GtkWidget *scalebutton;
398
if (tool_has_opacity_dynamics (tool_type))
400
button = dynamics_check_button_new (config, "pressure-opacity",
402
g_signal_connect (button, "size-allocate",
403
G_CALLBACK (dynamics_check_button_size_allocate),
408
if (tool_has_hardness_dynamics (tool_type))
410
button = dynamics_check_button_new (config, "pressure-hardness",
412
g_signal_connect (button, "size-allocate",
413
G_CALLBACK (dynamics_check_button_size_allocate),
418
if (tool_has_rate_dynamics (tool_type))
420
button = dynamics_check_button_new (config, "pressure-rate",
422
g_signal_connect (button, "size-allocate",
423
G_CALLBACK (dynamics_check_button_size_allocate),
428
if (tool_has_size_dynamics (tool_type))
430
if (tool_type != GIMP_TYPE_AIRBRUSH_TOOL)
431
button = dynamics_check_button_new (config, "pressure-size",
434
button = dynamics_check_button_new (config, "pressure-inverse-size",
437
g_signal_connect (button, "size-allocate",
438
G_CALLBACK (dynamics_check_button_size_allocate),
443
if (tool_has_color_dynamics (tool_type))
445
button = dynamics_check_button_new (config, "pressure-color",
447
g_signal_connect (button, "size-allocate",
448
G_CALLBACK (dynamics_check_button_size_allocate),
453
scalebutton = gimp_prop_scale_button_new (config, "pressure-prescale");
454
gtk_table_attach (table, scalebutton, column, column + 1, row, row + 1,
455
GTK_SHRINK, GTK_SHRINK, 0, 0);
456
gtk_widget_show (scalebutton);
460
velocity_options_gui (GimpPaintOptions *paint_options,
465
GObject *config = G_OBJECT (paint_options);
467
GtkWidget *scalebutton;
469
if (tool_has_opacity_dynamics (tool_type))
471
dynamics_check_button_new (config, "velocity-opacity",
472
table, column++, row);
475
if (tool_has_hardness_dynamics (tool_type))
477
dynamics_check_button_new (config, "velocity-hardness",
478
table, column++, row);
481
if (tool_has_rate_dynamics (tool_type))
483
dynamics_check_button_new (config, "velocity-rate",
484
table, column++, row);
487
if (tool_has_size_dynamics (tool_type))
489
dynamics_check_button_new (config, "velocity-size",
490
table, column++, row);
493
if (tool_has_color_dynamics (tool_type))
495
dynamics_check_button_new (config, "velocity-color",
496
table, column++, row);
499
scalebutton = gimp_prop_scale_button_new (config, "velocity-prescale");
500
gtk_table_attach (table, scalebutton, column, column + 1, row, row + 1,
501
GTK_SHRINK, GTK_SHRINK, 0, 0);
502
gtk_widget_show (scalebutton);
506
random_options_gui (GimpPaintOptions *paint_options,
511
GObject *config = G_OBJECT (paint_options);
513
GtkWidget *scalebutton;
515
if (tool_has_opacity_dynamics (tool_type))
517
dynamics_check_button_new (config, "random-opacity",
518
table, column++, row);
521
if (tool_has_hardness_dynamics (tool_type))
523
dynamics_check_button_new (config, "random-hardness",
524
table, column++, row);
527
if (tool_has_rate_dynamics (tool_type))
529
dynamics_check_button_new (config, "random-rate",
530
table, column++, row);
533
if (tool_has_size_dynamics (tool_type))
535
dynamics_check_button_new (config, "random-size",
536
table, column++, row);
539
if (tool_has_color_dynamics (tool_type))
541
dynamics_check_button_new (config, "random-color",
542
table, column++, row);
545
scalebutton = gimp_prop_scale_button_new (config, "random-prescale");
546
gtk_table_attach (table, scalebutton, column, column + 1, row, row + 1,
547
GTK_SHRINK, GTK_SHRINK, 0, 0);
548
gtk_widget_show (scalebutton);
552
fade_options_gui (GimpPaintOptions *paint_options,
268
dynamics_options_gui (GimpPaintOptions *paint_options,
555
271
GObject *config = G_OBJECT (paint_options);
556
272
GtkWidget *frame;
558
GtkWidget *spinbutton;
273
GtkWidget *inner_frame;
561
table = gtk_table_new (1, 3, FALSE);
562
gtk_table_set_col_spacings (GTK_TABLE (table), 2);
564
frame = gimp_prop_expanding_frame_new (config, "use-fade",
568
/* the fade-out sizeentry */
569
spinbutton = gimp_prop_spin_button_new (config, "fade-length",
571
gtk_entry_set_width_chars (GTK_ENTRY (spinbutton), 6);
573
gimp_table_attach_aligned (GTK_TABLE (table), 0, 0,
574
_("Length:"), 0.0, 0.5,
575
spinbutton, 1, FALSE);
577
/* the fade-out unitmenu */
578
menu = gimp_prop_unit_menu_new (config, "fade-unit", "%a");
579
gtk_table_attach (GTK_TABLE (table), menu, 2, 3, 0, 1,
580
GTK_SHRINK | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0);
280
GtkWidget *inner_vbox;
284
frame = gimp_prop_expander_new (config, "dynamics-expanded",
285
_("Dynamics Options"));
287
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2);
288
gtk_container_add (GTK_CONTAINER (frame), vbox);
289
gtk_widget_show (vbox);
291
inner_frame = gimp_frame_new (_("Fade Options"));
292
gtk_box_pack_start (GTK_BOX (vbox), inner_frame, FALSE, FALSE, 0);
293
gtk_widget_show (inner_frame);
295
inner_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2);
296
gtk_container_add (GTK_CONTAINER (inner_frame), inner_vbox);
297
gtk_widget_show (inner_vbox);
299
/* the fade-out scale & unitmenu */
300
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2);
301
gtk_box_pack_start (GTK_BOX (inner_vbox), hbox, FALSE, FALSE, 0);
302
gtk_widget_show (hbox);
304
scale = gimp_prop_spin_scale_new (config, "fade-length",
305
_("Fade length"), 1.0, 50.0, 0);
306
gimp_spin_scale_set_scale_limits (GIMP_SPIN_SCALE (scale), 1.0, 1000.0);
307
gtk_box_pack_start (GTK_BOX (hbox), scale, TRUE, TRUE, 0);
308
gtk_widget_show (scale);
310
menu = gimp_prop_unit_combo_box_new (config, "fade-unit");
311
gtk_box_pack_start (GTK_BOX (hbox), menu, FALSE, FALSE, 0);
581
312
gtk_widget_show (menu);
315
/* FIXME pixel digits */
583
316
g_object_set_data (G_OBJECT (menu), "set_digits", spinbutton);
584
317
gimp_unit_menu_set_pixel_digits (GIMP_UNIT_MENU (menu), 0);
320
/* the repeat type */
321
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2);
322
gtk_box_pack_start (GTK_BOX (inner_vbox), hbox, FALSE, FALSE, 0);
323
gtk_widget_show (hbox);
325
label = gtk_label_new (_("Repeat:"));
326
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
327
gtk_widget_show (label);
329
combo = gimp_prop_enum_combo_box_new (config, "fade-repeat", 0, 0);
330
gtk_box_pack_start (GTK_BOX (hbox), combo, TRUE, TRUE, 0);
331
gtk_widget_show (combo);
333
checkbox = gimp_prop_check_button_new (config, "fade-reverse",
335
gtk_box_pack_start (GTK_BOX (inner_vbox), checkbox, FALSE, FALSE, 0);
336
gtk_widget_show (checkbox);
339
if (g_type_is_a (tool_type, GIMP_TYPE_PAINTBRUSH_TOOL))
341
inner_frame = gimp_frame_new (_("Color Options"));
342
gtk_box_pack_start (GTK_BOX (vbox), inner_frame, FALSE, FALSE, 0);
343
gtk_widget_show (inner_frame);
345
box = gimp_prop_gradient_box_new (NULL, GIMP_CONTEXT (config),
347
"gradient-view-type",
348
"gradient-view-size",
350
"gimp-gradient-editor");
351
gtk_container_add (GTK_CONTAINER (inner_frame), box);
352
gtk_widget_show (box);
593
362
GObject *config = G_OBJECT (paint_options);
594
363
GtkWidget *frame;
597
table = gtk_table_new (1, 3, FALSE);
598
gtk_table_set_col_spacings (GTK_TABLE (table), 2);
366
scale = gimp_prop_spin_scale_new (config, "jitter-amount",
600
370
frame = gimp_prop_expanding_frame_new (config, "use-jitter",
601
371
_("Apply Jitter"),
604
gimp_prop_scale_entry_new (config, "jitter-amount",
605
GTK_TABLE (table), 0, 0,
613
377
static GtkWidget *
614
gradient_options_gui (GimpPaintOptions *paint_options,
616
GtkWidget *incremental_toggle)
378
smoothing_options_gui (GimpPaintOptions *paint_options,
618
381
GObject *config = G_OBJECT (paint_options);
619
382
GtkWidget *frame;
621
GtkWidget *spinbutton;
626
table = gtk_table_new (3, 3, FALSE);
627
gtk_table_set_col_spacings (GTK_TABLE (table), 2);
628
gtk_table_set_row_spacings (GTK_TABLE (table), 2);
630
frame = gimp_prop_expanding_frame_new (config, "use-gradient",
631
_("Use color from gradient"),
634
if (incremental_toggle)
636
gtk_widget_set_sensitive (incremental_toggle,
637
! paint_options->gradient_options->use_gradient);
638
g_object_set_data (G_OBJECT (button), "inverse_sensitive",
642
/* the gradient view */
643
button = gimp_prop_gradient_box_new (NULL, GIMP_CONTEXT (config), 2,
644
"gradient-view-type",
645
"gradient-view-size",
647
gimp_table_attach_aligned (GTK_TABLE (table), 0, 0,
648
_("Gradient:"), 0.0, 0.5,
651
/* the gradient length scale */
652
spinbutton = gimp_prop_spin_button_new (config, "gradient-length",
654
gtk_entry_set_width_chars (GTK_ENTRY (spinbutton), 6);
656
gimp_table_attach_aligned (GTK_TABLE (table), 0, 1,
657
_("Length:"), 0.0, 0.5,
658
spinbutton, 1, FALSE);
660
/* the gradient unitmenu */
661
menu = gimp_prop_unit_menu_new (config, "gradient-unit", "%a");
662
gtk_table_attach (GTK_TABLE (table), menu, 2, 3, 1, 2,
663
GTK_SHRINK | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0);
664
gtk_widget_show (menu);
666
g_object_set_data (G_OBJECT (menu), "set_digits", spinbutton);
667
gimp_unit_menu_set_pixel_digits (GIMP_UNIT_MENU (menu), 0);
669
/* the repeat type */
670
combo = gimp_prop_enum_combo_box_new (config, "gradient-repeat", 0, 0);
671
gimp_table_attach_aligned (GTK_TABLE (table), 0, 2,
672
_("Repeat:"), 0.0, 0.5,
386
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2);
388
frame = gimp_prop_expanding_frame_new (config, "use-smoothing",
392
scale = gimp_prop_spin_scale_new (config, "smoothing-quality",
395
gtk_box_pack_start (GTK_BOX (vbox), scale, FALSE, FALSE, 0);
396
gtk_widget_show (scale);
398
scale = gimp_prop_spin_scale_new (config, "smoothing-factor",
401
gtk_box_pack_start (GTK_BOX (vbox), scale, FALSE, FALSE, 0);
402
gtk_widget_show (scale);
408
gimp_paint_options_gui_reset_size (GtkWidget *button,
409
GimpPaintOptions *paint_options)
411
GimpBrush *brush = gimp_context_get_brush (GIMP_CONTEXT (paint_options));
415
g_object_set (paint_options,
416
"brush-size", (gdouble) MAX (brush->mask->width,
417
brush->mask->height),
423
gimp_paint_options_gui_reset_aspect_ratio (GtkWidget *button,
424
GimpPaintOptions *paint_options)
426
g_object_set (paint_options,
427
"brush-aspect-ratio", 0.0,
432
gimp_paint_options_gui_reset_angle (GtkWidget *button,
433
GimpPaintOptions *paint_options)
435
g_object_set (paint_options,