[gimp/soc-2009-dynamics] Inverted maping matrix and fixes to jitter



commit 860c952416f38be32da9d9fa1902b0b90d3db298
Author: Alexia Death <alexiadeath gmail com>
Date:   Wed Oct 7 23:32:17 2009 +0300

    Inverted maping matrix and fixes to jitter

 app/core/gimpdynamics.h          |    5 -
 app/paint/gimpbrushcore.c        |    7 +-
 app/widgets/gimpdynamicseditor.c |  525 +++++++++++---------------------------
 app/widgets/gimpdynamicseditor.h |    6 +-
 4 files changed, 153 insertions(+), 390 deletions(-)
---
diff --git a/app/core/gimpdynamics.h b/app/core/gimpdynamics.h
index 259aa12..ae93b22 100644
--- a/app/core/gimpdynamics.h
+++ b/app/core/gimpdynamics.h
@@ -34,7 +34,6 @@ struct _GimpDynamicsOutput
   gboolean  random;
   gboolean  fade;
 
-  gdouble   fade_length;
 
   GimpCurve*  pressure_curve;
   GimpCurve*  velocity_curve;
@@ -46,10 +45,6 @@ struct _GimpDynamicsOutput
 };
 
 
-#define GIMP_PAINT_PRESSURE_SCALE 1.5
-#define GIMP_PAINT_VELOCITY_SCALE 1.0
-
-
 #define GIMP_TYPE_DYNAMICS            (gimp_dynamics_get_type ())
 #define GIMP_DYNAMICS(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_DYNAMICS, GimpDynamics))
 #define GIMP_DYNAMICS_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_DYNAMICS, GimpDynamicsClass))
diff --git a/app/paint/gimpbrushcore.c b/app/paint/gimpbrushcore.c
index 656b939..ce44063 100644
--- a/app/paint/gimpbrushcore.c
+++ b/app/paint/gimpbrushcore.c
@@ -422,7 +422,6 @@ gimp_brush_core_start (GimpPaintCore     *paint_core,
   core->jitter =
     gimp_paint_options_get_jitter (paint_options,
                                    gimp_item_get_image (GIMP_ITEM (drawable)));
-  core->jitter *= gimp_dynamics_get_linear_output_val(core->dynamics->jitter_dynamics, *coords, fade_point);
 
   return TRUE;
 }
@@ -701,10 +700,14 @@ gimp_brush_core_interpolate (GimpPaintCore    *paint_core,
 
       if (core->jitter > 0.0)
         {
+          gdouble fade_point = gimp_paint_options_get_fade (paint_options, gimp_item_get_image (GIMP_ITEM (drawable)),
+                                                            paint_core->pixel_dist);
+          gdouble dyn_jitter = core->jitter * gimp_dynamics_get_linear_output_val(core->dynamics->jitter_dynamics, current_coords, fade_point);
+
           gdouble jitter_dist;
           gint32  jitter_angle;
 
-          jitter_dist  = g_rand_double_range (core->rand, 0, core->jitter);
+          jitter_dist  = g_rand_double_range (core->rand, 0, dyn_jitter);
           jitter_angle = g_rand_int_range (core->rand,
                                            0, BRUSH_CORE_JITTER_LUTSIZE);
 
diff --git a/app/widgets/gimpdynamicseditor.c b/app/widgets/gimpdynamicseditor.c
index c31ff6f..8812f7d 100644
--- a/app/widgets/gimpdynamicseditor.c
+++ b/app/widgets/gimpdynamicseditor.c
@@ -16,10 +16,6 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-
-
-#define DYNAMICS_VIEW_SIZE 96
-
 #define DEFAULT_PRESSURE_OPACITY       TRUE
 #define DEFAULT_PRESSURE_HARDNESS      FALSE
 
@@ -40,8 +36,6 @@
 #include "libgimpconfig/gimpconfig.h"
 
 #include "gimpdocked.h"
-#include "gimpview.h"
-#include "gimpviewrenderer.h"
 
 #include "gimp-intl.h"
 
@@ -53,53 +47,44 @@
 #include "tools/gimptooloptions-gui.h"
 #include "gimppropwidgets.h"
 
-static void        pressure_options_gui  (GObject          *config,
-                                          GtkTable         *table,
-                                          gint              row,
-                                          GtkWidget        *labels[]);
-static void        velocity_options_gui  (GObject          *config,
-                                          GtkTable         *table,
-                                          gint              row);
-
-static void        direction_options_gui  (GObject          *config,
-                                          GtkTable         *table,
-                                          gint              row);
-
-static void        tilt_options_gui      (GObject          *config,
-                                          GtkTable         *table,
-                                          gint              row);
-
-static void        random_options_gui    (GObject          *config,
-                                          GtkTable         *table,
-                                          gint              row);
-
-static void        fading_options_gui    (GObject          *config,
-                                          GtkTable         *table,
-                                          gint              row);
-
-
 static GObject     * get_config_value (GimpDynamicsEditor *editor);
+
 /*  local function prototypes  */
 
 static void   gimp_dynamics_editor_docked_iface_init (GimpDockedInterface *face);
 
-static GObject * gimp_dynamics_editor_constructor (GType              type,
-                                                   guint              n_params,
-                                                   GObjectConstructParam *params);
+static GObject * gimp_dynamics_editor_constructor  (GType              type,
+                                                    guint              n_params,
+                                                    GObjectConstructParam *params);
 
-static void   gimp_dynamics_editor_set_data       (GimpDataEditor     *editor,
-                                                   GimpData           *data);
+static void   gimp_dynamics_editor_set_data        (GimpDataEditor     *editor,
+                                                    GimpData           *data);
 
-static void   gimp_dynamics_editor_set_context    (GimpDocked         *docked,
-                                                   GimpContext        *context);
-/*
-static void   gimp_dynamics_editor_update_dynamics(GtkAdjustment      *adjustment,
-                                                   GimpDynamicsEditor    *editor);*/
+static void   gimp_dynamics_editor_set_context     (GimpDocked         *docked,
+                                                    GimpContext        *context);
 
 static void   gimp_dynamics_editor_notify_dynamics (GimpDynamics  *options,
                                                     GParamSpec           *pspec,
                                                     GimpDynamicsEditor      *editor);
 
+static void   dynamics_output_maping_row_gui       (GObject     *config,
+                                                    const gchar *property_name_part,
+                                                    const gchar *property_label,
+                                                    GtkTable    *table,
+                                                    gint         row,
+                                                    GtkWidget   *labels[]);
+
+static GtkWidget * dynamics_check_button_new       (GObject     *config,
+                                                    const gchar *property_name,
+                                                    GtkTable    *table,
+                                                    gint         column,
+                                                    gint         row);
+
+
+static void    dynamics_check_button_size_allocate (GtkWidget     *toggle,
+                                                    GtkAllocation *allocation,
+                                                    GtkWidget     *label);
+
 G_DEFINE_TYPE_WITH_CODE (GimpDynamicsEditor, gimp_dynamics_editor,
                          GIMP_TYPE_DATA_EDITOR,
                          G_IMPLEMENT_INTERFACE (GIMP_TYPE_DOCKED,
@@ -133,8 +118,6 @@ gimp_dynamics_editor_docked_iface_init (GimpDockedInterface *iface)
   iface->set_context = gimp_dynamics_editor_set_context;
 }
 
-
-
 static GObject *
 gimp_dynamics_editor_constructor (GType                  type,
                                   guint                  n_params,
@@ -168,8 +151,6 @@ gimp_dynamics_editor_set_data (GimpDataEditor *editor,
                       G_CALLBACK (gimp_dynamics_editor_notify_dynamics),
                       editor);
 
-  gimp_view_set_viewable (GIMP_VIEW (editor->view), GIMP_VIEWABLE (data));
-
 }
 
 
@@ -201,8 +182,6 @@ gimp_dynamics_editor_set_context (GimpDocked  *docked,
 
   parent_docked_iface->set_context (docked, context);
 
-  gimp_view_renderer_set_context (GIMP_VIEW (data_editor->view)->renderer,
-                                  context);
 }
 
 /*  public functions  */
@@ -263,59 +242,40 @@ gimp_dynamics_editor_init (GimpDynamicsEditor *editor)
   GtkWidget        *table;
   GtkWidget        *label;
   gint              n_dynamics         = 0;
-  GtkWidget        *dynamics_labels[7];
+  GtkWidget        *dynamics_labels[6];
   GObject          *config = G_OBJECT(dynamics);
 
-  frame = gtk_frame_new (NULL);
-  gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
-  gtk_box_pack_start (GTK_BOX (editor), frame, TRUE, TRUE, 0);
-  gtk_widget_show (frame);
-
-  data_editor->view = gimp_view_new_full_by_types (NULL,
-                                                   GIMP_TYPE_VIEW,
-                                                   GIMP_TYPE_DYNAMICS,
-                                                   DYNAMICS_VIEW_SIZE,
-                                                   DYNAMICS_VIEW_SIZE, 0,
-                                                   FALSE, FALSE, TRUE);
-
-  gtk_widget_set_size_request (data_editor->view, -1, DYNAMICS_VIEW_SIZE);
-  gimp_view_set_expand (GIMP_VIEW (data_editor->view), TRUE);
-  gtk_container_add (GTK_CONTAINER (frame), data_editor->view);
-  gtk_widget_show (data_editor->view);
-
-
-
   vbox = gtk_vbox_new (FALSE, 6);
-  //gtk_container_add (GTK_CONTAINER (data_editor->view), vbox);
   gtk_box_pack_start (GTK_BOX (data_editor), vbox, TRUE, TRUE, 0);
   gtk_widget_show (vbox);
 
-  //n_dynamics = 5;
-
-  dynamics_labels[n_dynamics] = gtk_label_new (_("Opacity"));
-  n_dynamics++;
+  /*gboolean  pressure;
+  gboolean  velocity;
+  gboolean  direction;
+  gboolean  tilt;
+  gboolean  random;
+  gboolean  fade;
+*/
 
-  dynamics_labels[n_dynamics] = gtk_label_new (_("Hardness"));
+  dynamics_labels[n_dynamics] = gtk_label_new (_("Pressure"));
   n_dynamics++;
 
-  dynamics_labels[n_dynamics] = gtk_label_new (_("Rate"));
+  dynamics_labels[n_dynamics] = gtk_label_new (_("Velocity"));
   n_dynamics++;
 
-  dynamics_labels[n_dynamics] = gtk_label_new (_("Size"));
+  dynamics_labels[n_dynamics] = gtk_label_new (_("Direction"));
   n_dynamics++;
 
-
-  dynamics_labels[n_dynamics] = gtk_label_new (_("Aspect ratio"));
+  dynamics_labels[n_dynamics] = gtk_label_new (_("Tilt"));
   n_dynamics++;
 
-  dynamics_labels[n_dynamics] = gtk_label_new (_("Angle"));
+  dynamics_labels[n_dynamics] = gtk_label_new (_("Random"));
   n_dynamics++;
 
-  dynamics_labels[n_dynamics] = gtk_label_new (_("Color"));
+  dynamics_labels[n_dynamics] = gtk_label_new (_("Fade"));
   n_dynamics++;
 
-
-  /* NB: When adding new dynamics, increase size of the
+  /* NB: When adding new dynamics driver, increase size of the
    * dynamics_labels[] array
    */
 
@@ -332,63 +292,66 @@ gimp_dynamics_editor_init (GimpDynamicsEditor *editor)
       gtk_widget_show (inner_frame);
 
 
-      table = gtk_table_new (7, n_dynamics + 2, FALSE);
+      table = gtk_table_new (9, n_dynamics + 2, FALSE);
       gtk_container_add (GTK_CONTAINER (inner_frame), table);
       gtk_widget_show (table);
 
-      label = gtk_label_new (_("Pressure:"));
-      gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
-      gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2,
-                        GTK_SHRINK | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0);
-      gtk_widget_show (label);
-
-      label = gtk_label_new (_("Velocity:"));
-      gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
-      gtk_table_attach (GTK_TABLE (table), label, 0, 1, 2, 3,
-                        GTK_SHRINK | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0);
-      gtk_widget_show (label);
-
-      label = gtk_label_new (_("Direction:"));
-      gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
-      gtk_table_attach (GTK_TABLE (table), label, 0, 1, 3, 4,
-                        GTK_SHRINK | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0);
-      gtk_widget_show (label);
-
-      label = gtk_label_new (_("Tilt:"));
-      gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
-      gtk_table_attach (GTK_TABLE (table), label, 0, 1, 4, 5,
-                        GTK_SHRINK | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0);
-      gtk_widget_show (label);
-
-      label = gtk_label_new (_("Random:"));
-      gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
-      gtk_table_attach (GTK_TABLE (table), label, 0, 1, 5, 6,
-                        GTK_SHRINK | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0);
-      gtk_widget_show (label);
-
-      label = gtk_label_new (_("Fading:"));
-      gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
-      gtk_table_attach (GTK_TABLE (table), label, 0, 1, 6, 7,
-                        GTK_SHRINK | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0);
-      gtk_widget_show (label);
-
-
-
-     pressure_options_gui (config,
-                            GTK_TABLE (table), 1,
-                            dynamics_labels);
-
-      velocity_options_gui (config, GTK_TABLE (table), 2);
-
-      direction_options_gui (config, GTK_TABLE (table), 3);
-
-      tilt_options_gui (config, GTK_TABLE (table), 4);
-
-      random_options_gui (config, GTK_TABLE (table), 5);
-
-      fading_options_gui (config, GTK_TABLE (table), 6);
-
 
+      dynamics_output_maping_row_gui(G_OBJECT(editor->dynamics_model),
+                                     "opacity",
+                                     _("Opacity"),
+                                     table,
+                                     1,
+                                     dynamics_labels);
+
+      dynamics_output_maping_row_gui(G_OBJECT(editor->dynamics_model),
+                                     "hardness",
+                                     _("Hardness"),
+                                     table,
+                                     2,
+                                     dynamics_labels);
+
+      dynamics_output_maping_row_gui(G_OBJECT(editor->dynamics_model),
+                                     "rate",
+                                     _("Rate"),
+                                     table,
+                                     3,
+                                     dynamics_labels);
+
+      dynamics_output_maping_row_gui(G_OBJECT(editor->dynamics_model),
+                                     "size",
+                                     _("Size"),
+                                     table,
+                                     4,
+                                     dynamics_labels);
+
+      dynamics_output_maping_row_gui(G_OBJECT(editor->dynamics_model),
+                                     "aspect-ratio",
+                                     _("Aspect ratio"),
+                                     table,
+                                     5,
+                                     dynamics_labels);
+
+      dynamics_output_maping_row_gui(G_OBJECT(editor->dynamics_model),
+                                     "color",
+                                     _("Color"),
+                                     table,
+                                     6,
+                                     dynamics_labels);
+
+      dynamics_output_maping_row_gui(G_OBJECT(editor->dynamics_model),
+                                     "angle",
+                                     _("Angle"),
+                                     table,
+                                     7,
+                                     dynamics_labels);
+
+      dynamics_output_maping_row_gui(G_OBJECT(editor->dynamics_model),
+                                     "jitter",
+                                     _("Jitter"),
+                                     table,
+                                     8,
+                                     dynamics_labels);
       fixed = gtk_fixed_new ();
       gtk_table_attach (GTK_TABLE (table), fixed, 0, n_dynamics + 2, 0, 1,
                         GTK_SHRINK | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0);
@@ -408,99 +371,68 @@ gimp_dynamics_editor_init (GimpDynamicsEditor *editor)
 
 /*  private functions  */
 
-static GtkWidget *
-dynamics_check_button_new (GObject     *config,
-                           const gchar *property_name,
-                           GtkTable    *table,
-                           gint         column,
-                           gint         row)
-{
-  GtkWidget *button;
-
-  button = gimp_prop_check_button_new (config, property_name, NULL);
-  gtk_table_attach (table, button, column, column + 1, row, row + 1,
-                    GTK_SHRINK, GTK_SHRINK, 0, 0);
-  gtk_widget_show (button);
-
-  return button;
-}
-
 static void
-dynamics_check_button_size_allocate (GtkWidget     *toggle,
-                                     GtkAllocation *allocation,
-                                     GtkWidget     *label)
+dynamics_output_maping_row_gui(GObject     *config,
+                               const gchar *property_name_part,
+                               const gchar *property_label,
+                               GtkTable    *table,
+                               gint         row,
+                               GtkWidget   *labels[])
 {
-  GtkWidget *fixed = label->parent;
-  gint       x, y;
-
-  if (gtk_widget_get_direction (label) == GTK_TEXT_DIR_LTR)
-    x = allocation->x;
-  else
-    x = allocation->x + allocation->width - label->allocation.width;
-
-  x -= fixed->allocation.x;
+      GtkWidget        *label;
+      GtkWidget        *button;
+      gint              column=1;
 
-  y = fixed->allocation.height - label->allocation.height;
-
-  gtk_fixed_move (GTK_FIXED (fixed), label, x, y);
-}
+      label = gtk_label_new (property_label);
+      gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+      gtk_table_attach (GTK_TABLE (table), label, 0, 1, row, row+1,
+                        GTK_SHRINK | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0);
+      gtk_widget_show (label);
 
-static void
-pressure_options_gui (GObject          *config,
-                      GtkTable         *table,
-                      gint              row,
-                      GtkWidget        *labels[])
-{
-  GtkWidget *button;
-  gint       column = 1;
-  GtkWidget *scalebutton;
+/*gboolean  pressure;
+  gboolean  velocity;
+  gboolean  direction;
+  gboolean  tilt;
+  gboolean  random;
+  gboolean  fade;
+*/
 
-      button = dynamics_check_button_new (config, "pressure-opacity",
+      button = dynamics_check_button_new (config,  g_strconcat("pressure-", property_name_part, NULL),
                                           table, column, row);
       g_signal_connect (button, "size-allocate",
                         G_CALLBACK (dynamics_check_button_size_allocate),
                         labels[column - 1]);
       column++;
 
-
-      button = dynamics_check_button_new (config, "pressure-hardness",
+      button = dynamics_check_button_new (config,  g_strconcat("velocity-", property_name_part, NULL),
                                           table, column, row);
       g_signal_connect (button, "size-allocate",
                         G_CALLBACK (dynamics_check_button_size_allocate),
                         labels[column - 1]);
       column++;
 
-      button = dynamics_check_button_new (config, "pressure-rate",
+      button = dynamics_check_button_new (config,  g_strconcat("direction-", property_name_part, NULL),
                                           table, column, row);
       g_signal_connect (button, "size-allocate",
                         G_CALLBACK (dynamics_check_button_size_allocate),
                         labels[column - 1]);
       column++;
 
-      button = dynamics_check_button_new (config, "pressure-size",
-                                            table, column, row);
-
-      g_signal_connect (button, "size-allocate",
-                        G_CALLBACK (dynamics_check_button_size_allocate),
-                        labels[column - 1]);
-      column++;
-
-      button = dynamics_check_button_new (config, "pressure-aspect_ratio",
+      button = dynamics_check_button_new (config,  g_strconcat("tilt-", property_name_part, NULL),
                                           table, column, row);
-
       g_signal_connect (button, "size-allocate",
                         G_CALLBACK (dynamics_check_button_size_allocate),
                         labels[column - 1]);
       column++;
 
-      button = dynamics_check_button_new (config, "pressure-angle",
+      button = dynamics_check_button_new (config,  g_strconcat("random-", property_name_part, NULL),
                                           table, column, row);
       g_signal_connect (button, "size-allocate",
                         G_CALLBACK (dynamics_check_button_size_allocate),
                         labels[column - 1]);
       column++;
 
-      button = dynamics_check_button_new (config, "pressure-color",
+      button = dynamics_check_button_new (config,  g_strconcat("fading-", property_name_part, NULL),
                                           table, column, row);
       g_signal_connect (button, "size-allocate",
                         G_CALLBACK (dynamics_check_button_size_allocate),
@@ -509,202 +441,39 @@ pressure_options_gui (GObject          *config,
 
 }
 
-static void
-velocity_options_gui (GObject          *config,
-                      GtkTable         *table,
-                      gint              row)
-{
-  GtkWidget *button;
-  gint       column = 1;
-  GtkWidget *scalebutton;
-
-      button = dynamics_check_button_new (config, "velocity-opacity",
-                                          table, column, row);
-      column++;
-
-
-      button = dynamics_check_button_new (config, "velocity-hardness",
-                                          table, column, row);
-      column++;
-
-      button = dynamics_check_button_new (config, "velocity-rate",
-                                          table, column, row);
-      column++;
-
-      button = dynamics_check_button_new (config, "velocity-size",
-                                            table, column, row);
-      column++;
-
-      button = dynamics_check_button_new (config, "velocity-aspect_ratio",
-                                          table, column, row);
-      column++;
-
-      button = dynamics_check_button_new (config, "velocity-angle",
-                                          table, column, row);
-      column++;
-
-      button = dynamics_check_button_new (config, "velocity-color",
-                                          table, column, row);
-      column++;
-
-}
-
-static void
-direction_options_gui (GObject          *config,
-                      GtkTable         *table,
-                      gint              row)
-{
-  GtkWidget *button;
-  gint       column = 1;
-  GtkWidget *scalebutton;
-
-      button = dynamics_check_button_new (config, "direction-opacity",
-                                          table, column, row);
-      column++;
-
-
-      button = dynamics_check_button_new (config, "direction-hardness",
-                                          table, column, row);
-      column++;
-
-      button = dynamics_check_button_new (config, "direction-rate",
-                                          table, column, row);
-      column++;
-
-      button = dynamics_check_button_new (config, "direction-size",
-                                            table, column, row);
-      column++;
-
-      button = dynamics_check_button_new (config, "direction-aspect_ratio",
-                                          table, column, row);
-      column++;
-
-      button = dynamics_check_button_new (config, "direction-angle",
-                                          table, column, row);
-      column++;
-
-      button = dynamics_check_button_new (config, "direction-color",
-                                          table, column, row);
-      column++;
-
-}
-
-static void
-tilt_options_gui (GObject          *config,
-                      GtkTable         *table,
-                      gint              row)
-{
-  GtkWidget *button;
-  gint       column = 1;
-  GtkWidget *scalebutton;
-
-      button = dynamics_check_button_new (config, "tilt-opacity",
-                                          table, column, row);
-      column++;
-
-
-      button = dynamics_check_button_new (config, "tilt-hardness",
-                                          table, column, row);
-      column++;
-
-      button = dynamics_check_button_new (config, "tilt-rate",
-                                          table, column, row);
-      column++;
-
-      button = dynamics_check_button_new (config, "tilt-size",
-                                            table, column, row);
-      column++;
-
-      button = dynamics_check_button_new (config, "tilt-aspect_ratio",
-                                          table, column, row);
-      column++;
-
-      button = dynamics_check_button_new (config, "tilt-angle",
-                                          table, column, row);
-      column++;
-
-      button = dynamics_check_button_new (config, "tilt-color",
-                                          table, column, row);
-      column++;
-
-}
-
-static void
-random_options_gui (GObject          *config,
-                      GtkTable         *table,
-                      gint              row)
+static GtkWidget *
+dynamics_check_button_new (GObject     *config,
+                           const gchar *property_name,
+                           GtkTable    *table,
+                           gint         column,
+                           gint         row)
 {
   GtkWidget *button;
-  gint       column = 1;
-  GtkWidget *scalebutton;
-
-      button = dynamics_check_button_new (config, "random-opacity",
-                                          table, column, row);
-      column++;
-
-
-      button = dynamics_check_button_new (config, "random-hardness",
-                                          table, column, row);
-      column++;
-
-      button = dynamics_check_button_new (config, "random-rate",
-                                          table, column, row);
-      column++;
 
-      button = dynamics_check_button_new (config, "random-size",
-                                            table, column, row);
-      column++;
-
-      button = dynamics_check_button_new (config, "random-aspect_ratio",
-                                          table, column, row);
-      column++;
-
-      button = dynamics_check_button_new (config, "random-angle",
-                                          table, column, row);
-      column++;
-
-      button = dynamics_check_button_new (config, "random-color",
-                                          table, column, row);
-      column++;
+  button = gimp_prop_check_button_new (config, property_name, NULL);
+  gtk_table_attach (table, button, column, column + 1, row, row + 1,
+                    GTK_SHRINK, GTK_SHRINK, 0, 0);
+  gtk_widget_show (button);
 
+  return button;
 }
 
 static void
-fading_options_gui (GObject          *config,
-                      GtkTable         *table,
-                      gint              row)
+dynamics_check_button_size_allocate (GtkWidget     *toggle,
+                                     GtkAllocation *allocation,
+                                     GtkWidget     *label)
 {
-  GtkWidget *button;
-  gint       column = 1;
-  GtkWidget *scalebutton;
-
-      button = dynamics_check_button_new (config, "fading-opacity",
-                                          table, column, row);
-      column++;
-
-
-      button = dynamics_check_button_new (config, "fading-hardness",
-                                          table, column, row);
-      column++;
-
-      button = dynamics_check_button_new (config, "fading-rate",
-                                          table, column, row);
-      column++;
-
-      button = dynamics_check_button_new (config, "fading-size",
-                                            table, column, row);
-      column++;
+  GtkWidget *fixed = label->parent;
+  gint       x, y;
 
-      button = dynamics_check_button_new (config, "fading-aspect_ratio",
-                                          table, column, row);
-      column++;
+  if (gtk_widget_get_direction (label) == GTK_TEXT_DIR_LTR)
+    x = allocation->x;
+  else
+    x = allocation->x + allocation->width - label->allocation.width;
 
-      button = dynamics_check_button_new (config, "fading-angle",
-                                          table, column, row);
-      column++;
+  x -= fixed->allocation.x;
 
-      button = dynamics_check_button_new (config, "fading-color",
-                                          table, column, row);
-      column++;
+  y = fixed->allocation.height - label->allocation.height;
 
+  gtk_fixed_move (GTK_FIXED (fixed), label, x, y);
 }
diff --git a/app/widgets/gimpdynamicseditor.h b/app/widgets/gimpdynamicseditor.h
index 1a99a8b..8d8b0e1 100644
--- a/app/widgets/gimpdynamicseditor.h
+++ b/app/widgets/gimpdynamicseditor.h
@@ -38,11 +38,7 @@ struct _GimpDynamicsEditor
 
   GtkWidget      *options_vbox;
 
-  /*
-  GimpContext    *context_dynamics;
-  GimpContext    *context;
-  GObject        *config_data;
-  GtkAdjustment  *pressure_hardness_data;*/
+
 
 };
 



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