133
static GimpParamDef load_args[] =
136
static const GimpParamDef load_args[] =
135
{ GIMP_PDB_INT32, "run_mode", "Interactive, non-interactive" },
138
{ GIMP_PDB_INT32, "run-mode", "Interactive, non-interactive" },
136
139
{ GIMP_PDB_STRING, "filename", "The name of the file to load" },
137
{ GIMP_PDB_STRING, "raw_filename", "The name of the file to load" },
140
{ GIMP_PDB_STRING, "raw-filename", "The name of the file to load" },
139
static GimpParamDef load_return_vals[] =
142
static const GimpParamDef load_return_vals[] =
141
144
{ GIMP_PDB_IMAGE, "image", "Output image" },
144
static GimpParamDef save_args[] =
147
static const GimpParamDef save_args[] =
146
{ GIMP_PDB_INT32, "run_mode", "Interactive, non-interactive" },
149
{ GIMP_PDB_INT32, "run-mode", "Interactive, non-interactive" },
147
150
{ GIMP_PDB_IMAGE, "image", "Input image" },
148
151
{ GIMP_PDB_DRAWABLE, "drawable", "Drawable to save" },
149
152
{ GIMP_PDB_STRING, "filename", "The name of the file to save the image in" },
150
{ GIMP_PDB_STRING, "raw_filename", "The name of the file to save the image in" },
153
{ GIMP_PDB_STRING, "raw-filename", "The name of the file to save the image in" },
153
gimp_install_procedure ("file_fits_load",
156
gimp_install_procedure (LOAD_PROC,
154
157
"load file of the FITS file format",
155
"load file of the FITS file format (Flexible Image Transport System)",
158
"load file of the FITS file format "
159
"(Flexible Image Transport System)",
156
160
"Peter Kirchgessner",
157
161
"Peter Kirchgessner (peter@kirchgessner.net)",
163
167
G_N_ELEMENTS (load_return_vals),
164
168
load_args, load_return_vals);
166
gimp_register_file_handler_mime ("file_fits_load", "image/x-fits");
167
gimp_register_magic_load_handler ("file_fits_load",
170
gimp_register_file_handler_mime (LOAD_PROC, "image/x-fits");
171
gimp_register_magic_load_handler (LOAD_PROC,
170
174
"0,string,SIMPLE");
172
gimp_install_procedure ("file_fits_save",
176
gimp_install_procedure (SAVE_PROC,
173
177
"save file in the FITS file format",
174
"FITS saving handles all image types except those with alpha channels.",
178
"FITS saving handles all image types except "
179
"those with alpha channels.",
175
180
"Peter Kirchgessner",
176
181
"Peter Kirchgessner (peter@kirchgessner.net)",
181
186
G_N_ELEMENTS (save_args), 0,
182
187
save_args, NULL);
184
gimp_register_file_handler_mime ("file_fits_save", "image/x-fits");
185
gimp_register_save_handler ("file_fits_save", "fit,fits", "");
189
gimp_register_file_handler_mime (SAVE_PROC, "image/x-fits");
190
gimp_register_save_handler (SAVE_PROC, "fit,fits", "");
209
214
values[0].type = GIMP_PDB_STATUS;
210
215
values[0].data.d_status = GIMP_PDB_EXECUTION_ERROR;
212
if (strcmp (name, "file_fits_load") == 0)
217
if (strcmp (name, LOAD_PROC) == 0)
214
219
switch (run_mode)
216
221
case GIMP_RUN_INTERACTIVE:
217
222
/* Possibly retrieve data */
218
gimp_get_data ("file_fits_load", &plvals);
223
gimp_get_data (LOAD_PROC, &plvals);
220
225
if (!load_dialog ())
221
226
status = GIMP_PDB_CANCEL;
257
262
/* Store plvals data */
258
263
if (status == GIMP_PDB_SUCCESS)
259
gimp_set_data ("file_fits_load", &plvals, sizeof (FITSLoadVals));
264
gimp_set_data (LOAD_PROC, &plvals, sizeof (FITSLoadVals));
262
else if (strcmp (name, "file_fits_save") == 0)
267
else if (strcmp (name, SAVE_PROC) == 0)
264
269
image_ID = param[1].data.d_int32;
265
270
drawable_ID = param[2].data.d_int32;
270
275
case GIMP_RUN_INTERACTIVE:
271
276
case GIMP_RUN_WITH_LAST_VALS:
272
gimp_ui_init ("fits", FALSE);
277
gimp_ui_init (PLUG_IN_BINARY, FALSE);
273
278
export = gimp_export_image (&image_ID, &drawable_ID, "FITS",
274
279
(GIMP_EXPORT_CAN_HANDLE_RGB |
275
280
GIMP_EXPORT_CAN_HANDLE_GRAY |
455
temp = g_strdup_printf (_("Saving '%s'..."),
456
gimp_filename_to_utf8 (filename));
457
gimp_progress_init (temp);
459
gimp_progress_init_printf (_("Saving '%s'"),
460
gimp_filename_to_utf8 (filename));
460
462
if ((drawable_type == GIMP_INDEXED_IMAGE) ||
461
463
(drawable_type == GIMP_INDEXEDA_IMAGE))
964
966
GtkWidget *frame;
967
gimp_ui_init ("fits", FALSE);
969
gimp_ui_init (PLUG_IN_BINARY, FALSE);
969
dialog = gimp_dialog_new (_("Load FITS File"), "fits",
971
dialog = gimp_dialog_new (_("Load FITS File"), PLUG_IN_BINARY,
971
gimp_standard_help_func, "file-fits-load",
973
gimp_standard_help_func, LOAD_PROC,
973
975
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
974
GTK_STOCK_OK, GTK_RESPONSE_OK,
976
GTK_STOCK_OPEN, GTK_RESPONSE_OK,
980
gtk_dialog_set_alternative_button_order (GTK_DIALOG (dialog),
978
985
vbox = gtk_vbox_new (FALSE, 12);
979
986
gtk_container_set_border_width (GTK_CONTAINER (vbox), 12);
980
987
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), vbox,
982
989
gtk_widget_show (vbox);
984
frame = gimp_int_radio_group_new (TRUE, _("BLANK/NaN Pixel Replacement"),
991
frame = gimp_int_radio_group_new (TRUE, _("Replacement for undefined pixels"),
985
992
G_CALLBACK (gimp_radio_button_update),
986
993
&plvals.replace, plvals.replace,