[gimp] Adds generated files after hue-saturation-overlap call. Addresses #634008



commit 8c14f3822a5463729732a685d2abd1873a1b4a5e
Author: João S. O. Bueno <gwidion gmail com>
Date:   Wed Jan 8 20:20:05 2014 -0200

    Adds generated files after hue-saturation-overlap call. Addresses #634008

 app/pdb/color-cmds.c     |  110 ++++++++++++++++++++++++++++++++++++++++++-
 app/pdb/internal-procs.c |    2 +-
 libgimp/gimpcolor_pdb.c  |   52 ++++++++++++++++++++-
 libgimp/gimpcolor_pdb.h  |  118 ++++++++++++++++++++++++----------------------
 4 files changed, 223 insertions(+), 59 deletions(-)
---
diff --git a/app/pdb/color-cmds.c b/app/pdb/color-cmds.c
index cda0ddd..2aadfb2 100644
--- a/app/pdb/color-cmds.c
+++ b/app/pdb/color-cmds.c
@@ -734,6 +734,60 @@ hue_saturation_invoker (GimpProcedure         *procedure,
 }
 
 static GimpValueArray *
+hue_saturation_overlap_invoker (GimpProcedure         *procedure,
+                                Gimp                  *gimp,
+                                GimpContext           *context,
+                                GimpProgress          *progress,
+                                const GimpValueArray  *args,
+                                GError               **error)
+{
+  gboolean success = TRUE;
+  GimpDrawable *drawable;
+  gint32 hue_range;
+  gdouble hue_offset;
+  gdouble lightness;
+  gdouble saturation;
+  gdouble overlap;
+
+  drawable = gimp_value_get_drawable (gimp_value_array_index (args, 0), gimp);
+  hue_range = g_value_get_enum (gimp_value_array_index (args, 1));
+  hue_offset = g_value_get_double (gimp_value_array_index (args, 2));
+  lightness = g_value_get_double (gimp_value_array_index (args, 3));
+  saturation = g_value_get_double (gimp_value_array_index (args, 4));
+  overlap = g_value_get_double (gimp_value_array_index (args, 5));
+
+  if (success)
+    {
+      if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL,
+                                     GIMP_PDB_ITEM_CONTENT, error) &&
+          gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
+        {
+          GObject *config = g_object_new (GIMP_TYPE_HUE_SATURATION_CONFIG,
+                                          "range", hue_range,
+                                          NULL);
+
+           g_object_set (config,
+                         "hue",        hue_offset / 180.0,
+                         "saturation", saturation / 100.0,
+                         "lightness",  lightness  / 100.0,
+                         "overlap",    overlap / 100.0,
+                         NULL);
+
+          gimp_drawable_apply_operation_by_name (drawable, progress,
+                                                 _("Hue-Saturation"),
+                                                 "gimp:hue-saturation",
+                                                 config);
+          g_object_unref (config);
+        }
+      else
+        success = FALSE;
+    }
+
+  return gimp_procedure_get_return_values (procedure, success,
+                                           error ? *error : NULL);
+}
+
+static GimpValueArray *
 threshold_invoker (GimpProcedure         *procedure,
                    Gimp                  *gimp,
                    GimpContext           *context,
@@ -1319,7 +1373,7 @@ register_color_procs (GimpPDB *pdb)
   gimp_procedure_set_static_strings (procedure,
                                      "gimp-hue-saturation",
                                      "Modify hue, lightness, and saturation in the specified drawable.",
-                                     "This procedures allows the hue, lightness, and saturation in the 
specified drawable to be modified. The 'hue-range' parameter provides the capability to limit range of 
affected hues.",
+                                     "This procedure allows the hue, lightness, and saturation in the 
specified drawable to be modified. The 'hue-range' parameter provides the capability to limit range of 
affected hues.",
                                      "Spencer Kimball & Peter Mattis",
                                      "Spencer Kimball & Peter Mattis",
                                      "1997",
@@ -1359,6 +1413,60 @@ register_color_procs (GimpPDB *pdb)
   g_object_unref (procedure);
 
   /*
+   * gimp-hue-saturation-overlap
+   */
+  procedure = gimp_procedure_new (hue_saturation_overlap_invoker);
+  gimp_object_set_static_name (GIMP_OBJECT (procedure),
+                               "gimp-hue-saturation-overlap");
+  gimp_procedure_set_static_strings (procedure,
+                                     "gimp-hue-saturation-overlap",
+                                     "Modify hue, lightness, and saturation in the specified drawable.",
+                                     "This procedure allows the hue, lightness, and saturation in the 
specified drawable to be modified. The 'hue-range' parameter provides the capability to limit range of 
affected hues. The 'overlap' parameter provides blending into neighboring hue channels when rendering.",
+                                     "Jo\xc3\xa3o S. O. Bueno",
+                                     "Jo\xc3\xa3o S. O. Bueno",
+                                     "2014",
+                                     NULL);
+  gimp_procedure_add_argument (procedure,
+                               gimp_param_spec_drawable_id ("drawable",
+                                                            "drawable",
+                                                            "The drawable",
+                                                            pdb->gimp, FALSE,
+                                                            GIMP_PARAM_READWRITE));
+  gimp_procedure_add_argument (procedure,
+                               g_param_spec_enum ("hue-range",
+                                                  "hue range",
+                                                  "Range of affected hues",
+                                                  GIMP_TYPE_HUE_RANGE,
+                                                  GIMP_ALL_HUES,
+                                                  GIMP_PARAM_READWRITE));
+  gimp_procedure_add_argument (procedure,
+                               g_param_spec_double ("hue-offset",
+                                                    "hue offset",
+                                                    "Hue offset in degrees",
+                                                    -180, 180, -180,
+                                                    GIMP_PARAM_READWRITE));
+  gimp_procedure_add_argument (procedure,
+                               g_param_spec_double ("lightness",
+                                                    "lightness",
+                                                    "Lightness modification",
+                                                    -100, 100, -100,
+                                                    GIMP_PARAM_READWRITE));
+  gimp_procedure_add_argument (procedure,
+                               g_param_spec_double ("saturation",
+                                                    "saturation",
+                                                    "Saturation modification",
+                                                    -100, 100, -100,
+                                                    GIMP_PARAM_READWRITE));
+  gimp_procedure_add_argument (procedure,
+                               g_param_spec_double ("overlap",
+                                                    "overlap",
+                                                    "Overlap other hue channels",
+                                                    0, 100, 0,
+                                                    GIMP_PARAM_READWRITE));
+  gimp_pdb_register_procedure (pdb, procedure);
+  g_object_unref (procedure);
+
+  /*
    * gimp-threshold
    */
   procedure = gimp_procedure_new (threshold_invoker);
diff --git a/app/pdb/internal-procs.c b/app/pdb/internal-procs.c
index 292d7ed..b9f1214 100644
--- a/app/pdb/internal-procs.c
+++ b/app/pdb/internal-procs.c
@@ -28,7 +28,7 @@
 #include "internal-procs.h"
 
 
-/* 706 procedures registered total */
+/* 707 procedures registered total */
 
 void
 internal_procs_init (GimpPDB *pdb)
diff --git a/libgimp/gimpcolor_pdb.c b/libgimp/gimpcolor_pdb.c
index a5caf8b..0f864cd 100644
--- a/libgimp/gimpcolor_pdb.c
+++ b/libgimp/gimpcolor_pdb.c
@@ -630,7 +630,7 @@ gimp_histogram (gint32                drawable_ID,
  *
  * Modify hue, lightness, and saturation in the specified drawable.
  *
- * This procedures allows the hue, lightness, and saturation in the
+ * This procedure allows the hue, lightness, and saturation in the
  * specified drawable to be modified. The 'hue-range' parameter
  * provides the capability to limit range of affected hues.
  *
@@ -664,6 +664,56 @@ gimp_hue_saturation (gint32       drawable_ID,
 }
 
 /**
+ * gimp_hue_saturation_overlap:
+ * @drawable_ID: The drawable.
+ * @hue_range: Range of affected hues.
+ * @hue_offset: Hue offset in degrees.
+ * @lightness: Lightness modification.
+ * @saturation: Saturation modification.
+ * @overlap: Overlap other hue channels.
+ *
+ * Modify hue, lightness, and saturation in the specified drawable.
+ *
+ * This procedure allows the hue, lightness, and saturation in the
+ * specified drawable to be modified. The 'hue-range' parameter
+ * provides the capability to limit range of affected hues. The
+ * 'overlap' parameter provides blending into neighboring hue channels
+ * when rendering.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: GIMP 2.10
+ **/
+gboolean
+gimp_hue_saturation_overlap (gint32       drawable_ID,
+                             GimpHueRange hue_range,
+                             gdouble      hue_offset,
+                             gdouble      lightness,
+                             gdouble      saturation,
+                             gdouble      overlap)
+{
+  GimpParam *return_vals;
+  gint nreturn_vals;
+  gboolean success = TRUE;
+
+  return_vals = gimp_run_procedure ("gimp-hue-saturation-overlap",
+                                    &nreturn_vals,
+                                    GIMP_PDB_DRAWABLE, drawable_ID,
+                                    GIMP_PDB_INT32, hue_range,
+                                    GIMP_PDB_FLOAT, hue_offset,
+                                    GIMP_PDB_FLOAT, lightness,
+                                    GIMP_PDB_FLOAT, saturation,
+                                    GIMP_PDB_FLOAT, overlap,
+                                    GIMP_PDB_END);
+
+  success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
+
+  gimp_destroy_params (return_vals, nreturn_vals);
+
+  return success;
+}
+
+/**
  * gimp_threshold:
  * @drawable_ID: The drawable.
  * @low_threshold: The low threshold value.
diff --git a/libgimp/gimpcolor_pdb.h b/libgimp/gimpcolor_pdb.h
index a7b6b6b..ffdfd10 100644
--- a/libgimp/gimpcolor_pdb.h
+++ b/libgimp/gimpcolor_pdb.h
@@ -32,63 +32,69 @@ G_BEGIN_DECLS
 /* For information look into the C source or the html documentation */
 
 
-gboolean gimp_brightness_contrast (gint32                drawable_ID,
-                                   gint                  brightness,
-                                   gint                  contrast);
-gboolean gimp_levels              (gint32                drawable_ID,
-                                   GimpHistogramChannel  channel,
-                                   gint                  low_input,
-                                   gint                  high_input,
-                                   gdouble               gamma,
-                                   gint                  low_output,
-                                   gint                  high_output);
+gboolean gimp_brightness_contrast    (gint32                drawable_ID,
+                                      gint                  brightness,
+                                      gint                  contrast);
+gboolean gimp_levels                 (gint32                drawable_ID,
+                                      GimpHistogramChannel  channel,
+                                      gint                  low_input,
+                                      gint                  high_input,
+                                      gdouble               gamma,
+                                      gint                  low_output,
+                                      gint                  high_output);
 GIMP_DEPRECATED_FOR(gimp_levels_stretch)
-gboolean gimp_levels_auto         (gint32                drawable_ID);
-gboolean gimp_levels_stretch      (gint32                drawable_ID);
-gboolean gimp_posterize           (gint32                drawable_ID,
-                                   gint                  levels);
-gboolean gimp_desaturate          (gint32                drawable_ID);
-gboolean gimp_desaturate_full     (gint32                drawable_ID,
-                                   GimpDesaturateMode    desaturate_mode);
-gboolean gimp_equalize            (gint32                drawable_ID,
-                                   gboolean              mask_only);
-gboolean gimp_invert              (gint32                drawable_ID);
-gboolean gimp_curves_spline       (gint32                drawable_ID,
-                                   GimpHistogramChannel  channel,
-                                   gint                  num_points,
-                                   const guint8         *control_pts);
-gboolean gimp_curves_explicit     (gint32                drawable_ID,
-                                   GimpHistogramChannel  channel,
-                                   gint                  num_bytes,
-                                   const guint8         *curve);
-gboolean gimp_color_balance       (gint32                drawable_ID,
-                                   GimpTransferMode      transfer_mode,
-                                   gboolean              preserve_lum,
-                                   gdouble               cyan_red,
-                                   gdouble               magenta_green,
-                                   gdouble               yellow_blue);
-gboolean gimp_colorize            (gint32                drawable_ID,
-                                   gdouble               hue,
-                                   gdouble               saturation,
-                                   gdouble               lightness);
-gboolean gimp_histogram           (gint32                drawable_ID,
-                                   GimpHistogramChannel  channel,
-                                   gint                  start_range,
-                                   gint                  end_range,
-                                   gdouble              *mean,
-                                   gdouble              *std_dev,
-                                   gdouble              *median,
-                                   gdouble              *pixels,
-                                   gdouble              *count,
-                                   gdouble              *percentile);
-gboolean gimp_hue_saturation      (gint32                drawable_ID,
-                                   GimpHueRange          hue_range,
-                                   gdouble               hue_offset,
-                                   gdouble               lightness,
-                                   gdouble               saturation);
-gboolean gimp_threshold           (gint32                drawable_ID,
-                                   gint                  low_threshold,
-                                   gint                  high_threshold);
+gboolean gimp_levels_auto            (gint32                drawable_ID);
+gboolean gimp_levels_stretch         (gint32                drawable_ID);
+gboolean gimp_posterize              (gint32                drawable_ID,
+                                      gint                  levels);
+gboolean gimp_desaturate             (gint32                drawable_ID);
+gboolean gimp_desaturate_full        (gint32                drawable_ID,
+                                      GimpDesaturateMode    desaturate_mode);
+gboolean gimp_equalize               (gint32                drawable_ID,
+                                      gboolean              mask_only);
+gboolean gimp_invert                 (gint32                drawable_ID);
+gboolean gimp_curves_spline          (gint32                drawable_ID,
+                                      GimpHistogramChannel  channel,
+                                      gint                  num_points,
+                                      const guint8         *control_pts);
+gboolean gimp_curves_explicit        (gint32                drawable_ID,
+                                      GimpHistogramChannel  channel,
+                                      gint                  num_bytes,
+                                      const guint8         *curve);
+gboolean gimp_color_balance          (gint32                drawable_ID,
+                                      GimpTransferMode      transfer_mode,
+                                      gboolean              preserve_lum,
+                                      gdouble               cyan_red,
+                                      gdouble               magenta_green,
+                                      gdouble               yellow_blue);
+gboolean gimp_colorize               (gint32                drawable_ID,
+                                      gdouble               hue,
+                                      gdouble               saturation,
+                                      gdouble               lightness);
+gboolean gimp_histogram              (gint32                drawable_ID,
+                                      GimpHistogramChannel  channel,
+                                      gint                  start_range,
+                                      gint                  end_range,
+                                      gdouble              *mean,
+                                      gdouble              *std_dev,
+                                      gdouble              *median,
+                                      gdouble              *pixels,
+                                      gdouble              *count,
+                                      gdouble              *percentile);
+gboolean gimp_hue_saturation         (gint32                drawable_ID,
+                                      GimpHueRange          hue_range,
+                                      gdouble               hue_offset,
+                                      gdouble               lightness,
+                                      gdouble               saturation);
+gboolean gimp_hue_saturation_overlap (gint32                drawable_ID,
+                                      GimpHueRange          hue_range,
+                                      gdouble               hue_offset,
+                                      gdouble               lightness,
+                                      gdouble               saturation,
+                                      gdouble               overlap);
+gboolean gimp_threshold              (gint32                drawable_ID,
+                                      gint                  low_threshold,
+                                      gint                  high_threshold);
 
 
 G_END_DECLS


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]