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

« back to all changes in this revision

Viewing changes to plug-ins/common/sinus.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:
29
29
 
30
30
#include "config.h"
31
31
 
32
 
#include <stdio.h>
33
 
#include <stdlib.h>
34
 
 
35
 
#include <gtk/gtk.h>
36
 
 
37
32
#include <libgimp/gimp.h>
38
33
#include <libgimp/gimpui.h>
39
34
 
40
35
#include "libgimp/stdplugins-intl.h"
41
36
 
 
37
 
 
38
#define PLUG_IN_PROC   "plug-in-sinus"
 
39
#define PLUG_IN_BINARY "sinus"
 
40
 
 
41
 
42
42
/*
43
43
 * This structure is used for persistent data.
44
44
 */
148
148
                                            params *p),
149
149
                             params *p);
150
150
 
151
 
GimpPlugInInfo PLUG_IN_INFO =
 
151
const GimpPlugInInfo PLUG_IN_INFO =
152
152
{
153
153
  NULL,  /* init_proc  */
154
154
  NULL,  /* quit_proc  */
161
161
static void
162
162
query (void)
163
163
{
164
 
  static GimpParamDef args[] =
 
164
  static const GimpParamDef args[] =
165
165
  {
166
 
    { GIMP_PDB_INT32,    "run_mode",    "Interactive, non-interactive" },
 
166
    { GIMP_PDB_INT32,    "run-mode",    "Interactive, non-interactive" },
167
167
    { GIMP_PDB_IMAGE,    "image",       "Input image (unused)" },
168
168
    { GIMP_PDB_DRAWABLE, "drawable",    "Input drawable" },
169
169
 
179
179
    { GIMP_PDB_FLOAT,    "alpha1",      "alpha for the first color (used if the drawable has an alpha chanel)" },
180
180
    { GIMP_PDB_FLOAT,    "alpha2",      "alpha for the second color (used if the drawable has an alpha chanel)" },
181
181
    { GIMP_PDB_INT32,    "blend",       "0= linear, 1= bilinear, 2= sinusoidal" },
182
 
    { GIMP_PDB_FLOAT,    "blend_power", "Power used to strech the blend" }
 
182
    { GIMP_PDB_FLOAT,    "blend-power", "Power used to strech the blend" }
183
183
  };
184
184
 
185
 
  gimp_install_procedure ("plug_in_sinus",
186
 
                          "Generates a texture with sinus functions",
 
185
  gimp_install_procedure (PLUG_IN_PROC,
 
186
                          N_("Generate complex sinusoidal textures"),
187
187
                          "FIX ME: sinus help",
188
188
                          "Xavier Bouchoux",
189
189
                          "Xavier Bouchoux",
194
194
                          G_N_ELEMENTS (args), 0,
195
195
                          args, NULL);
196
196
 
197
 
  gimp_plugin_menu_register ("plug_in_sinus", "<Image>/Filters/Render/Pattern");
 
197
  gimp_plugin_menu_register (PLUG_IN_PROC, "<Image>/Filters/Render/Pattern");
198
198
}
199
199
 
200
200
static void
222
222
    {
223
223
    case GIMP_RUN_INTERACTIVE:
224
224
      /*  Possibly retrieve data  */
225
 
      gimp_get_data ("plug_in_sinus", &svals);
 
225
      gimp_get_data (PLUG_IN_PROC, &svals);
226
226
 
227
227
      /* In order to prepare the dialog I need to know wether it's grayscale or not */
228
228
      drawable = gimp_drawable_get (param[2].data.d_drawable);
263
263
 
264
264
    case GIMP_RUN_WITH_LAST_VALS:
265
265
      /*  Possibly retrieve data  */
266
 
      gimp_get_data ("plug_in_sinus", &svals);
 
266
      gimp_get_data (PLUG_IN_PROC, &svals);
267
267
 
268
268
      if (svals.random_seed)
269
269
        svals.seed = g_random_int ();
281
281
      (gimp_drawable_is_rgb (drawable->drawable_id) ||
282
282
       gimp_drawable_is_gray (drawable->drawable_id)))
283
283
    {
284
 
      gimp_progress_init (_("Sinus: rendering..."));
 
284
      gimp_progress_init (_("Sinus: rendering"));
285
285
      gimp_tile_cache_ntiles (1);
286
286
      sinus ();
287
287
 
290
290
 
291
291
      /*  Store data  */
292
292
      if (run_mode == GIMP_RUN_INTERACTIVE)
293
 
        gimp_set_data ("plug_in_sinus", &svals, sizeof (SinusVals));
 
293
        gimp_set_data (PLUG_IN_PROC, &svals, sizeof (SinusVals));
294
294
    }
295
295
  else
296
296
    {
641
641
  GtkObject *adj;
642
642
  gboolean   run;
643
643
 
644
 
  gimp_ui_init ("sinus", TRUE);
 
644
  gimp_ui_init (PLUG_IN_BINARY, TRUE);
645
645
 
646
646
  /* Create Main window with a vbox */
647
647
  /* ============================== */
648
 
  dlg = gimp_dialog_new (_("Sinus"), "sinus",
 
648
  dlg = gimp_dialog_new (_("Sinus"), PLUG_IN_BINARY,
649
649
                         NULL, 0,
650
 
                         gimp_standard_help_func, "plug-in-sinus",
 
650
                         gimp_standard_help_func, PLUG_IN_PROC,
651
651
 
652
652
                         GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
653
653
                         GTK_STOCK_OK,     GTK_RESPONSE_OK,
654
654
 
655
655
                         NULL);
656
656
 
 
657
  gtk_dialog_set_alternative_button_order (GTK_DIALOG (dlg),
 
658
                                           GTK_RESPONSE_OK,
 
659
                                           GTK_RESPONSE_CANCEL,
 
660
                                           -1);
 
661
 
 
662
  gimp_window_set_transient (GTK_WINDOW (dlg));
 
663
 
657
664
  main_hbox = gtk_hbox_new (FALSE, 12);
658
665
  gtk_container_set_border_width (GTK_CONTAINER (main_hbox), 12);
659
666
  gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), main_hbox,
690
697
  gtk_container_add (GTK_CONTAINER(frame), table);
691
698
 
692
699
  adj = gimp_scale_entry_new (GTK_TABLE (table), 0, 0,
693
 
                              _("_X Scale:"), 140, 8,
 
700
                              _("_X scale:"), 140, 8,
694
701
                              svals.scalex, 0.0001, 100.0, 0.0001, 5, 4,
695
702
                              TRUE, 0, 0,
696
703
                              NULL, NULL);
697
 
  g_signal_connect (adj, "value_changed",
 
704
  g_signal_connect (adj, "value-changed",
698
705
                    G_CALLBACK (sinus_double_adjustment_update),
699
706
                    &svals.scalex);
700
707
 
701
708
  adj = gimp_scale_entry_new (GTK_TABLE (table), 0, 1,
702
 
                              _("_Y Scale:"), 140, 8,
 
709
                              _("_Y scale:"), 140, 8,
703
710
                              svals.scaley, 0.0001, 100.0, 0.0001, 5, 4,
704
711
                              TRUE, 0, 0,
705
712
                              NULL, NULL);
706
 
  g_signal_connect (adj, "value_changed",
 
713
  g_signal_connect (adj, "value-changed",
707
714
                    G_CALLBACK (sinus_double_adjustment_update),
708
715
                    &svals.scaley);
709
716
 
712
719
                              svals.cmplx, 0.0, 15.0, 0.01, 5, 2,
713
720
                              TRUE, 0, 0,
714
721
                              NULL, NULL);
715
 
  g_signal_connect (adj, "value_changed",
 
722
  g_signal_connect (adj, "value-changed",
716
723
                    G_CALLBACK (sinus_double_adjustment_update),
717
724
                    &svals.cmplx);
718
725
 
737
744
                                 GIMP_RANDOM_SEED_SPINBUTTON (hbox));
738
745
 
739
746
  g_signal_connect (GIMP_RANDOM_SEED_SPINBUTTON_ADJ (hbox),
740
 
                    "value_changed", G_CALLBACK (sinus_random_update), NULL);
 
747
                    "value-changed", G_CALLBACK (sinus_random_update), NULL);
741
748
  gtk_widget_show (table);
742
749
 
743
750
  toggle = gtk_check_button_new_with_mnemonic (_("_Force tiling?"));
815
822
      gtk_box_pack_start (GTK_BOX (hbox), push_col1, FALSE, FALSE, 0);
816
823
      gtk_widget_show (push_col1);
817
824
 
818
 
      g_signal_connect (push_col1, "color_changed",
 
825
      g_signal_connect (push_col1, "color-changed",
819
826
                        G_CALLBACK (gimp_color_button_get_color),
820
827
                        &svals.col1);
821
828
 
825
832
      gtk_box_pack_start (GTK_BOX (hbox), push_col2, FALSE, FALSE, 0);
826
833
      gtk_widget_show (push_col2);
827
834
 
828
 
      g_signal_connect (push_col2, "color_changed",
 
835
      g_signal_connect (push_col2, "color-changed",
829
836
                        G_CALLBACK (gimp_color_button_get_color),
830
837
                        &svals.col2);
831
838
 
845
852
  gtk_container_add (GTK_CONTAINER (frame), table);
846
853
 
847
854
  adj = gimp_scale_entry_new (GTK_TABLE (table), 0, 0,
848
 
                              _("F_irst Color:"), 0, 0,
 
855
                              _("F_irst color:"), 0, 0,
849
856
                              svals.col1.a, 0.0, 1.0, 0.01, 0.1, 2,
850
857
                              TRUE, 0, 0,
851
858
                              NULL, NULL);
852
859
 
853
 
  g_signal_connect (adj, "value_changed",
 
860
  g_signal_connect (adj, "value-changed",
854
861
                    G_CALLBACK (alpha_scale_cb),
855
862
                    push_col1);
856
863
 
857
864
  if (push_col1)
858
 
    g_signal_connect (push_col1, "color_changed",
 
865
    g_signal_connect (push_col1, "color-changed",
859
866
                      G_CALLBACK (alpha_scale_update),
860
867
                      adj);
861
868
 
862
869
  adj = gimp_scale_entry_new (GTK_TABLE (table), 0, 1,
863
 
                              _("S_econd Color:"), 0, 0,
 
870
                              _("S_econd color:"), 0, 0,
864
871
                              svals.col2.a, 0.0, 1.0, 0.01, 0.1, 2,
865
872
                              TRUE, 0, 0,
866
873
                              NULL, NULL);
867
874
 
868
 
  g_signal_connect (adj, "value_changed",
 
875
  g_signal_connect (adj, "value-changed",
869
876
                    G_CALLBACK (alpha_scale_cb),
870
877
                    push_col2);
871
878
 
872
879
  if (push_col2)
873
 
    g_signal_connect (push_col2, "color_changed",
 
880
    g_signal_connect (push_col2, "color-changed",
874
881
                      G_CALLBACK (alpha_scale_update),
875
882
                      adj);
876
883
 
916
923
                              svals.blend_power, -7.5, 7.5, 0.01, 5.0, 2,
917
924
                              TRUE, 0, 0,
918
925
                              NULL, NULL);
919
 
  g_signal_connect (adj, "value_changed",
 
926
  g_signal_connect (adj, "value-changed",
920
927
                    G_CALLBACK (sinus_double_adjustment_update),
921
928
                    &svals.blend_power);
922
929
 
1039
1046
  gtk_container_add (GTK_CONTAINER (frame), preview);
1040
1047
  gtk_widget_show (preview);
1041
1048
 
1042
 
  button = gtk_check_button_new_with_mnemonic (_("Do _Preview"));
 
1049
  button = gtk_check_button_new_with_mnemonic (_("Do _preview"));
1043
1050
  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), do_preview);
1044
1051
  gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
1045
1052
  gtk_widget_show (button);