/* PIKA - Photo and Image Kooker Application * a rebranding of The GNU Image Manipulation Program (created with heckimp) * A derived work which may be trivial. However, any changes may be (C)2023 by Aldercone Studio * * Original copyright, applying to most contents (license remains unchanged): * Copyright (C) 1995 Spencer Kimball and Peter Mattis * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "config.h" #include #include #include "libpikabase/pikabase.h" #include "libpikaconfig/pikaconfig.h" #include "libpikawidgets/pikawidgets.h" #include "tools-types.h" #include "config/pikacoreconfig.h" #include "core/pika.h" #include "paint/pikamybrushoptions.h" #include "widgets/pikapropwidgets.h" #include "widgets/pikaviewablebox.h" #include "pikamybrushoptions-gui.h" #include "pikapaintoptions-gui.h" #include "pika-intl.h" GtkWidget * pika_mybrush_options_gui (PikaToolOptions *tool_options) { GObject *config = G_OBJECT (tool_options); GtkWidget *vbox = pika_paint_options_gui (tool_options); GtkWidget *vbox2; GtkWidget *button; GtkWidget *scale; GtkWidget *combo_box; GtkWidget *frame; /* the brush */ button = pika_prop_mybrush_box_new (NULL, PIKA_CONTEXT (tool_options), _("Brush"), 2, NULL, NULL); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); /* erase mode */ scale = pika_prop_check_button_new (config, "eraser", NULL); gtk_box_pack_start (GTK_BOX (vbox), scale, FALSE, FALSE, 0); /* no erasing */ scale = pika_prop_check_button_new (config, "no-erasing", NULL); gtk_box_pack_start (GTK_BOX (vbox), scale, FALSE, FALSE, 0); /* radius */ scale = pika_prop_spin_scale_new (config, "radius", 0.1, 1.0, 2); gtk_box_pack_start (GTK_BOX (vbox), scale, FALSE, FALSE, 0); /* opaque */ scale = pika_prop_spin_scale_new (config, "opaque", 0.1, 1.0, 2); gtk_box_pack_start (GTK_BOX (vbox), scale, FALSE, FALSE, 0); /* hardness */ scale = pika_prop_spin_scale_new (config, "hardness", 0.1, 1.0, 2); gtk_box_pack_start (GTK_BOX (vbox), scale, FALSE, FALSE, 0); /* Expand layer options */ vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2); scale = pika_prop_spin_scale_new (config, "expand-amount", 1, 10, 2); pika_spin_scale_set_constrain_drag (PIKA_SPIN_SCALE (scale), TRUE); pika_spin_scale_set_scale_limits (PIKA_SPIN_SCALE (scale), 1.0, 1000.0); pika_spin_scale_set_gamma (PIKA_SPIN_SCALE (scale), 1.0); gtk_box_pack_start (GTK_BOX (vbox2), scale, FALSE, FALSE, 0); combo_box = pika_prop_enum_combo_box_new (config, "expand-fill-type", 0, 0); gtk_box_pack_start (GTK_BOX (vbox2), combo_box, FALSE, FALSE, 0); frame = pika_prop_enum_radio_frame_new (config, "expand-mask-fill-type", "Fill Layer Mask With", 0, 1); gtk_box_pack_start (GTK_BOX (vbox2), frame, FALSE, FALSE, 0); frame = pika_prop_expanding_frame_new (config, "expand-use", NULL, vbox2, NULL); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); gtk_widget_show (frame); return vbox; }