517
static GimpParamDef load_args[] =
539
static const GimpParamDef load_args[] =
519
{ GIMP_PDB_INT32, "run_mode", "Interactive, non-interactive" },
520
{ GIMP_PDB_STRING, "filename", "The name of the file to load" },
521
{ GIMP_PDB_STRING, "raw_filename", "The name of the file to load" }
541
{ GIMP_PDB_INT32, "run-mode", "Interactive, non-interactive" },
542
{ GIMP_PDB_STRING, "filename", "The name of the file to load" },
543
{ GIMP_PDB_STRING, "raw-filename", "The name of the file to load" }
523
static GimpParamDef load_return_vals[] =
545
static const GimpParamDef load_return_vals[] =
525
547
{ GIMP_PDB_IMAGE, "image", "Output image" }
528
static GimpParamDef set_load_args[] =
550
static const GimpParamDef set_load_args[] =
530
{ GIMP_PDB_INT32, "resolution", "Resolution to interprete image (dpi)" },
531
{ GIMP_PDB_INT32, "width", "Desired width" },
532
{ GIMP_PDB_INT32, "height", "Desired height" },
533
{ GIMP_PDB_INT32, "check_bbox", "0: Use width/height, 1: Use BoundingBox" },
534
{ GIMP_PDB_STRING, "pages", "Pages to load (e.g.: 1,3,5-7)" },
535
{ GIMP_PDB_INT32, "coloring", "4: b/w, 5: grey, 6: colour image, 7: automatic" },
536
{ GIMP_PDB_INT32, "TextAlphaBits", "1, 2, or 4" },
537
{ GIMP_PDB_INT32, "GraphicsAlphaBits", "1, 2, or 4" }
552
{ GIMP_PDB_INT32, "resolution", "Resolution to interprete image (dpi)" },
553
{ GIMP_PDB_INT32, "width", "Desired width" },
554
{ GIMP_PDB_INT32, "height", "Desired height" },
555
{ GIMP_PDB_INT32, "check-bbox", "0: Use width/height, 1: Use BoundingBox" },
556
{ GIMP_PDB_STRING, "pages", "Pages to load (e.g.: 1,3,5-7)" },
557
{ GIMP_PDB_INT32, "coloring", "4: b/w, 5: grey, 6: colour image, 7: automatic" },
558
{ GIMP_PDB_INT32, "TextAlphaBits", "1, 2, or 4" },
559
{ GIMP_PDB_INT32, "GraphicsAlphaBits", "1, 2, or 4" }
540
static GimpParamDef thumb_args[] =
562
static const GimpParamDef thumb_args[] =
542
564
{ GIMP_PDB_STRING, "filename", "The name of the file to load" },
543
{ GIMP_PDB_INT32, "thumb_size", "Preferred thumbnail size" }
565
{ GIMP_PDB_INT32, "thumb-size", "Preferred thumbnail size" }
545
static GimpParamDef thumb_return_vals[] =
567
static const GimpParamDef thumb_return_vals[] =
547
569
{ GIMP_PDB_IMAGE, "image", "Output image" }
550
static GimpParamDef save_args[] =
572
static const GimpParamDef save_args[] =
552
{ GIMP_PDB_INT32, "run_mode", "Interactive, non-interactive" },
553
{ GIMP_PDB_IMAGE, "image", "Input image" },
554
{ GIMP_PDB_DRAWABLE, "drawable", "Drawable to save" },
555
{ GIMP_PDB_STRING, "filename", "The name of the file to save the image in" },
556
{ GIMP_PDB_STRING, "raw_filename",
557
"The name of the file to save the image in" },
558
{ GIMP_PDB_FLOAT, "width", "Width of the image in PostScript file (0: use input image size)" },
559
{ GIMP_PDB_FLOAT, "height", "Height of image in PostScript file (0: use input image size)" },
560
{ GIMP_PDB_FLOAT, "x_offset", "X-offset to image from lower left corner" },
561
{ GIMP_PDB_FLOAT, "y_offset", "Y-offset to image from lower left corner" },
562
{ GIMP_PDB_INT32, "unit", "Unit for width/height/offset. 0: inches, 1: millimeters" },
563
{ GIMP_PDB_INT32, "keep_ratio", "0: use width/height, 1: keep aspect ratio" },
564
{ GIMP_PDB_INT32, "rotation", "0, 90, 180, 270" },
565
{ GIMP_PDB_INT32, "eps_flag", "0: PostScript, 1: Encapsulated PostScript" },
566
{ GIMP_PDB_INT32, "preview", "0: no preview, >0: max. size of preview" },
567
{ GIMP_PDB_INT32, "level", "1: PostScript Level 1, 2: PostScript Level 2" }
574
{ GIMP_PDB_INT32, "run-mode", "Interactive, non-interactive" },
575
{ GIMP_PDB_IMAGE, "image", "Input image" },
576
{ GIMP_PDB_DRAWABLE, "drawable", "Drawable to save" },
577
{ GIMP_PDB_STRING, "filename", "The name of the file to save the image in" },
578
{ GIMP_PDB_STRING, "raw-filename", "The name of the file to save the image in" },
579
{ GIMP_PDB_FLOAT, "width", "Width of the image in PostScript file (0: use input image size)" },
580
{ GIMP_PDB_FLOAT, "height", "Height of image in PostScript file (0: use input image size)" },
581
{ GIMP_PDB_FLOAT, "x-offset", "X-offset to image from lower left corner" },
582
{ GIMP_PDB_FLOAT, "y-offset", "Y-offset to image from lower left corner" },
583
{ GIMP_PDB_INT32, "unit", "Unit for width/height/offset. 0: inches, 1: millimeters" },
584
{ GIMP_PDB_INT32, "keep-ratio", "0: use width/height, 1: keep aspect ratio" },
585
{ GIMP_PDB_INT32, "rotation", "0, 90, 180, 270" },
586
{ GIMP_PDB_INT32, "eps-flag", "0: PostScript, 1: Encapsulated PostScript" },
587
{ GIMP_PDB_INT32, "preview", "0: no preview, >0: max. size of preview" },
588
{ GIMP_PDB_INT32, "level", "1: PostScript Level 1, 2: PostScript Level 2" }
570
gimp_install_procedure ("file_ps_load",
591
gimp_install_procedure (LOAD_PS_PROC,
571
592
"load PostScript documents",
572
593
"load PostScript documents",
573
594
"Peter Kirchgessner <peter@kirchgessner.net>",
636
659
G_N_ELEMENTS (set_load_args), 0,
637
660
set_load_args, NULL);
639
gimp_install_procedure ("file_ps_load_thumb",
640
"Loads a small preview from a Postscript or PDF document",
662
gimp_install_procedure (LOAD_PS_THUMB_PROC,
663
"Loads a small preview from a PostScript or PDF document",
642
665
"Peter Kirchgessner <peter@kirchgessner.net>",
643
666
"Peter Kirchgessner",
648
671
G_N_ELEMENTS (thumb_args),
649
672
G_N_ELEMENTS (thumb_return_vals),
650
673
thumb_args, thumb_return_vals);
652
gimp_register_thumbnail_loader ("file_ps_load", "file_ps_load_thumb");
653
gimp_register_thumbnail_loader ("file_eps_load", "file_ps_load_thumb");
654
gimp_register_thumbnail_loader ("file_pdf_load", "file_ps_load_thumb");
656
gimp_install_procedure ("file_ps_save",
675
gimp_register_thumbnail_loader (LOAD_PS_PROC, LOAD_PS_THUMB_PROC);
676
gimp_register_thumbnail_loader (LOAD_EPS_PROC, LOAD_PS_THUMB_PROC);
679
gimp_register_thumbnail_loader (LOAD_PDF_PROC, LOAD_PS_THUMB_PROC);
682
gimp_install_procedure (SAVE_PS_PROC,
657
683
"save image as PostScript docuement",
658
"PostScript saving handles all image types except those with alpha channels.",
684
"PostScript saving handles all image types except "
685
"those with alpha channels.",
659
686
"Peter Kirchgessner <peter@kirchgessner.net>",
660
687
"Peter Kirchgessner",
837
else if (strcmp (name, "file_ps_save") == 0 ||
838
strcmp (name, "file_eps_save") == 0)
866
else if (strcmp (name, SAVE_PS_PROC) == 0 ||
867
strcmp (name, SAVE_EPS_PROC) == 0)
840
psvals.eps = strcmp (name, "file_ps_save");
869
psvals.eps = strcmp (name, SAVE_PS_PROC);
842
871
image_ID = orig_image_ID = param[1].data.d_int32;
843
872
drawable_ID = param[2].data.d_int32;
845
874
/* eventually export the image */
846
875
switch (run_mode)
848
case GIMP_RUN_INTERACTIVE:
849
case GIMP_RUN_WITH_LAST_VALS:
850
gimp_ui_init ("ps", FALSE);
851
export = gimp_export_image (&image_ID, &drawable_ID,
877
case GIMP_RUN_INTERACTIVE:
878
case GIMP_RUN_WITH_LAST_VALS:
879
gimp_ui_init (PLUG_IN_BINARY, FALSE);
880
export = gimp_export_image (&image_ID, &drawable_ID,
852
881
psvals.eps ? "EPS" : "PostScript",
853
(GIMP_EXPORT_CAN_HANDLE_RGB |
854
GIMP_EXPORT_CAN_HANDLE_GRAY |
855
GIMP_EXPORT_CAN_HANDLE_INDEXED));
856
if (export == GIMP_EXPORT_CANCEL)
858
values[0].data.d_status = GIMP_PDB_CANCEL;
882
(GIMP_EXPORT_CAN_HANDLE_RGB |
883
GIMP_EXPORT_CAN_HANDLE_GRAY |
884
GIMP_EXPORT_CAN_HANDLE_INDEXED));
885
if (export == GIMP_EXPORT_CANCEL)
887
values[0].data.d_status = GIMP_PDB_CANCEL;
866
895
switch (run_mode)
910
939
if (status == GIMP_PDB_SUCCESS)
912
if ((psvals.width == 0.0) || (psvals.height == 0.0))
913
ps_set_save_size (&psvals, orig_image_ID);
941
if ((psvals.width == 0.0) || (psvals.height == 0.0))
942
ps_set_save_size (&psvals, orig_image_ID);
916
if (save_image (param[3].data.d_string, image_ID, drawable_ID))
918
/* Store psvals data */
919
gimp_set_data (name, &psvals, sizeof (PSSaveVals));
923
status = GIMP_PDB_EXECUTION_ERROR;
945
if (save_image (param[3].data.d_string, image_ID, drawable_ID))
947
/* Store psvals data */
948
gimp_set_data (name, &psvals, sizeof (PSSaveVals));
952
status = GIMP_PDB_EXECUTION_ERROR;
927
956
if (export == GIMP_EXPORT_EXPORT)
928
gimp_image_delete (image_ID);
957
gimp_image_delete (image_ID);
930
else if (strcmp (name, "file_ps_load_setargs") == 0)
959
else if (strcmp (name, LOAD_PS_SETARGS_PROC) == 0)
932
961
/* Make sure all the arguments are there! */
933
962
if (nparams != 8)
935
status = GIMP_PDB_CALLING_ERROR;
964
status = GIMP_PDB_CALLING_ERROR;
939
plvals.resolution = param[0].data.d_int32;
940
plvals.width = param[1].data.d_int32;
941
plvals.height = param[2].data.d_int32;
942
plvals.use_bbox = param[3].data.d_int32;
943
if (param[4].data.d_string != NULL)
944
strncpy (plvals.pages, param[4].data.d_string,
945
sizeof (plvals.pages));
947
plvals.pages[0] = '\0';
948
plvals.pages[sizeof (plvals.pages) - 1] = '\0';
949
plvals.pnm_type = param[5].data.d_int32;
950
plvals.textalpha = param[6].data.d_int32;
951
plvals.graphicsalpha = param[7].data.d_int32;
953
gimp_set_data ("file_ps_load", &plvals, sizeof (PSLoadVals));
968
plvals.resolution = param[0].data.d_int32;
969
plvals.width = param[1].data.d_int32;
970
plvals.height = param[2].data.d_int32;
971
plvals.use_bbox = param[3].data.d_int32;
972
if (param[4].data.d_string != NULL)
973
strncpy (plvals.pages, param[4].data.d_string,
974
sizeof (plvals.pages));
976
plvals.pages[0] = '\0';
977
plvals.pages[sizeof (plvals.pages) - 1] = '\0';
978
plvals.pnm_type = param[5].data.d_int32;
979
plvals.textalpha = param[6].data.d_int32;
980
plvals.graphicsalpha = param[7].data.d_int32;
983
gimp_set_data (LOAD_PS_PROC, &plvals, sizeof (PSLoadVals));
1038
1067
for (page_count = 1; page_count <= max_pagenum; page_count++)
1040
1069
if (page_in_list (plvals.pages, page_count))
1042
image_ID = load_ps (filename, page_count, ifp, llx, lly, urx, ury);
1071
image_ID = load_ps (filename, page_count, ifp, llx, lly, urx, ury);
1046
gimp_image_set_resolution (image_ID,
1047
(double) plvals.resolution,
1048
(double) plvals.resolution);
1075
gimp_image_set_resolution (image_ID,
1076
(double) plvals.resolution,
1077
(double) plvals.resolution);
1050
if (n_images == max_images)
1052
nl = (gint32 *) g_realloc (image_list,
1053
(max_images+10)*sizeof (gint32));
1054
if (nl == NULL) break;
1058
image_list[n_images++] = image_ID;
1079
if (n_images == max_images)
1081
nl = (gint32 *) g_realloc (image_list,
1082
(max_images+10)*sizeof (gint32));
1083
if (nl == NULL) break;
1087
image_list[n_images++] = image_ID;
1060
1089
else /* Skip an image */
1063
if (! skip_ps (ifp))
1092
if (! skip_ps (ifp))
1068
1097
ps_close (ifp, ChildPid);
1070
/* Display images in reverse order. The last will be displayed by GIMP itself*/
1071
if (l_run_mode != GIMP_RUN_NONINTERACTIVE)
1073
for (k = n_images-1; k >= 1; k--)
1074
gimp_display_new (image_list[k]);
1077
image_ID = (n_images > 0) ? image_list[0] : -1;
1099
if (ps_pagemode == GIMP_PAGE_SELECTOR_TARGET_LAYERS)
1101
for (k = 0; k < n_images; k++)
1107
image_ID = image_list[0];
1109
name = g_strdup_printf (_("%s-pages"), filename);
1110
gimp_image_set_filename (image_ID, name);
1115
gint32 current_layer;
1118
tmp_ID = gimp_image_get_active_drawable (image_list[k]);
1120
name = gimp_drawable_get_name (tmp_ID);
1122
current_layer = gimp_layer_new_from_drawable (tmp_ID, image_ID);
1123
gimp_drawable_set_name (current_layer, name);
1124
gimp_image_add_layer (image_ID, current_layer, -1);
1125
gimp_image_delete (image_list[k]);
1131
gimp_image_undo_enable (image_ID);
1135
/* Display images in reverse order.
1136
* The last will be displayed by GIMP itself
1138
for (k = n_images - 1; k >= 0; k--)
1140
gimp_image_undo_enable (image_list[k]);
1141
gimp_image_clean_all (image_list[k]);
1143
if (l_run_mode != GIMP_RUN_NONINTERACTIVE && k > 0)
1144
gimp_display_new (image_list[k]);
1147
image_ID = (n_images > 0) ? image_list[0] : -1;
1078
1150
g_free (image_list);
1080
1152
return image_ID;
1810
1880
gint32 image_ID;
1811
1881
GimpImageType gdtype;
1813
1884
if (type == GIMP_GRAY) gdtype = GIMP_GRAY_IMAGE;
1814
1885
else if (type == GIMP_INDEXED) gdtype = GIMP_INDEXED_IMAGE;
1815
1886
else gdtype = GIMP_RGB_IMAGE;
1817
1888
image_ID = gimp_image_new (width, height, type);
1823
tmp = g_strdup_printf ("%s-pg%ld", filename, (long)pagenum);
1824
gimp_image_set_filename (image_ID, tmp);
1829
gimp_image_set_filename (image_ID, filename);
1832
*layer_ID = gimp_layer_new (image_ID, "Background", width, height,
1833
gdtype, 100, GIMP_NORMAL_MODE);
1889
gimp_image_undo_disable (image_ID);
1891
tmp = g_strdup_printf ("%s-%d", filename, pagenum);
1892
gimp_image_set_filename (image_ID, tmp);
1895
tmp = g_strdup_printf (_("Page %d"), pagenum);
1896
*layer_ID = gimp_layer_new (image_ID, tmp, width, height,
1897
gdtype, 100, GIMP_NORMAL_MODE);
1834
1900
gimp_image_add_layer (image_ID, *layer_ID, 0);
1836
1902
*drawable = gimp_drawable_get (*layer_ID);
1837
1903
gimp_pixel_rgn_init (pixel_rgn, *drawable, 0, 0, (*drawable)->width,
1838
(*drawable)->height, TRUE, FALSE);
1904
(*drawable)->height, TRUE, FALSE);
1840
1906
return image_ID;
1962
2028
for (i = 0; i < height; i++)
1964
e = (fread (bitline, 1, nread, ifp) != nread);
1965
if (total_scan_lines >= image_height) continue;
1969
j = width; /* Map 1 byte of bitimage to 8 bytes of indexed image */
1974
memcpy (byteptr, bit2byte + *(temp++)*8, 8);
1979
memcpy (byteptr, bit2byte + *temp*8, j);
1981
memcpy (dest, byteline+skip_left, image_width);
1982
dest += image_width;
1987
gimp_progress_update ((double)(i+1) / (double)image_height);
1989
if ((scan_lines == tile_height) || ((i+1) == image_height))
1991
gimp_pixel_rgn_set_rect (&pixel_rgn, data, 0, i-scan_lines+1,
1992
image_width, scan_lines);
2030
e = (fread (bitline, 1, nread, ifp) != nread);
2031
if (total_scan_lines >= image_height) continue;
2035
j = width; /* Map 1 byte of bitimage to 8 bytes of indexed image */
2040
memcpy (byteptr, bit2byte + *(temp++)*8, 8);
2045
memcpy (byteptr, bit2byte + *temp*8, j);
2047
memcpy (dest, byteline+skip_left, image_width);
2048
dest += image_width;
2053
gimp_progress_update ((double)(i+1) / (double)image_height);
2055
if ((scan_lines == tile_height) || ((i+1) == image_height))
2057
gimp_pixel_rgn_set_rect (&pixel_rgn, data, 0, i-scan_lines+1,
2058
image_width, scan_lines);
1999
2065
else /* Read gray/rgb-image */
2001
2067
for (i = 0; i < height; i++)
2003
e = (fread (byteline, bpp, width, ifp) != width);
2004
if (total_scan_lines >= image_height) continue;
2008
memcpy (dest, byteline+skip_left*bpp, image_width*bpp);
2009
dest += image_width*bpp;
2014
gimp_progress_update ((double)(i+1) / (double)image_height);
2016
if ((scan_lines == tile_height) || ((i+1) == image_height))
2018
gimp_pixel_rgn_set_rect (&pixel_rgn, data, 0, i-scan_lines+1,
2019
image_width, scan_lines);
2069
e = (fread (byteline, bpp, width, ifp) != width);
2070
if (total_scan_lines >= image_height) continue;
2074
memcpy (dest, byteline+skip_left*bpp, image_width*bpp);
2075
dest += image_width*bpp;
2080
gimp_progress_update ((double)(i+1) / (double)image_height);
2082
if ((scan_lines == tile_height) || ((i+1) == image_height))
2084
gimp_pixel_rgn_set_rect (&pixel_rgn, data, 0, i-scan_lines+1,
2085
image_width, scan_lines);
2189
2255
/* If linecount is less than zero, all used memory is freed. */
2192
dither_grey (guchar *grey,
2258
dither_grey (const guchar *grey,
2197
register guchar *greyptr, *bwptr, mask;
2199
int x, greyval, fse_inline;
2200
static int *fs_error = NULL;
2201
static int do_init_arrays = 1;
2202
static int limit_array[1278];
2203
static int east_error[256],seast_error[256],south_error[256],swest_error[256];
2204
int *limit = &(limit_array[512]);
2263
static gboolean do_init_arrays = TRUE;
2264
static gint *fs_error = NULL;
2265
static gint limit[1278];
2266
static gint east_error[256];
2267
static gint seast_error[256];
2268
static gint south_error[256];
2269
static gint swest_error[256];
2271
register const guchar *greyptr;
2272
register guchar *bwptr, mask;
2274
gint x, greyval, fse_inline;
2206
2276
if (linecount <= 0)
2208
if (fs_error) g_free (fs_error-1);
2209
if (linecount < 0) return;
2210
fs_error = g_new (int, npix+2);
2211
memset ((char *)fs_error, 0, (npix+2)*sizeof (int));
2283
fs_error = g_new0 (gint, npix + 2);
2214
2285
/* Initialize some arrays that speed up dithering */
2215
2286
if (do_init_arrays)
2218
for (x = -511; x <= 766; x++)
2219
limit[x] = (x < 0) ? 0 : ((x > 255) ? 255 : x);
2220
for (greyval = 0; greyval < 256; greyval++)
2222
east_error[greyval] = (greyval < 128) ? ((greyval * 79) >> 8)
2223
: (((greyval-255)*79) >> 8);
2224
seast_error[greyval] = (greyval < 128) ? ((greyval * 34) >> 8)
2225
: (((greyval-255)*34) >> 8);
2226
south_error[greyval] = (greyval < 128) ? ((greyval * 56) >> 8)
2227
: (((greyval-255)*56) >> 8);
2228
swest_error[greyval] = (greyval < 128) ? ((greyval * 12) >> 8)
2229
: (((greyval-255)*12) >> 8);
2290
do_init_arrays = FALSE;
2292
for (i = 0, x = -511; x <= 766; i++, x++)
2293
limit[i] = (x < 0) ? 0 : ((x > 255) ? 255 : x);
2295
for (greyval = 0; greyval < 256; greyval++)
2297
east_error[greyval] = (greyval < 128) ?
2298
((greyval * 79) >> 8) : (((greyval - 255) * 79) >> 8);
2299
seast_error[greyval] = (greyval < 128) ?
2300
((greyval * 34) >> 8) : (((greyval - 255) * 34) >> 8);
2301
south_error[greyval] = (greyval < 128) ?
2302
((greyval * 56) >> 8) : (((greyval - 255) * 56) >> 8);
2303
swest_error[greyval] = (greyval < 128) ?
2304
((greyval * 12) >> 8) : (((greyval - 255) * 12) >> 8);
2233
if (fs_error == NULL) return;
2235
memset (bw, 0, (npix+7)/8); /* Initialize with white */
2309
g_return_if_fail (fs_error != NULL);
2311
memset (bw, 0, (npix + 7) / 8); /* Initialize with white */
2237
2313
greyptr = grey;
2240
fse_inline = fs_error[0];
2241
for (x = 0, fse = fs_error; x < npix; x++, fse++)
2317
fse_inline = fs_error[1];
2319
for (x = 0, fse = fs_error + 1; x < npix; x++, fse++)
2243
greyval = limit[*(greyptr++) + fse_inline]; /* 0 <= greyval <= 255 */
2244
if (greyval < 128) *bwptr |= mask; /* Set a black pixel */
2322
limit[*(greyptr++) + fse_inline + 512]; /* 0 <= greyval <= 255 */
2325
*bwptr |= mask; /* Set a black pixel */
2246
2327
/* Error distribution */
2247
2328
fse_inline = east_error[greyval] + fse[1];
2913
3037
GtkWidget *table;
2914
3038
GtkWidget *spinbutton;
2915
3039
GtkObject *adj;
3040
GtkWidget *entry = NULL;
3041
GtkWidget *target = NULL;
2917
3042
GtkWidget *toggle;
3043
GtkWidget *selector = NULL;
3045
gchar *range = NULL;
2920
gimp_ui_init ("ps", FALSE);
2922
dialog = gimp_dialog_new (_("Load PostScript"), "ps",
3048
page_count = count_ps_pages (filename);
3050
gimp_ui_init (PLUG_IN_BINARY, FALSE);
3052
dialog = gimp_dialog_new (_("Import from PostScript"), PLUG_IN_BINARY,
2924
gimp_standard_help_func, "file-ps-load",
2926
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
2927
GTK_STOCK_OK, GTK_RESPONSE_OK,
3054
gimp_standard_help_func, LOAD_PS_PROC,
3056
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
3057
_("_Import"), GTK_RESPONSE_OK,
3061
gtk_dialog_set_alternative_button_order (GTK_DIALOG (dialog),
3063
GTK_RESPONSE_CANCEL,
2931
3066
main_vbox = gtk_vbox_new (FALSE, 12);
2932
3067
gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 12);
2933
3068
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), main_vbox,
2935
3070
gtk_widget_show (main_vbox);
3074
selector = gimp_page_selector_new ();
3075
gtk_box_pack_start (GTK_BOX (main_vbox), selector, TRUE, TRUE, 0);
3076
gimp_page_selector_set_n_pages (GIMP_PAGE_SELECTOR (selector),
3078
gimp_page_selector_set_target (GIMP_PAGE_SELECTOR (selector),
3081
gtk_widget_show (selector);
3083
g_signal_connect_swapped (selector, "activate",
3084
G_CALLBACK (gtk_window_activate_default),
2937
3088
hbox = gtk_hbox_new (TRUE, 12);
2938
3089
gtk_box_pack_start (GTK_BOX (main_vbox), hbox, FALSE, FALSE, 0);
2939
3090
gtk_widget_show (hbox);
2953
3104
gtk_widget_show (table);
2955
3106
spinbutton = gimp_spin_button_new (&adj, plvals.resolution,
2956
5, 1440, 1, 10, 0, 1, 0);
3107
5, 1440, 1, 10, 0, 1, 0);
2957
3108
gimp_table_attach_aligned (GTK_TABLE (table), 0, 0,
2958
_("Resolution:"), 0.0, 0.5,
2959
spinbutton, 1, FALSE);
2960
g_signal_connect (adj, "value_changed",
3109
_("Resolution:"), 0.0, 0.5,
3110
spinbutton, 1, FALSE);
3112
g_signal_connect (adj, "value-changed",
3113
G_CALLBACK (resolution_change_callback),
3114
&plvals.resolution);
3116
g_signal_connect (adj, "value-changed",
2961
3117
G_CALLBACK (gimp_int_adjustment_update),
2962
3118
&plvals.resolution);
2964
spinbutton = gimp_spin_button_new (&adj, plvals.width,
2965
1, GIMP_MAX_IMAGE_SIZE, 1, 10, 0, 1, 0);
3122
ps_width_spinbutton = gimp_spin_button_new (&adj, plvals.width,
3123
1, GIMP_MAX_IMAGE_SIZE,
2966
3125
gimp_table_attach_aligned (GTK_TABLE (table), 0, 1,
2967
_("_Width:"), 0.0, 0.5,
2968
spinbutton, 1, FALSE);
2969
g_signal_connect (adj, "value_changed",
3126
_("_Width:"), 0.0, 0.5,
3127
ps_width_spinbutton, 1, FALSE);
3128
g_signal_connect (adj, "value-changed",
2970
3129
G_CALLBACK (gimp_int_adjustment_update),
2971
3130
&plvals.width);
2973
spinbutton = gimp_spin_button_new (&adj, plvals.height,
2974
1, GIMP_MAX_IMAGE_SIZE, 1, 10, 0, 1, 0);
3132
ps_height_spinbutton = gimp_spin_button_new (&adj, plvals.height,
3133
1, GIMP_MAX_IMAGE_SIZE,
2975
3135
gimp_table_attach_aligned (GTK_TABLE (table), 0, 2,
2976
_("_Height:"), 0.0, 0.5,
2977
spinbutton, 1, FALSE);
2978
g_signal_connect (adj, "value_changed",
3136
_("_Height:"), 0.0, 0.5,
3137
ps_height_spinbutton, 1, FALSE);
3138
g_signal_connect (adj, "value-changed",
2979
3139
G_CALLBACK (gimp_int_adjustment_update),
2980
3140
&plvals.height);
2982
entry = gtk_entry_new ();
2983
gtk_widget_set_size_request (entry, 80, -1);
2984
gtk_entry_set_text (GTK_ENTRY (entry), plvals.pages);
2985
gimp_table_attach_aligned (GTK_TABLE (table), 0, 3,
2986
_("Pages:"), 0.0, 0.5,
2988
g_signal_connect (entry, "changed",
2989
G_CALLBACK (load_pages_entry_callback),
2991
gimp_help_set_help_data (GTK_WIDGET (entry),
2992
_("Pages to load (e.g.: 1-4 or 1,3,5-7)"), NULL);
3142
if (loadPDF || page_count == 0)
3144
entry = gtk_entry_new ();
3145
gtk_widget_set_size_request (entry, 80, -1);
3146
gtk_entry_set_text (GTK_ENTRY (entry), plvals.pages);
3147
gimp_table_attach_aligned (GTK_TABLE (table), 0, 3,
3148
_("Pages:"), 0.0, 0.5,
3151
g_signal_connect (entry, "changed",
3152
G_CALLBACK (load_pages_entry_callback),
3154
gimp_help_set_help_data (GTK_WIDGET (entry),
3155
_("Pages to load (e.g.: 1-4 or 1,3,5-7)"), NULL);
3157
target = gtk_combo_box_new_text ();
3158
gtk_combo_box_insert_text (GTK_COMBO_BOX (target),
3159
GIMP_PAGE_SELECTOR_TARGET_LAYERS, _("Layers"));
3160
gtk_combo_box_insert_text (GTK_COMBO_BOX (target),
3161
GIMP_PAGE_SELECTOR_TARGET_IMAGES, _("Images"));
3162
gtk_combo_box_set_active (GTK_COMBO_BOX (target), (int) ps_pagemode);
3163
gimp_table_attach_aligned (GTK_TABLE (table), 0, 4,
3164
_("Open as"), 0.0, 0.5,
2994
3168
toggle = gtk_check_button_new_with_label (_("Try Bounding Box"));
2995
3169
gtk_box_pack_start (GTK_BOX (vbox), toggle, FALSE, FALSE, 0);
3123
3330
gtk_widget_show (table);
3125
3332
spinbutton = gimp_spin_button_new (&vals->adjustment[0], psvals.width,
3126
1e-5, GIMP_MAX_IMAGE_SIZE, 1, 10, 0, 1, 2);
3333
1e-5, GIMP_MAX_IMAGE_SIZE, 1, 10, 0, 1, 2);
3127
3334
gimp_table_attach_aligned (GTK_TABLE (table), 0, 0,
3128
_("_Width:"), 0.0, 0.5,
3129
spinbutton, 1, FALSE);
3130
g_signal_connect (vals->adjustment[0], "value_changed",
3335
_("_Width:"), 0.0, 0.5,
3336
spinbutton, 1, FALSE);
3337
g_signal_connect (vals->adjustment[0], "value-changed",
3131
3338
G_CALLBACK (gimp_double_adjustment_update),
3132
3339
&psvals.width);
3134
3341
spinbutton = gimp_spin_button_new (&vals->adjustment[1], psvals.height,
3135
1e-5, GIMP_MAX_IMAGE_SIZE, 1, 10, 0, 1, 2);
3342
1e-5, GIMP_MAX_IMAGE_SIZE, 1, 10, 0, 1, 2);
3136
3343
gimp_table_attach_aligned (GTK_TABLE (table), 0, 1,
3137
_("_Height:"), 0.0, 0.5,
3138
spinbutton, 1, FALSE);
3139
g_signal_connect (vals->adjustment[1], "value_changed",
3344
_("_Height:"), 0.0, 0.5,
3345
spinbutton, 1, FALSE);
3346
g_signal_connect (vals->adjustment[1], "value-changed",
3140
3347
G_CALLBACK (gimp_double_adjustment_update),
3141
3348
&psvals.height);
3143
3350
spinbutton = gimp_spin_button_new (&vals->adjustment[2], psvals.x_offset,
3144
0.0, GIMP_MAX_IMAGE_SIZE, 1, 10, 0, 1, 2);
3351
0.0, GIMP_MAX_IMAGE_SIZE, 1, 10, 0, 1, 2);
3145
3352
gimp_table_attach_aligned (GTK_TABLE (table), 0, 2,
3146
_("_X offset:"), 0.0, 0.5,
3147
spinbutton, 1, FALSE);
3148
g_signal_connect (vals->adjustment[2], "value_changed",
3353
_("_X offset:"), 0.0, 0.5,
3354
spinbutton, 1, FALSE);
3355
g_signal_connect (vals->adjustment[2], "value-changed",
3149
3356
G_CALLBACK (gimp_double_adjustment_update),
3150
3357
&psvals.x_offset);
3152
3359
spinbutton = gimp_spin_button_new (&vals->adjustment[3], psvals.y_offset,
3153
0.0, GIMP_MAX_IMAGE_SIZE, 1, 10, 0, 1, 2);
3360
0.0, GIMP_MAX_IMAGE_SIZE, 1, 10, 0, 1, 2);
3154
3361
gimp_table_attach_aligned (GTK_TABLE (table), 0, 3,
3155
_("_Y offset:"), 0.0, 0.5,
3156
spinbutton, 1, FALSE);
3157
g_signal_connect (vals->adjustment[3], "value_changed",
3362
_("_Y offset:"), 0.0, 0.5,
3363
spinbutton, 1, FALSE);
3364
g_signal_connect (vals->adjustment[3], "value-changed",
3158
3365
G_CALLBACK (gimp_double_adjustment_update),
3159
3366
&psvals.y_offset);