diff --git a/app/actions/filters-actions.c b/app/actions/filters-actions.c index 496d831117..109f7e6f1b 100644 --- a/app/actions/filters-actions.c +++ b/app/actions/filters-actions.c @@ -568,6 +568,11 @@ static const GimpStringActionEntry filters_interactive_actions[] = "gegl:sepia", GIMP_HELP_FILTER_SEPIA }, + { "filters-shadows-highlights", GIMP_ICON_GEGL, + NC_("filters-action", "S_hadows-Highlights..."), NULL, NULL, + "gegl:shadows-highlights", + GIMP_HELP_FILTER_EXPOSURE }, + { "filters-shift", GIMP_ICON_GEGL, NC_("filters-action", "_Shift..."), NULL, NULL, "gegl:shift", diff --git a/app/propgui/Makefile.am b/app/propgui/Makefile.am index e94e9eb348..6fca8bdeb8 100644 --- a/app/propgui/Makefile.am +++ b/app/propgui/Makefile.am @@ -37,6 +37,8 @@ libapppropgui_a_SOURCES = \ gimppropgui-generic.h \ gimppropgui-hue-saturation.c \ gimppropgui-hue-saturation.h \ + gimppropgui-shadows-highlights.c \ + gimppropgui-shadows-highlights.h \ gimppropgui-spiral.c \ gimppropgui-spiral.h \ gimppropgui-supernova.c \ diff --git a/app/propgui/gimppropgui-shadows-highlights.c b/app/propgui/gimppropgui-shadows-highlights.c new file mode 100644 index 0000000000..48a13f72ce --- /dev/null +++ b/app/propgui/gimppropgui-shadows-highlights.c @@ -0,0 +1,123 @@ +/* GIMP - The GNU Image Manipulation Program + * Copyright (C) 1995-1997 Spencer Kimball and Peter Mattis + * + * gimppropgui-shadows-highlights.c + * Copyright (C) 2002-2014 Michael Natterer + * Sven Neumann + * + * 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 "libgimpwidgets/gimpwidgets.h" + +#include "propgui-types.h" + +#include "core/gimpcontext.h" + +#include "gimppropgui.h" +#include "gimppropgui-shadows-highlights.h" + +#include "gimp-intl.h" + + +GtkWidget * +_gimp_prop_gui_new_shadows_highlights (GObject *config, + GParamSpec **param_specs, + guint n_param_specs, + GeglRectangle *area, + GimpContext *context, + GimpCreatePickerFunc create_picker_func, + GimpCreateControllerFunc create_controller_func, + gpointer creator) +{ + GtkWidget *main_vbox; + GtkWidget *frame; + GtkWidget *vbox; + 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, 3); + + frame = gimp_frame_new (_("Shadows")); + gtk_box_pack_start (GTK_BOX (main_vbox), frame, FALSE, FALSE, 0); + gtk_widget_show (frame); + + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2); + gtk_container_add (GTK_CONTAINER (frame), vbox); + gtk_widget_show (vbox); + + scale = gimp_prop_widget_new (config, "shadows", + area, context, NULL, NULL, NULL, &label); + gtk_box_pack_start (GTK_BOX (vbox), scale, FALSE, FALSE, 0); + gtk_widget_show (scale); + + scale = gimp_prop_widget_new (config, "shadows_ccorrect", + area, context, NULL, NULL, NULL, &label); + gtk_box_pack_start (GTK_BOX (vbox), scale, FALSE, FALSE, 0); + gtk_widget_show (scale); + + frame = gimp_frame_new (_("Highlights")); + gtk_box_pack_start (GTK_BOX (main_vbox), frame, FALSE, FALSE, 0); + gtk_widget_show (frame); + + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2); + gtk_container_add (GTK_CONTAINER (frame), vbox); + gtk_widget_show (vbox); + + scale = gimp_prop_widget_new (config, "highlights", + area, context, NULL, NULL, NULL, &label); + gtk_box_pack_start (GTK_BOX (vbox), scale, FALSE, FALSE, 0); + gtk_widget_show (scale); + + scale = gimp_prop_widget_new (config, "highlights_ccorrect", + area, context, NULL, NULL, NULL, &label); + gtk_box_pack_start (GTK_BOX (vbox), scale, FALSE, FALSE, 0); + gtk_widget_show (scale); + + frame = gimp_frame_new (_("Common")); + gtk_box_pack_start (GTK_BOX (main_vbox), frame, FALSE, FALSE, 0); + gtk_widget_show (frame); + + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2); + gtk_container_add (GTK_CONTAINER (frame), vbox); + gtk_widget_show (vbox); + + scale = gimp_prop_widget_new (config, "whitepoint", + area, context, NULL, NULL, NULL, &label); + gtk_box_pack_start (GTK_BOX (vbox), scale, FALSE, FALSE, 0); + gtk_widget_show (scale); + + scale = gimp_prop_widget_new (config, "radius", + area, context, NULL, NULL, NULL, &label); + gtk_box_pack_start (GTK_BOX (vbox), scale, FALSE, FALSE, 0); + gtk_widget_show (scale); + + scale = gimp_prop_widget_new (config, "compress", + area, context, NULL, NULL, NULL, &label); + gtk_box_pack_start (GTK_BOX (vbox), scale, FALSE, FALSE, 0); + gtk_widget_show (scale); + + return main_vbox; +} diff --git a/app/propgui/gimppropgui-shadows-highlights.h b/app/propgui/gimppropgui-shadows-highlights.h new file mode 100644 index 0000000000..e9da17c130 --- /dev/null +++ b/app/propgui/gimppropgui-shadows-highlights.h @@ -0,0 +1,35 @@ +/* GIMP - The GNU Image Manipulation Program + * Copyright (C) 1995-1997 Spencer Kimball and Peter Mattis + * + * gimppropgui-shadows-highlights.h + * + * 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 . + */ + +#ifndef __GIMP_PROP_GUI_SHADOWS_HIGHLIGHTS_H__ +#define __GIMP_PROP_GUI_SHADOWS_HIGHLIGHTS_H__ + + +GtkWidget * +_gimp_prop_gui_new_shadows_highlights (GObject *config, + GParamSpec **param_specs, + guint n_param_specs, + GeglRectangle *area, + GimpContext *context, + GimpCreatePickerFunc create_picker_func, + GimpCreateControllerFunc create_controller_func, + gpointer creator); + + +#endif /* __GIMP_PROP_GUI_SHADOWS_HIGHLIGHTS_H__ */ diff --git a/app/propgui/gimppropgui.c b/app/propgui/gimppropgui.c index 6ea921882a..c2744833dc 100644 --- a/app/propgui/gimppropgui.c +++ b/app/propgui/gimppropgui.c @@ -54,6 +54,7 @@ #include "gimppropgui-eval.h" #include "gimppropgui-generic.h" #include "gimppropgui-hue-saturation.h" +#include "gimppropgui-shadows-highlights.h" #include "gimppropgui-spiral.h" #include "gimppropgui-supernova.h" #include "gimppropgui-utils.h" @@ -449,6 +450,8 @@ gui_new_funcs[] = _gimp_prop_gui_new_channel_mixer }, { "GimpGegl-gegl-diffraction-patterns-config", _gimp_prop_gui_new_diffraction_patterns }, + { "GimpGegl-gegl-shadows-highlights-config", + _gimp_prop_gui_new_shadows_highlights }, { "GimpGegl-gegl-spiral-config", _gimp_prop_gui_new_spiral }, { "GimpGegl-gegl-supernova-config", diff --git a/app/tools/gimpgegltool.c b/app/tools/gimpgegltool.c index 55a8464441..f553ca9f45 100644 --- a/app/tools/gimpgegltool.c +++ b/app/tools/gimpgegltool.c @@ -222,6 +222,7 @@ gimp_gegl_tool_operation_blacklisted (const gchar *name, "gegl:ripple", "gegl:saturation", "gegl:sepia", + "gegl:shadows-highlights", "gegl:shift", "gegl:simplex-noise", "gegl:sinus", diff --git a/menus/image-menu.xml.in b/menus/image-menu.xml.in index 9aed88b9fc..dd99954934 100644 --- a/menus/image-menu.xml.in +++ b/menus/image-menu.xml.in @@ -568,6 +568,7 @@ +