app: Custom gui for channel mixer

This commit is contained in:
Alexia Death 2014-12-07 19:25:11 +02:00
parent 5c9a3f515b
commit 44be17a8c1
3 changed files with 112 additions and 0 deletions

View File

@ -521,6 +521,109 @@ _gimp_prop_gui_new_convolution_matrix (GObject *config,
return main_vbox;
}
GtkWidget *
_gimp_prop_gui_new_channel_mixer (GObject *config,
GParamSpec **param_specs,
guint n_param_specs,
GimpContext *context,
GimpCreatePickerFunc create_picker_func,
gpointer picker_creator)
{
GtkWidget *main_vbox;
GtkWidget *vbox;
GtkWidget *set_label;
GtkWidget *checkbox;
GtkWidget *scale;
const gchar *label;
g_return_val_if_fail (G_IS_OBJECT (config), NULL);
g_return_val_if_fail (param_specs != NULL, NULL);
g_return_val_if_fail (n_param_specs > 0, NULL);
g_return_val_if_fail (GIMP_IS_CONTEXT (context), NULL);
main_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 4);
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 1);
gtk_box_pack_start (GTK_BOX (main_vbox), vbox, FALSE, FALSE, 0);
gtk_widget_show (vbox);
checkbox = gimp_prop_widget_new (config, "preserve-luminosity",
context, NULL, NULL, &label);
gtk_box_pack_start (GTK_BOX (vbox), checkbox, TRUE, TRUE, 0);
gtk_widget_show (checkbox);
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 4);
gtk_box_pack_start (GTK_BOX (main_vbox), vbox, FALSE, FALSE, 0);
gtk_widget_show (vbox);
set_label = gtk_label_new (_("Red channel"));
gtk_box_pack_start (GTK_BOX (vbox), set_label, FALSE, FALSE, 0);
gtk_widget_show (set_label);
scale = gimp_prop_widget_new (config, "rr-gain",
context, NULL, NULL, &label);
gtk_box_pack_start (GTK_BOX (vbox), scale, TRUE, TRUE, 0);
gtk_widget_show (scale);
scale = gimp_prop_widget_new (config, "rg-gain",
context, NULL, NULL, &label);
gtk_box_pack_start (GTK_BOX (vbox), scale, TRUE, TRUE, 0);
gtk_widget_show (scale);
scale = gimp_prop_widget_new (config, "rb-gain",
context, NULL, NULL, &label);
gtk_box_pack_start (GTK_BOX (vbox), scale, TRUE, TRUE, 0);
gtk_widget_show (scale);
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 4);
gtk_box_pack_start (GTK_BOX (main_vbox), vbox, FALSE, FALSE, 0);
gtk_widget_show (vbox);
set_label = gtk_label_new (_("Green channel"));
gtk_box_pack_start (GTK_BOX (vbox), set_label, FALSE, FALSE, 0);
gtk_widget_show (set_label);
scale = gimp_prop_widget_new (config, "gr-gain",
context, NULL, NULL, &label);
gtk_box_pack_start (GTK_BOX (vbox), scale, TRUE, TRUE, 0);
gtk_widget_show (scale);
scale = gimp_prop_widget_new (config, "gg-gain",
context, NULL, NULL, &label);
gtk_box_pack_start (GTK_BOX (vbox), scale, TRUE, TRUE, 0);
gtk_widget_show (scale);
scale = gimp_prop_widget_new (config, "gb-gain",
context, NULL, NULL, &label);
gtk_box_pack_start (GTK_BOX (vbox), scale, TRUE, TRUE, 0);
gtk_widget_show (scale);
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 4);
gtk_box_pack_start (GTK_BOX (main_vbox), vbox, FALSE, FALSE, 0);
gtk_widget_show (vbox);
set_label = gtk_label_new (_("Blue channel"));
gtk_box_pack_start (GTK_BOX (vbox), set_label, FALSE, FALSE, 0);
gtk_widget_show (set_label);
scale = gimp_prop_widget_new (config, "br-gain",
context, NULL, NULL, &label);
gtk_box_pack_start (GTK_BOX (vbox), scale, TRUE, TRUE, 0);
gtk_widget_show (scale);
scale = gimp_prop_widget_new (config, "bg-gain",
context, NULL, NULL, &label);
gtk_box_pack_start (GTK_BOX (vbox), scale, TRUE, TRUE, 0);
gtk_widget_show (scale);
scale = gimp_prop_widget_new (config, "bb-gain",
context, NULL, NULL, &label);
gtk_box_pack_start (GTK_BOX (vbox), scale, TRUE, TRUE, 0);
gtk_widget_show (scale);
return main_vbox;
}
/* private functions */

View File

@ -46,5 +46,12 @@ GtkWidget * _gimp_prop_gui_new_convolution_matrix
GimpCreatePickerFunc create_picker_func,
gpointer picker_creator);
GtkWidget * _gimp_prop_gui_new_channel_mixer
(GObject *config,
GParamSpec **param_specs,
guint n_param_specs,
GimpContext *context,
GimpCreatePickerFunc create_picker_func,
gpointer picker_creator);
#endif /* __GIMP_PROP_GUI_CONSTRUCTORS_H__ */

View File

@ -327,6 +327,8 @@ gui_new_funcs[] =
_gimp_prop_gui_new_color_rotate },
{ "GimpGegl-gegl-convolution-matrix-config",
_gimp_prop_gui_new_convolution_matrix },
{ "GimpGegl-gegl-channel-mixer-config",
_gimp_prop_gui_new_channel_mixer },
{ NULL,
_gimp_prop_gui_new_generic }
};