~ubuntu-branches/ubuntu/jaunty/gimp/jaunty-security

« back to all changes in this revision

Viewing changes to plug-ins/common/cartoon.c

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Holbach
  • Date: 2007-05-02 16:33:03 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20070502163303-bvzhjzbpw8qglc4y
Tags: 2.3.16-1ubuntu1
* Resynchronized with Debian, remaining Ubuntu changes:
  - debian/rules: i18n magic.
* debian/control.in:
  - Maintainer: Ubuntu Core Developers <ubuntu-devel@lists.ubuntu.com>
* debian/patches/02_help-message.patch,
  debian/patches/03_gimp.desktop.in.in.patch,
  debian/patches/10_dont_show_wizard.patch: updated.
* debian/patches/04_composite-signedness.patch,
  debian/patches/05_add-letter-spacing.patch: dropped, used upstream.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* The GIMP -- an image manipulation program
 
1
/* GIMP - The GNU Image Manipulation Program
2
2
 * Copyright (C) 1995 Spencer Kimball and Peter Mattis
3
3
 *
4
4
 * This program is free software; you can redistribute it and/or modify
35
35
 
36
36
/* Some useful macros */
37
37
 
 
38
#define PLUG_IN_PROC    "plug-in-cartoon"
 
39
#define PLUG_IN_BINARY  "cartoon"
38
40
#define TILE_CACHE_SIZE 48
39
41
 
40
42
typedef struct
86
88
 
87
89
/***** Local vars *****/
88
90
 
89
 
GimpPlugInInfo PLUG_IN_INFO =
 
91
const GimpPlugInInfo PLUG_IN_INFO =
90
92
{
91
93
  NULL,  /* init  */
92
94
  NULL,  /* quit  */
110
112
static void
111
113
query (void)
112
114
{
113
 
  static GimpParamDef args[] =
 
115
  static const GimpParamDef args[] =
114
116
  {
115
 
    { GIMP_PDB_INT32,    "run_mode",    "Interactive, non-interactive" },
 
117
    { GIMP_PDB_INT32,    "run-mode",    "Interactive, non-interactive" },
116
118
    { GIMP_PDB_IMAGE,    "image",       "Input image (unused)" },
117
119
    { GIMP_PDB_DRAWABLE, "drawable",    "Input drawable" },
118
120
    { GIMP_PDB_FLOAT,    "mask_radius", "Cartoon mask radius (radius of pixel neighborhood)" },
119
 
    { GIMP_PDB_FLOAT,    "pct_black",   "Percentage of darkened pixels to set to black (0.0 - 1.0)" }
 
121
    { GIMP_PDB_FLOAT,    "pct-black",   "Percentage of darkened pixels to set to black (0.0 - 1.0)" }
120
122
  };
121
123
 
122
124
  gchar *help_string =
138
140
    "black border lines smoother and the lines themselves thinner and less "
139
141
    "noticable; larger values achieve the opposite effect.";
140
142
 
141
 
  gimp_install_procedure ("plug_in_cartoon",
142
 
                          "Propagates dark values in an image to achieve cartoon rendering",
 
143
  gimp_install_procedure (PLUG_IN_PROC,
 
144
                          N_("Simulate a cartoon by enhancing edges"),
143
145
                          help_string,
144
146
                          "Spencer Kimball",
145
147
                          "Bit Specialists, Inc.",
150
152
                          G_N_ELEMENTS (args), 0,
151
153
                          args, NULL);
152
154
 
153
 
  gimp_plugin_menu_register ("plug_in_cartoon", "<Image>/Filters/Artistic");
 
155
  gimp_plugin_menu_register (PLUG_IN_PROC, "<Image>/Filters/Artistic");
154
156
}
155
157
 
156
158
static void
185
187
    {
186
188
    case GIMP_RUN_INTERACTIVE:
187
189
      /*  Possibly retrieve data  */
188
 
      gimp_get_data ("plug_in_cartoon", &cvals);
 
190
      gimp_get_data (PLUG_IN_PROC, &cvals);
189
191
 
190
192
      /*  First acquire information with a dialog  */
191
193
      if (! cartoon_dialog (drawable))
199
201
 
200
202
    case GIMP_RUN_WITH_LAST_VALS:
201
203
      /*  Possibly retrieve data  */
202
 
      gimp_get_data ("plug_in_cartoon", &cvals);
 
204
      gimp_get_data (PLUG_IN_PROC, &cvals);
203
205
      break;
204
206
 
205
207
    default:
212
214
      if (gimp_drawable_is_rgb (drawable->drawable_id) ||
213
215
          gimp_drawable_is_gray (drawable->drawable_id))
214
216
        {
215
 
          gimp_progress_init ("Cartoon...");
 
217
          gimp_progress_init ("Cartoon");
216
218
 
217
219
 
218
220
          cartoon (drawable, NULL);
222
224
 
223
225
          /*  Store data  */
224
226
          if (run_mode == GIMP_RUN_INTERACTIVE)
225
 
            gimp_set_data ("plug_in_cartoon", &cvals, sizeof (CartoonVals));
 
227
            gimp_set_data (PLUG_IN_PROC, &cvals, sizeof (CartoonVals));
226
228
        }
227
229
      else
228
230
        {
286
288
  gdouble       std_dev1;
287
289
  gdouble       std_dev2;
288
290
  gdouble       ramp;
289
 
  gchar        *preview_buffer = NULL;
 
291
  guchar       *preview_buffer = NULL;
290
292
 
291
293
  if (preview)
292
294
    {
498
500
    }
499
501
  else
500
502
    {
501
 
      gimp_pixel_rgn_init (&dest_rgn, drawable, x1, y1, width, height, TRUE, TRUE);
 
503
      gimp_pixel_rgn_init (&dest_rgn, drawable,
 
504
                           x1, y1, width, height, TRUE, TRUE);
502
505
      pr = gimp_pixel_rgns_register (2, &src_rgn, &dest_rgn);
503
506
    }
504
507
 
803
806
  GtkObject *scale_data;
804
807
  gboolean   run;
805
808
 
806
 
  gimp_ui_init ("cartoon", FALSE);
 
809
  gimp_ui_init (PLUG_IN_BINARY, FALSE);
807
810
 
808
 
  dialog = gimp_dialog_new (_("Cartoon"), "cartoon",
 
811
  dialog = gimp_dialog_new (_("Cartoon"), PLUG_IN_BINARY,
809
812
                            NULL, 0,
810
 
                            gimp_standard_help_func, "plug-in-cartoon",
 
813
                            gimp_standard_help_func, PLUG_IN_PROC,
811
814
 
812
815
                            GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
813
816
                            GTK_STOCK_OK,     GTK_RESPONSE_OK,
814
817
 
815
818
                            NULL);
816
819
 
 
820
  gtk_dialog_set_alternative_button_order (GTK_DIALOG (dialog),
 
821
                                           GTK_RESPONSE_OK,
 
822
                                           GTK_RESPONSE_CANCEL,
 
823
                                           -1);
 
824
 
 
825
  gimp_window_set_transient (GTK_WINDOW (dialog));
 
826
 
817
827
  main_vbox = gtk_vbox_new (FALSE, 12);
818
828
  gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 12);
819
829
  gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), main_vbox);
840
850
                                     TRUE, 0, 0,
841
851
                                     NULL, NULL);
842
852
 
843
 
  g_signal_connect (scale_data, "value_changed",
 
853
  g_signal_connect (scale_data, "value-changed",
844
854
                    G_CALLBACK (gimp_double_adjustment_update),
845
855
                    &cvals.mask_radius);
846
 
  g_signal_connect_swapped (scale_data, "value_changed",
 
856
  g_signal_connect_swapped (scale_data, "value-changed",
847
857
                            G_CALLBACK (gimp_preview_invalidate),
848
858
                            preview);
849
859
 
854
864
                                     TRUE, 0, 0,
855
865
                                     NULL, NULL);
856
866
 
857
 
  g_signal_connect (scale_data, "value_changed",
 
867
  g_signal_connect (scale_data, "value-changed",
858
868
                    G_CALLBACK (gimp_double_adjustment_update),
859
869
                    &cvals.pct_black);
860
 
  g_signal_connect_swapped (scale_data, "value_changed",
 
870
  g_signal_connect_swapped (scale_data, "value-changed",
861
871
                            G_CALLBACK (gimp_preview_invalidate),
862
872
                            preview);
863
873