app/[all files with resolution info] libgimp/gimp.h libgimp/gimpimage.c

1999-05-22  Michael Natterer  <mitschel@cs.tu-berlin.de>

	* app/[all files with resolution info]
	* libgimp/gimp.h
	* libgimp/gimpimage.c
	* libgimp/gimpsizeentry.[ch]
	* libgimp/gimpunit.[ch]
	* plug-ins/newsprint/newsprint.c
	* plug-ins/pgn/png.c
	* plug-ins/tiff/tiff.c: double instead of float for all resolution
	and unit-factor variables.

	* app/commands.c
	* app/crop.c
	* app/interface.c
	* app/layers_dialog.c
	* app/move_tool.c
	* app/resize.c
	* app/rotate_tool.c
	* app/scale_tool.c: pass the image's unit *and* gdisp->dot_for_dot
	to all functions which create sizeentries. Never create a
	sizeentry with UNIT_PIXEL but with the image's unit and set it's
	unit to UNIT_PIXEL after creation if dot_for_dot is on.
	This way the image's unit can always be picked from the menu
	without selecting "More...".

	* app/interface.c: made the query_*_box() functions use the
	ActionArea.

	* plug-ins/gimpunitmenu.c: GTK_WIN_POS_MOUSE for the unit
	selection dialog.
This commit is contained in:
Michael Natterer 1999-05-22 17:56:35 +00:00 committed by Michael Natterer
parent c79272ac6a
commit dcfb450b25
102 changed files with 920 additions and 786 deletions

View File

@ -1,4 +1,37 @@
1999-05-22 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/[all files with resolution info]
* libgimp/gimp.h
* libgimp/gimpimage.c
* libgimp/gimpsizeentry.[ch]
* libgimp/gimpunit.[ch]
* plug-ins/newsprint/newsprint.c
* plug-ins/pgn/png.c
* plug-ins/tiff/tiff.c: double instead of float for all resolution
and unit-factor variables.
* app/commands.c
* app/crop.c
* app/interface.c
* app/layers_dialog.c
* app/move_tool.c
* app/resize.c
* app/rotate_tool.c
* app/scale_tool.c: pass the image's unit *and* gdisp->dot_for_dot
to all functions which create sizeentries. Never create a
sizeentry with UNIT_PIXEL but with the image's unit and set it's
unit to UNIT_PIXEL after creation if dot_for_dot is on.
This way the image's unit can always be picked from the menu
without selecting "More...".
* app/interface.c: made the query_*_box() functions use the
ActionArea.
* plug-ins/gimpunitmenu.c: GTK_WIN_POS_MOUSE for the unit
selection dialog.
Fri May 21 10:39:00 CST 1999 Seth Burgess <sjburges@gimp.org> Fri May 21 10:39:00 CST 1999 Seth Burgess <sjburges@gimp.org>
* app/gimprc.c * app/gimprc.c
* app/gimprc.h * app/gimprc.h
* app/gimprc_cmds.c : wrapped up value_to_str and added it to * app/gimprc_cmds.c : wrapped up value_to_str and added it to

View File

@ -365,9 +365,10 @@ select_border_cmd_callback (GtkWidget *widget,
query_size_box (_("Border Selection"), _("Border selection by:"), query_size_box (_("Border Selection"), _("Border selection by:"),
selection_border_radius, 1, 32767, 0, selection_border_radius, 1, 32767, 0,
gdisp->dot_for_dot ? UNIT_PIXEL : gdisp->gimage->unit, gdisp->gimage->unit,
MIN (gdisp->gimage->xresolution, MIN (gdisp->gimage->xresolution,
gdisp->gimage->yresolution), gdisp->gimage->yresolution),
gdisp->dot_for_dot,
GTK_OBJECT (gdisp->gimage), "destroy", GTK_OBJECT (gdisp->gimage), "destroy",
gimage_mask_border_callback, gdisp->gimage); gimage_mask_border_callback, gdisp->gimage);
} }
@ -382,9 +383,10 @@ select_feather_cmd_callback (GtkWidget *widget,
query_size_box (_("Feather Selection"), _("Feather selection by:"), query_size_box (_("Feather Selection"), _("Feather selection by:"),
selection_feather_radius, 0, 32767, 3, selection_feather_radius, 0, 32767, 3,
gdisp->dot_for_dot ? UNIT_PIXEL : gdisp->gimage->unit, gdisp->gimage->unit,
MIN (gdisp->gimage->xresolution, MIN (gdisp->gimage->xresolution,
gdisp->gimage->yresolution), gdisp->gimage->yresolution),
gdisp->dot_for_dot,
GTK_OBJECT (gdisp->gimage), "destroy", GTK_OBJECT (gdisp->gimage), "destroy",
gimage_mask_feather_callback, gdisp->gimage); gimage_mask_feather_callback, gdisp->gimage);
} }
@ -399,9 +401,10 @@ select_grow_cmd_callback (GtkWidget *widget,
query_size_box (_("Grow Selection"), _("Grow selection by:"), query_size_box (_("Grow Selection"), _("Grow selection by:"),
selection_grow_pixels, 1, 32767, 0, selection_grow_pixels, 1, 32767, 0,
gdisp->dot_for_dot ? UNIT_PIXEL : gdisp->gimage->unit, gdisp->gimage->unit,
MIN (gdisp->gimage->xresolution, MIN (gdisp->gimage->xresolution,
gdisp->gimage->yresolution), gdisp->gimage->yresolution),
gdisp->dot_for_dot,
GTK_OBJECT (gdisp->gimage), "destroy", GTK_OBJECT (gdisp->gimage), "destroy",
gimage_mask_grow_callback, gdisp->gimage); gimage_mask_grow_callback, gdisp->gimage);
} }
@ -416,9 +419,10 @@ select_shrink_cmd_callback (GtkWidget *widget,
query_size_box (_("Shrink Selection"), _("Shrink selection by:"), query_size_box (_("Shrink Selection"), _("Shrink selection by:"),
selection_shrink_pixels, 1, 32767, 0, selection_shrink_pixels, 1, 32767, 0,
gdisp->dot_for_dot ? UNIT_PIXEL : gdisp->gimage->unit, gdisp->gimage->unit,
MIN (gdisp->gimage->xresolution, MIN (gdisp->gimage->xresolution,
gdisp->gimage->yresolution), gdisp->gimage->yresolution),
gdisp->dot_for_dot,
GTK_OBJECT (gdisp->gimage), "destroy", GTK_OBJECT (gdisp->gimage), "destroy",
gimage_mask_shrink_callback, gdisp->gimage); gimage_mask_shrink_callback, gdisp->gimage);
} }
@ -1211,7 +1215,7 @@ gimage_mask_feather_callback (GtkWidget *w,
double radius_x; double radius_x;
double radius_y; double radius_y;
selection_feather_radius = *(float*) call_data; selection_feather_radius = *(double*) call_data;
g_free (call_data); g_free (call_data);
unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit"); unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit");
@ -1245,7 +1249,7 @@ gimage_mask_border_callback (GtkWidget *w,
double radius_x; double radius_x;
double radius_y; double radius_y;
selection_border_radius = (int) *(float*) call_data; selection_border_radius = (int) *(double*) call_data;
g_free (call_data); g_free (call_data);
unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit"); unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit");
@ -1279,7 +1283,7 @@ gimage_mask_grow_callback (GtkWidget *w,
double radius_x; double radius_x;
double radius_y; double radius_y;
selection_grow_pixels = (int) *(float*) call_data; selection_grow_pixels = (int) *(double*) call_data;
g_free (call_data); g_free (call_data);
unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit"); unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit");
@ -1313,7 +1317,7 @@ gimage_mask_shrink_callback (GtkWidget *w,
int radius_x; int radius_x;
int radius_y; int radius_y;
selection_shrink_pixels = (int) *(float*) call_data; selection_shrink_pixels = (int) *(double*) call_data;
g_free (call_data); g_free (call_data);
unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit"); unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit");

View File

@ -87,6 +87,7 @@
#include "color_select.h" #include "color_select.h"
#include "gimpparasite.h" #include "gimpparasite.h"
#include "libgimp/gimplimits.h"
#include "libgimp/gimpintl.h" #include "libgimp/gimpintl.h"
#define LOGO_WIDTH_MIN 300 #define LOGO_WIDTH_MIN 300
@ -497,13 +498,10 @@ app_init (void)
restore_session = TRUE; restore_session = TRUE;
/* make sure the monitor resolution is valid */ /* make sure the monitor resolution is valid */
if (monitor_xres < 1e-5 || monitor_yres < 1e-5) if (monitor_xres < GIMP_MIN_RESOLUTION ||
monitor_yres < GIMP_MIN_RESOLUTION)
{ {
gfloat xres, yres; gdisplay_xserver_resolution (&monitor_xres, &monitor_yres);
gdisplay_xserver_resolution (&xres, &yres);
monitor_xres = xres;
monitor_yres = yres;
using_xserver_resolution = TRUE; using_xserver_resolution = TRUE;
} }

View File

@ -643,7 +643,7 @@ blend_motion (Tool *tool,
} }
else /* show real world units */ else /* show real world units */
{ {
float unit_factor = gimp_unit_get_factor (gdisp->gimage->unit); gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
g_snprintf (vector, STATUSBAR_SIZE, gdisp->cursor_format_str, g_snprintf (vector, STATUSBAR_SIZE, gdisp->cursor_format_str,
_("Blend: "), _("Blend: "),

View File

@ -365,9 +365,10 @@ select_border_cmd_callback (GtkWidget *widget,
query_size_box (_("Border Selection"), _("Border selection by:"), query_size_box (_("Border Selection"), _("Border selection by:"),
selection_border_radius, 1, 32767, 0, selection_border_radius, 1, 32767, 0,
gdisp->dot_for_dot ? UNIT_PIXEL : gdisp->gimage->unit, gdisp->gimage->unit,
MIN (gdisp->gimage->xresolution, MIN (gdisp->gimage->xresolution,
gdisp->gimage->yresolution), gdisp->gimage->yresolution),
gdisp->dot_for_dot,
GTK_OBJECT (gdisp->gimage), "destroy", GTK_OBJECT (gdisp->gimage), "destroy",
gimage_mask_border_callback, gdisp->gimage); gimage_mask_border_callback, gdisp->gimage);
} }
@ -382,9 +383,10 @@ select_feather_cmd_callback (GtkWidget *widget,
query_size_box (_("Feather Selection"), _("Feather selection by:"), query_size_box (_("Feather Selection"), _("Feather selection by:"),
selection_feather_radius, 0, 32767, 3, selection_feather_radius, 0, 32767, 3,
gdisp->dot_for_dot ? UNIT_PIXEL : gdisp->gimage->unit, gdisp->gimage->unit,
MIN (gdisp->gimage->xresolution, MIN (gdisp->gimage->xresolution,
gdisp->gimage->yresolution), gdisp->gimage->yresolution),
gdisp->dot_for_dot,
GTK_OBJECT (gdisp->gimage), "destroy", GTK_OBJECT (gdisp->gimage), "destroy",
gimage_mask_feather_callback, gdisp->gimage); gimage_mask_feather_callback, gdisp->gimage);
} }
@ -399,9 +401,10 @@ select_grow_cmd_callback (GtkWidget *widget,
query_size_box (_("Grow Selection"), _("Grow selection by:"), query_size_box (_("Grow Selection"), _("Grow selection by:"),
selection_grow_pixels, 1, 32767, 0, selection_grow_pixels, 1, 32767, 0,
gdisp->dot_for_dot ? UNIT_PIXEL : gdisp->gimage->unit, gdisp->gimage->unit,
MIN (gdisp->gimage->xresolution, MIN (gdisp->gimage->xresolution,
gdisp->gimage->yresolution), gdisp->gimage->yresolution),
gdisp->dot_for_dot,
GTK_OBJECT (gdisp->gimage), "destroy", GTK_OBJECT (gdisp->gimage), "destroy",
gimage_mask_grow_callback, gdisp->gimage); gimage_mask_grow_callback, gdisp->gimage);
} }
@ -416,9 +419,10 @@ select_shrink_cmd_callback (GtkWidget *widget,
query_size_box (_("Shrink Selection"), _("Shrink selection by:"), query_size_box (_("Shrink Selection"), _("Shrink selection by:"),
selection_shrink_pixels, 1, 32767, 0, selection_shrink_pixels, 1, 32767, 0,
gdisp->dot_for_dot ? UNIT_PIXEL : gdisp->gimage->unit, gdisp->gimage->unit,
MIN (gdisp->gimage->xresolution, MIN (gdisp->gimage->xresolution,
gdisp->gimage->yresolution), gdisp->gimage->yresolution),
gdisp->dot_for_dot,
GTK_OBJECT (gdisp->gimage), "destroy", GTK_OBJECT (gdisp->gimage), "destroy",
gimage_mask_shrink_callback, gdisp->gimage); gimage_mask_shrink_callback, gdisp->gimage);
} }
@ -1211,7 +1215,7 @@ gimage_mask_feather_callback (GtkWidget *w,
double radius_x; double radius_x;
double radius_y; double radius_y;
selection_feather_radius = *(float*) call_data; selection_feather_radius = *(double*) call_data;
g_free (call_data); g_free (call_data);
unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit"); unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit");
@ -1245,7 +1249,7 @@ gimage_mask_border_callback (GtkWidget *w,
double radius_x; double radius_x;
double radius_y; double radius_y;
selection_border_radius = (int) *(float*) call_data; selection_border_radius = (int) *(double*) call_data;
g_free (call_data); g_free (call_data);
unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit"); unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit");
@ -1279,7 +1283,7 @@ gimage_mask_grow_callback (GtkWidget *w,
double radius_x; double radius_x;
double radius_y; double radius_y;
selection_grow_pixels = (int) *(float*) call_data; selection_grow_pixels = (int) *(double*) call_data;
g_free (call_data); g_free (call_data);
unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit"); unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit");
@ -1313,7 +1317,7 @@ gimage_mask_shrink_callback (GtkWidget *w,
int radius_x; int radius_x;
int radius_y; int radius_y;
selection_shrink_pixels = (int) *(float*) call_data; selection_shrink_pixels = (int) *(double*) call_data;
g_free (call_data); g_free (call_data);
unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit"); unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit");

View File

@ -643,7 +643,7 @@ blend_motion (Tool *tool,
} }
else /* show real world units */ else /* show real world units */
{ {
float unit_factor = gimp_unit_get_factor (gdisp->gimage->unit); gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
g_snprintf (vector, STATUSBAR_SIZE, gdisp->cursor_format_str, g_snprintf (vector, STATUSBAR_SIZE, gdisp->cursor_format_str,
_("Blend: "), _("Blend: "),

View File

@ -319,8 +319,8 @@ gimp_image_set_filename (GimpImage *gimage, char *filename)
void void
gimp_image_set_resolution (GimpImage *gimage, gimp_image_set_resolution (GimpImage *gimage,
float xresolution, double xresolution,
float yresolution) double yresolution)
{ {
gimage->xresolution = xresolution; gimage->xresolution = xresolution;
gimage->yresolution = yresolution; gimage->yresolution = yresolution;
@ -328,8 +328,8 @@ gimp_image_set_resolution (GimpImage *gimage,
void void
gimp_image_get_resolution (GimpImage *gimage, gimp_image_get_resolution (GimpImage *gimage,
float *xresolution, double *xresolution,
float *yresolution) double *yresolution)
{ {
g_return_if_fail(xresolution && yresolution); g_return_if_fail(xresolution && yresolution);
*xresolution = gimage->xresolution; *xresolution = gimage->xresolution;

View File

@ -108,10 +108,11 @@ GtkType gimp_image_get_type(void);
GimpImage * gimp_image_new (int, int, int); GimpImage * gimp_image_new (int, int, int);
void gimp_image_set_filename (GimpImage *, char *); void gimp_image_set_filename (GimpImage *, char *);
void gimp_image_set_resolution (GimpImage *, float, float); void gimp_image_set_resolution (GimpImage *,
double, double);
void gimp_image_get_resolution (GimpImage *, void gimp_image_get_resolution (GimpImage *,
float *, double *,
float *); double *);
void gimp_image_set_unit (GimpImage *, GUnit); void gimp_image_set_unit (GimpImage *, GUnit);
GUnit gimp_image_get_unit (GimpImage *); GUnit gimp_image_get_unit (GimpImage *);
void gimp_image_set_save_proc (GimpImage *, PlugInProcDef *); void gimp_image_set_save_proc (GimpImage *, PlugInProcDef *);

View File

@ -319,8 +319,8 @@ gimp_image_set_filename (GimpImage *gimage, char *filename)
void void
gimp_image_set_resolution (GimpImage *gimage, gimp_image_set_resolution (GimpImage *gimage,
float xresolution, double xresolution,
float yresolution) double yresolution)
{ {
gimage->xresolution = xresolution; gimage->xresolution = xresolution;
gimage->yresolution = yresolution; gimage->yresolution = yresolution;
@ -328,8 +328,8 @@ gimp_image_set_resolution (GimpImage *gimage,
void void
gimp_image_get_resolution (GimpImage *gimage, gimp_image_get_resolution (GimpImage *gimage,
float *xresolution, double *xresolution,
float *yresolution) double *yresolution)
{ {
g_return_if_fail(xresolution && yresolution); g_return_if_fail(xresolution && yresolution);
*xresolution = gimage->xresolution; *xresolution = gimage->xresolution;

View File

@ -108,10 +108,11 @@ GtkType gimp_image_get_type(void);
GimpImage * gimp_image_new (int, int, int); GimpImage * gimp_image_new (int, int, int);
void gimp_image_set_filename (GimpImage *, char *); void gimp_image_set_filename (GimpImage *, char *);
void gimp_image_set_resolution (GimpImage *, float, float); void gimp_image_set_resolution (GimpImage *,
double, double);
void gimp_image_get_resolution (GimpImage *, void gimp_image_get_resolution (GimpImage *,
float *, double *,
float *); double *);
void gimp_image_set_unit (GimpImage *, GUnit); void gimp_image_set_unit (GimpImage *, GUnit);
GUnit gimp_image_get_unit (GimpImage *); GUnit gimp_image_get_unit (GimpImage *);
void gimp_image_set_save_proc (GimpImage *, PlugInProcDef *); void gimp_image_set_save_proc (GimpImage *, PlugInProcDef *);

View File

@ -319,8 +319,8 @@ gimp_image_set_filename (GimpImage *gimage, char *filename)
void void
gimp_image_set_resolution (GimpImage *gimage, gimp_image_set_resolution (GimpImage *gimage,
float xresolution, double xresolution,
float yresolution) double yresolution)
{ {
gimage->xresolution = xresolution; gimage->xresolution = xresolution;
gimage->yresolution = yresolution; gimage->yresolution = yresolution;
@ -328,8 +328,8 @@ gimp_image_set_resolution (GimpImage *gimage,
void void
gimp_image_get_resolution (GimpImage *gimage, gimp_image_get_resolution (GimpImage *gimage,
float *xresolution, double *xresolution,
float *yresolution) double *yresolution)
{ {
g_return_if_fail(xresolution && yresolution); g_return_if_fail(xresolution && yresolution);
*xresolution = gimage->xresolution; *xresolution = gimage->xresolution;

View File

@ -108,10 +108,11 @@ GtkType gimp_image_get_type(void);
GimpImage * gimp_image_new (int, int, int); GimpImage * gimp_image_new (int, int, int);
void gimp_image_set_filename (GimpImage *, char *); void gimp_image_set_filename (GimpImage *, char *);
void gimp_image_set_resolution (GimpImage *, float, float); void gimp_image_set_resolution (GimpImage *,
double, double);
void gimp_image_get_resolution (GimpImage *, void gimp_image_get_resolution (GimpImage *,
float *, double *,
float *); double *);
void gimp_image_set_unit (GimpImage *, GUnit); void gimp_image_set_unit (GimpImage *, GUnit);
GUnit gimp_image_get_unit (GimpImage *); GUnit gimp_image_get_unit (GimpImage *);
void gimp_image_set_save_proc (GimpImage *, PlugInProcDef *); void gimp_image_set_save_proc (GimpImage *, PlugInProcDef *);

View File

@ -319,8 +319,8 @@ gimp_image_set_filename (GimpImage *gimage, char *filename)
void void
gimp_image_set_resolution (GimpImage *gimage, gimp_image_set_resolution (GimpImage *gimage,
float xresolution, double xresolution,
float yresolution) double yresolution)
{ {
gimage->xresolution = xresolution; gimage->xresolution = xresolution;
gimage->yresolution = yresolution; gimage->yresolution = yresolution;
@ -328,8 +328,8 @@ gimp_image_set_resolution (GimpImage *gimage,
void void
gimp_image_get_resolution (GimpImage *gimage, gimp_image_get_resolution (GimpImage *gimage,
float *xresolution, double *xresolution,
float *yresolution) double *yresolution)
{ {
g_return_if_fail(xresolution && yresolution); g_return_if_fail(xresolution && yresolution);
*xresolution = gimage->xresolution; *xresolution = gimage->xresolution;

View File

@ -108,10 +108,11 @@ GtkType gimp_image_get_type(void);
GimpImage * gimp_image_new (int, int, int); GimpImage * gimp_image_new (int, int, int);
void gimp_image_set_filename (GimpImage *, char *); void gimp_image_set_filename (GimpImage *, char *);
void gimp_image_set_resolution (GimpImage *, float, float); void gimp_image_set_resolution (GimpImage *,
double, double);
void gimp_image_get_resolution (GimpImage *, void gimp_image_get_resolution (GimpImage *,
float *, double *,
float *); double *);
void gimp_image_set_unit (GimpImage *, GUnit); void gimp_image_set_unit (GimpImage *, GUnit);
GUnit gimp_image_get_unit (GimpImage *); GUnit gimp_image_get_unit (GimpImage *);
void gimp_image_set_save_proc (GimpImage *, PlugInProcDef *); void gimp_image_set_save_proc (GimpImage *, PlugInProcDef *);

View File

@ -319,8 +319,8 @@ gimp_image_set_filename (GimpImage *gimage, char *filename)
void void
gimp_image_set_resolution (GimpImage *gimage, gimp_image_set_resolution (GimpImage *gimage,
float xresolution, double xresolution,
float yresolution) double yresolution)
{ {
gimage->xresolution = xresolution; gimage->xresolution = xresolution;
gimage->yresolution = yresolution; gimage->yresolution = yresolution;
@ -328,8 +328,8 @@ gimp_image_set_resolution (GimpImage *gimage,
void void
gimp_image_get_resolution (GimpImage *gimage, gimp_image_get_resolution (GimpImage *gimage,
float *xresolution, double *xresolution,
float *yresolution) double *yresolution)
{ {
g_return_if_fail(xresolution && yresolution); g_return_if_fail(xresolution && yresolution);
*xresolution = gimage->xresolution; *xresolution = gimage->xresolution;

View File

@ -108,10 +108,11 @@ GtkType gimp_image_get_type(void);
GimpImage * gimp_image_new (int, int, int); GimpImage * gimp_image_new (int, int, int);
void gimp_image_set_filename (GimpImage *, char *); void gimp_image_set_filename (GimpImage *, char *);
void gimp_image_set_resolution (GimpImage *, float, float); void gimp_image_set_resolution (GimpImage *,
double, double);
void gimp_image_get_resolution (GimpImage *, void gimp_image_get_resolution (GimpImage *,
float *, double *,
float *); double *);
void gimp_image_set_unit (GimpImage *, GUnit); void gimp_image_set_unit (GimpImage *, GUnit);
GUnit gimp_image_get_unit (GimpImage *); GUnit gimp_image_get_unit (GimpImage *);
void gimp_image_set_save_proc (GimpImage *, PlugInProcDef *); void gimp_image_set_save_proc (GimpImage *, PlugInProcDef *);

View File

@ -319,8 +319,8 @@ gimp_image_set_filename (GimpImage *gimage, char *filename)
void void
gimp_image_set_resolution (GimpImage *gimage, gimp_image_set_resolution (GimpImage *gimage,
float xresolution, double xresolution,
float yresolution) double yresolution)
{ {
gimage->xresolution = xresolution; gimage->xresolution = xresolution;
gimage->yresolution = yresolution; gimage->yresolution = yresolution;
@ -328,8 +328,8 @@ gimp_image_set_resolution (GimpImage *gimage,
void void
gimp_image_get_resolution (GimpImage *gimage, gimp_image_get_resolution (GimpImage *gimage,
float *xresolution, double *xresolution,
float *yresolution) double *yresolution)
{ {
g_return_if_fail(xresolution && yresolution); g_return_if_fail(xresolution && yresolution);
*xresolution = gimage->xresolution; *xresolution = gimage->xresolution;

View File

@ -108,10 +108,11 @@ GtkType gimp_image_get_type(void);
GimpImage * gimp_image_new (int, int, int); GimpImage * gimp_image_new (int, int, int);
void gimp_image_set_filename (GimpImage *, char *); void gimp_image_set_filename (GimpImage *, char *);
void gimp_image_set_resolution (GimpImage *, float, float); void gimp_image_set_resolution (GimpImage *,
double, double);
void gimp_image_get_resolution (GimpImage *, void gimp_image_get_resolution (GimpImage *,
float *, double *,
float *); double *);
void gimp_image_set_unit (GimpImage *, GUnit); void gimp_image_set_unit (GimpImage *, GUnit);
GUnit gimp_image_get_unit (GimpImage *); GUnit gimp_image_get_unit (GimpImage *);
void gimp_image_set_save_proc (GimpImage *, PlugInProcDef *); void gimp_image_set_save_proc (GimpImage *, PlugInProcDef *);

View File

@ -319,8 +319,8 @@ gimp_image_set_filename (GimpImage *gimage, char *filename)
void void
gimp_image_set_resolution (GimpImage *gimage, gimp_image_set_resolution (GimpImage *gimage,
float xresolution, double xresolution,
float yresolution) double yresolution)
{ {
gimage->xresolution = xresolution; gimage->xresolution = xresolution;
gimage->yresolution = yresolution; gimage->yresolution = yresolution;
@ -328,8 +328,8 @@ gimp_image_set_resolution (GimpImage *gimage,
void void
gimp_image_get_resolution (GimpImage *gimage, gimp_image_get_resolution (GimpImage *gimage,
float *xresolution, double *xresolution,
float *yresolution) double *yresolution)
{ {
g_return_if_fail(xresolution && yresolution); g_return_if_fail(xresolution && yresolution);
*xresolution = gimage->xresolution; *xresolution = gimage->xresolution;

View File

@ -108,10 +108,11 @@ GtkType gimp_image_get_type(void);
GimpImage * gimp_image_new (int, int, int); GimpImage * gimp_image_new (int, int, int);
void gimp_image_set_filename (GimpImage *, char *); void gimp_image_set_filename (GimpImage *, char *);
void gimp_image_set_resolution (GimpImage *, float, float); void gimp_image_set_resolution (GimpImage *,
double, double);
void gimp_image_get_resolution (GimpImage *, void gimp_image_get_resolution (GimpImage *,
float *, double *,
float *); double *);
void gimp_image_set_unit (GimpImage *, GUnit); void gimp_image_set_unit (GimpImage *, GUnit);
GUnit gimp_image_get_unit (GimpImage *); GUnit gimp_image_get_unit (GimpImage *);
void gimp_image_set_save_proc (GimpImage *, PlugInProcDef *); void gimp_image_set_save_proc (GimpImage *, PlugInProcDef *);

View File

@ -1024,14 +1024,14 @@ gdisplay_update_cursor (GDisplay *gdisp, int x, int y)
} }
else /* show real world units */ else /* show real world units */
{ {
float unit_factor = gimp_unit_get_factor (gdisp->gimage->unit); double unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
g_snprintf (buffer, CURSOR_STR_LENGTH, g_snprintf
gdisp->cursor_format_str, (buffer, CURSOR_STR_LENGTH, gdisp->cursor_format_str,
"", "",
(float)t_x * unit_factor / gdisp->gimage->xresolution, (double) t_x * unit_factor / gdisp->gimage->xresolution,
", ", ", ",
(float)t_y * unit_factor / gdisp->gimage->yresolution); (double) t_y * unit_factor / gdisp->gimage->yresolution);
} }
gtk_label_set (GTK_LABEL (gdisp->cursor_label), buffer); gtk_label_set (GTK_LABEL (gdisp->cursor_label), buffer);
} }
@ -1076,7 +1076,7 @@ gdisplay_resize_cursor_label (GDisplay *gdisp)
} }
else /* show real world units */ else /* show real world units */
{ {
float unit_factor = gimp_unit_get_factor (gdisp->gimage->unit); gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
g_snprintf (gdisp->cursor_format_str, sizeof(gdisp->cursor_format_str), g_snprintf (gdisp->cursor_format_str, sizeof(gdisp->cursor_format_str),
"%%s%%.%df%%s%%.%df %s", "%%s%%.%df%%s%%.%df %s",
@ -1086,14 +1086,14 @@ gdisplay_resize_cursor_label (GDisplay *gdisp)
g_snprintf (buffer, sizeof(buffer), gdisp->cursor_format_str, g_snprintf (buffer, sizeof(buffer), gdisp->cursor_format_str,
"", "",
(float)gdisp->gimage->width * unit_factor / (gdouble) gdisp->gimage->width * unit_factor /
gdisp->gimage->xresolution, gdisp->gimage->xresolution,
", ", ", ",
(float)gdisp->gimage->height * unit_factor / (gdouble) gdisp->gimage->height * unit_factor /
gdisp->gimage->yresolution); gdisp->gimage->yresolution);
} }
cursor_label_width = cursor_label_width =
gdk_string_width ( gtk_widget_get_style(gdisp->cursor_label)->font, buffer ); gdk_string_width (gtk_widget_get_style (gdisp->cursor_label)->font, buffer);
/* find out how many pixels the label's parent frame is bigger than /* find out how many pixels the label's parent frame is bigger than
* the label itself */ * the label itself */

View File

@ -35,11 +35,11 @@
#define SCALESRC(g) (g->scale & 0x00ff) #define SCALESRC(g) (g->scale & 0x00ff)
#define SCALEDEST(g) (g->scale >> 8) #define SCALEDEST(g) (g->scale >> 8)
/* finding the effective screen resolution (float) */ /* finding the effective screen resolution (double) */
#define SCREEN_XRES(g) (g->dot_for_dot? g->gimage->xresolution : monitor_xres) #define SCREEN_XRES(g) (g->dot_for_dot? g->gimage->xresolution : monitor_xres)
#define SCREEN_YRES(g) (g->dot_for_dot? g->gimage->yresolution : monitor_yres) #define SCREEN_YRES(g) (g->dot_for_dot? g->gimage->yresolution : monitor_yres)
/* calculate scale factors (float) */ /* calculate scale factors (double) */
#define SCALEFACTOR_X(g) ((SCALEDEST(g) * SCREEN_XRES(g)) / \ #define SCALEFACTOR_X(g) ((SCALEDEST(g) * SCREEN_XRES(g)) / \
(SCALESRC(g) * g->gimage->xresolution)) (SCALESRC(g) * g->gimage->xresolution))
#define SCALEFACTOR_Y(g) ((SCALEDEST(g) * SCREEN_YRES(g)) / \ #define SCALEFACTOR_Y(g) ((SCALEDEST(g) * SCREEN_YRES(g)) / \

View File

@ -40,7 +40,7 @@
typedef struct { typedef struct {
guint delete_on_exit; guint delete_on_exit;
float factor; gdouble factor;
gint digits; gint digits;
gchar *identifier; gchar *identifier;
gchar *symbol; gchar *symbol;
@ -100,13 +100,13 @@ gimp_unit_get_number_of_built_in_units (void)
GUnit GUnit
gimp_unit_new (gchar *identifier, gimp_unit_new (gchar *identifier,
gfloat factor, gdouble factor,
gint digits, gint digits,
gchar *symbol, gchar *symbol,
gchar *abbreviation, gchar *abbreviation,
gchar *singular, gchar *singular,
gchar *plural) gchar *plural)
{ {
GimpUnitDef *user_unit; GimpUnitDef *user_unit;
@ -151,7 +151,7 @@ gimp_unit_set_deletion_flag (GUnit unit,
} }
gfloat gdouble
gimp_unit_get_factor (GUnit unit) gimp_unit_get_factor (GUnit unit)
{ {
g_return_val_if_fail ( (unit >= UNIT_PIXEL) && g_return_val_if_fail ( (unit >= UNIT_PIXEL) &&

View File

@ -502,14 +502,14 @@ crop_motion (Tool *tool,
} }
else /* show real world units */ else /* show real world units */
{ {
float unit_factor = gimp_unit_get_factor (gdisp->gimage->unit); gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
g_snprintf (size, STATUSBAR_SIZE, gdisp->cursor_format_str, g_snprintf (size, STATUSBAR_SIZE, gdisp->cursor_format_str,
_("Crop: "), _("Crop: "),
(float)(crop->tx2 - crop->tx1) * unit_factor / (gdouble) (crop->tx2 - crop->tx1) * unit_factor /
gdisp->gimage->xresolution, gdisp->gimage->xresolution,
" x ", " x ",
(float)(crop->ty2 - crop->ty1) * unit_factor / (gdouble) (crop->ty2 - crop->ty1) * unit_factor /
gdisp->gimage->yresolution); gdisp->gimage->yresolution);
} }
gtk_statusbar_push (GTK_STATUSBAR (gdisp->statusbar), crop->context_id, gtk_statusbar_push (GTK_STATUSBAR (gdisp->statusbar), crop->context_id,

View File

@ -295,8 +295,9 @@ file_new_confirm_dialog (NewImageValues *vals)
vals->confirm_dlg = gtk_dialog_new (); vals->confirm_dlg = gtk_dialog_new ();
gtk_window_set_wmclass (GTK_WINDOW (vals->confirm_dlg), gtk_window_set_wmclass (GTK_WINDOW (vals->confirm_dlg),
"really_create", "Gimp"); "confirm_size", "Gimp");
gtk_window_set_title (GTK_WINDOW (vals->confirm_dlg), _("Confirm Image Size")); gtk_window_set_title (GTK_WINDOW (vals->confirm_dlg), _("Confirm Image Size"));
gtk_window_set_policy (GTK_WINDOW (vals->confirm_dlg), FALSE, FALSE, FALSE);
gtk_window_position (GTK_WINDOW (vals->confirm_dlg), GTK_WIN_POS_MOUSE); gtk_window_position (GTK_WINDOW (vals->confirm_dlg), GTK_WIN_POS_MOUSE);
/* Handle the wm close signal */ /* Handle the wm close signal */
@ -480,7 +481,6 @@ file_new_cmd_callback (GtkWidget *widget,
N_("RGB"), N_("RGB"),
N_("Grayscale") N_("Grayscale")
}; };
static gchar *fill_type_names[] = static gchar *fill_type_names[] =
{ {
N_("Foreground"), N_("Foreground"),

View File

@ -200,7 +200,7 @@ info_window_update (InfoDialog *info_win,
GDisplay *gdisp; GDisplay *gdisp;
InfoWinData *iwd; InfoWinData *iwd;
int type; int type;
gfloat unit_factor; gdouble unit_factor;
gint unit_digits; gint unit_digits;
gchar format_buf[32]; gchar format_buf[32];

View File

@ -33,6 +33,7 @@
#include "libgimp/gimpfileselection.h" #include "libgimp/gimpfileselection.h"
#include "libgimp/gimppatheditor.h" #include "libgimp/gimppatheditor.h"
#include "libgimp/gimpsizeentry.h" #include "libgimp/gimpsizeentry.h"
#include "libgimp/gimplimits.h"
#include "libgimp/gimpintl.h" #include "libgimp/gimpintl.h"
/* preferences local functions */ /* preferences local functions */
@ -245,7 +246,8 @@ file_prefs_ok_callback (GtkWidget *widget,
default_units = old_default_units; default_units = old_default_units;
return; return;
} }
if (default_xresolution < 1e-5 || default_yresolution < 1e-5) if (default_xresolution < GIMP_MIN_RESOLUTION ||
default_yresolution < GIMP_MIN_RESOLUTION)
{ {
g_message (_("Error: default resolution must not be zero.")); g_message (_("Error: default resolution must not be zero."));
default_xresolution = old_default_xresolution; default_xresolution = old_default_xresolution;
@ -259,7 +261,8 @@ file_prefs_ok_callback (GtkWidget *widget,
default_resolution_units = old_default_resolution_units; default_resolution_units = old_default_resolution_units;
return; return;
} }
if (monitor_xres < 1e-5 || monitor_yres < 1e-5) if (monitor_xres < GIMP_MIN_RESOLUTION ||
monitor_yres < GIMP_MIN_RESOLUTION)
{ {
g_message (_("Error: Monitor resolution must not be zero.")); g_message (_("Error: Monitor resolution must not be zero."));
monitor_xres = old_monitor_xres; monitor_xres = old_monitor_xres;
@ -388,9 +391,9 @@ file_prefs_save_callback (GtkWidget *widget,
update = g_list_append (update, "default-image-size"); update = g_list_append (update, "default-image-size");
if (default_units != old_default_units) if (default_units != old_default_units)
update = g_list_append (update, "default-units"); update = g_list_append (update, "default-units");
if (ABS(default_xresolution - old_default_xresolution) > 1e-5) if (ABS(default_xresolution - old_default_xresolution) > GIMP_MIN_RESOLUTION)
update = g_list_append (update, "default-xresolution"); update = g_list_append (update, "default-xresolution");
if (ABS(default_yresolution - old_default_yresolution) > 1e-5) if (ABS(default_yresolution - old_default_yresolution) > GIMP_MIN_RESOLUTION)
update = g_list_append (update, "default-yresolution"); update = g_list_append (update, "default-yresolution");
if (default_resolution_units != old_default_resolution_units) if (default_resolution_units != old_default_resolution_units)
update = g_list_append (update, "default-resolution-units"); update = g_list_append (update, "default-resolution-units");
@ -405,10 +408,10 @@ file_prefs_save_callback (GtkWidget *widget,
if (transparency_size != old_transparency_size) if (transparency_size != old_transparency_size)
update = g_list_append (update, "transparency-size"); update = g_list_append (update, "transparency-size");
if (using_xserver_resolution != old_using_xserver_resolution || if (using_xserver_resolution != old_using_xserver_resolution ||
ABS(monitor_xres - old_monitor_xres) > 1e-5) ABS(monitor_xres - old_monitor_xres) > GIMP_MIN_RESOLUTION)
update = g_list_append (update, "monitor-xresolution"); update = g_list_append (update, "monitor-xresolution");
if (using_xserver_resolution != old_using_xserver_resolution || if (using_xserver_resolution != old_using_xserver_resolution ||
ABS(monitor_yres - old_monitor_yres) > 1e-5) ABS(monitor_yres - old_monitor_yres) > GIMP_MIN_RESOLUTION)
update = g_list_append (update, "monitor-yresolution"); update = g_list_append (update, "monitor-yresolution");
if (edit_num_processors != num_processors) if (edit_num_processors != num_processors)
update = g_list_append (update, "num-processors"); update = g_list_append (update, "num-processors");
@ -510,13 +513,7 @@ file_prefs_save_callback (GtkWidget *widget,
save_gimprc (&update, &remove); save_gimprc (&update, &remove);
if (using_xserver_resolution) if (using_xserver_resolution)
{ gdisplay_xserver_resolution (&monitor_xres, &monitor_yres);
gfloat xres, yres;
gdisplay_xserver_resolution (&xres, &yres);
monitor_xres = xres;
monitor_yres = yres;
}
/* Restore variables which must not change */ /* Restore variables which must not change */
stingy_memory_use = save_stingy_memory_use; stingy_memory_use = save_stingy_memory_use;
@ -863,21 +860,17 @@ file_prefs_res_source_callback (GtkWidget *widget,
if (GTK_TOGGLE_BUTTON (widget)->active) if (GTK_TOGGLE_BUTTON (widget)->active)
{ {
gfloat xres, yres; gdisplay_xserver_resolution (&monitor_xres, &monitor_yres);
gdisplay_xserver_resolution (&xres, &yres);
monitor_xres = xres;
monitor_yres = yres;
using_xserver_resolution = TRUE; using_xserver_resolution = TRUE;
} }
else else
{ {
if (monitor_resolution_sizeentry) if (monitor_resolution_sizeentry)
{ {
monitor_xres = monitor_xres = gimp_size_entry_get_refval
gimp_size_entry_get_refval (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), 0); (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), 0);
monitor_yres = monitor_yres = gimp_size_entry_get_refval
gimp_size_entry_get_refval (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), 1); (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), 1);
} }
using_xserver_resolution = FALSE; using_xserver_resolution = FALSE;
} }
@ -1535,9 +1528,11 @@ file_pref_cmd_callback (GtkWidget *widget,
gimp_size_entry_set_resolution (GIMP_SIZE_ENTRY (default_size_sizeentry), gimp_size_entry_set_resolution (GIMP_SIZE_ENTRY (default_size_sizeentry),
1, default_yresolution, FALSE); 1, default_yresolution, FALSE);
gimp_size_entry_set_refval_boundaries gimp_size_entry_set_refval_boundaries
(GIMP_SIZE_ENTRY (default_size_sizeentry), 0, 1, 32767); (GIMP_SIZE_ENTRY (default_size_sizeentry), 0,
GIMP_MIN_IMAGE_SIZE, GIMP_MAX_IMAGE_SIZE);
gimp_size_entry_set_refval_boundaries gimp_size_entry_set_refval_boundaries
(GIMP_SIZE_ENTRY (default_size_sizeentry), 1, 1, 32767); (GIMP_SIZE_ENTRY (default_size_sizeentry), 1,
GIMP_MIN_IMAGE_SIZE, GIMP_MAX_IMAGE_SIZE);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (default_size_sizeentry), 0, gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (default_size_sizeentry), 0,
default_width); default_width);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (default_size_sizeentry), 1, gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (default_size_sizeentry), 1,
@ -1572,9 +1567,11 @@ file_pref_cmd_callback (GtkWidget *widget,
FALSE, FALSE, TRUE, 75, FALSE, FALSE, TRUE, 75,
GIMP_SIZE_ENTRY_UPDATE_RESOLUTION); GIMP_SIZE_ENTRY_UPDATE_RESOLUTION);
gimp_size_entry_set_refval_boundaries gimp_size_entry_set_refval_boundaries
(GIMP_SIZE_ENTRY (default_resolution_sizeentry), 0, 1, 32767); (GIMP_SIZE_ENTRY (default_resolution_sizeentry), 0,
GIMP_MIN_RESOLUTION, GIMP_MAX_RESOLUTION);
gimp_size_entry_set_refval_boundaries gimp_size_entry_set_refval_boundaries
(GIMP_SIZE_ENTRY (default_resolution_sizeentry), 1, 1, 32767); (GIMP_SIZE_ENTRY (default_resolution_sizeentry), 1,
GIMP_MIN_RESOLUTION, GIMP_MAX_RESOLUTION);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (default_resolution_sizeentry), gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (default_resolution_sizeentry),
0, default_xresolution); 0, default_xresolution);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (default_resolution_sizeentry), gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (default_resolution_sizeentry),
@ -1603,7 +1600,7 @@ file_pref_cmd_callback (GtkWidget *widget,
gtk_table_attach_defaults (GTK_TABLE (default_resolution_sizeentry), gtk_table_attach_defaults (GTK_TABLE (default_resolution_sizeentry),
button, 1, 3, 3, 4); button, 1, 3, 3, 4);
if (ABS (default_xresolution - default_yresolution) < 1e-5) if (ABS (default_xresolution - default_yresolution) < GIMP_MIN_RESOLUTION)
gimp_chain_button_set_active (GIMP_CHAIN_BUTTON (button), TRUE); gimp_chain_button_set_active (GIMP_CHAIN_BUTTON (button), TRUE);
gtk_widget_show (button); gtk_widget_show (button);
@ -2205,7 +2202,7 @@ file_pref_cmd_callback (GtkWidget *widget,
gtk_widget_show (button); gtk_widget_show (button);
{ {
gfloat xres, yres; gdouble xres, yres;
gchar buf[80]; gchar buf[80];
gdisplay_xserver_resolution (&xres, &yres); gdisplay_xserver_resolution (&xres, &yres);
@ -2234,9 +2231,11 @@ file_pref_cmd_callback (GtkWidget *widget,
gimp_size_entry_new (2, UNIT_INCH, "Pixels/%s", FALSE, FALSE, TRUE, 75, gimp_size_entry_new (2, UNIT_INCH, "Pixels/%s", FALSE, FALSE, TRUE, 75,
GIMP_SIZE_ENTRY_UPDATE_RESOLUTION); GIMP_SIZE_ENTRY_UPDATE_RESOLUTION);
gimp_size_entry_set_refval_boundaries gimp_size_entry_set_refval_boundaries
(GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), 0, 1, 32767); (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), 0,
GIMP_MIN_RESOLUTION, GIMP_MAX_RESOLUTION);
gimp_size_entry_set_refval_boundaries gimp_size_entry_set_refval_boundaries
(GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), 1, 1, 32767); (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), 1,
GIMP_MIN_RESOLUTION, GIMP_MAX_RESOLUTION);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry),
0, monitor_xres); 0, monitor_xres);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry),
@ -2258,7 +2257,7 @@ file_pref_cmd_callback (GtkWidget *widget,
gtk_container_add (GTK_CONTAINER (abox), monitor_resolution_sizeentry); gtk_container_add (GTK_CONTAINER (abox), monitor_resolution_sizeentry);
gtk_widget_show (monitor_resolution_sizeentry); gtk_widget_show (monitor_resolution_sizeentry);
if (ABS (monitor_xres - monitor_yres) < 1e-5) if (ABS (monitor_xres - monitor_yres) < GIMP_MIN_RESOLUTION)
gimp_chain_button_set_active (GIMP_CHAIN_BUTTON (button), TRUE); gimp_chain_button_set_active (GIMP_CHAIN_BUTTON (button), TRUE);
gtk_table_attach_defaults (GTK_TABLE (monitor_resolution_sizeentry), gtk_table_attach_defaults (GTK_TABLE (monitor_resolution_sizeentry),
button, 1, 3, 3, 4); button, 1, 3, 3, 4);

View File

@ -58,7 +58,7 @@ struct _ResizePrivate
double ratio; double ratio;
int old_width, old_height; int old_width, old_height;
int old_res_x, old_res_y; double old_res_x, old_res_y;
int area_width, area_height; int area_width, area_height;
int start_x, start_y; int start_x, start_y;
int orig_x, orig_y; int orig_x, orig_y;
@ -82,10 +82,10 @@ Resize *
resize_widget_new (ResizeType type, resize_widget_new (ResizeType type,
ResizeTarget target, ResizeTarget target,
GtkObject *object, GtkObject *object,
int width, gint width,
int height, gint height,
float resolution_x, gdouble resolution_x,
float resolution_y, gdouble resolution_y,
GUnit unit, GUnit unit,
gboolean dot_for_dot, gboolean dot_for_dot,
GtkSignalFunc ok_cb, GtkSignalFunc ok_cb,
@ -281,8 +281,7 @@ resize_widget_new (ResizeType type,
gtk_widget_set_usize (spinbutton, 75, 0); gtk_widget_set_usize (spinbutton, 75, 0);
private->size_se = private->size_se =
gimp_size_entry_new (1, dot_for_dot ? UNIT_PIXEL : unit, "%a", gimp_size_entry_new (1, unit, "%a", TRUE, TRUE, FALSE, 75,
TRUE, TRUE, FALSE, 75,
GIMP_SIZE_ENTRY_UPDATE_SIZE); GIMP_SIZE_ENTRY_UPDATE_SIZE);
gimp_size_entry_add_field (GIMP_SIZE_ENTRY (private->size_se), gimp_size_entry_add_field (GIMP_SIZE_ENTRY (private->size_se),
GTK_SPIN_BUTTON (spinbutton), NULL); GTK_SPIN_BUTTON (spinbutton), NULL);
@ -311,6 +310,9 @@ resize_widget_new (ResizeType type,
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (private->size_se), 0, width); gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (private->size_se), 0, width);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (private->size_se), 1, height); gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (private->size_se), 1, height);
if (dot_for_dot)
gimp_size_entry_set_unit (GIMP_SIZE_ENTRY (private->size_se), UNIT_PIXEL);
gtk_signal_connect (GTK_OBJECT (private->size_se), "value_changed", gtk_signal_connect (GTK_OBJECT (private->size_se), "value_changed",
(GtkSignalFunc) size_callback, (GtkSignalFunc) size_callback,
resize); resize);
@ -428,8 +430,7 @@ resize_widget_new (ResizeType type,
gtk_widget_set_usize (spinbutton, 75, 0); gtk_widget_set_usize (spinbutton, 75, 0);
private->offset_se = private->offset_se =
gimp_size_entry_new (1, dot_for_dot ? UNIT_PIXEL : unit, "%a", gimp_size_entry_new (1, unit, "%a", TRUE, FALSE, FALSE, 75,
TRUE, FALSE, FALSE, 75,
GIMP_SIZE_ENTRY_UPDATE_SIZE); GIMP_SIZE_ENTRY_UPDATE_SIZE);
gimp_size_entry_add_field (GIMP_SIZE_ENTRY (private->offset_se), gimp_size_entry_add_field (GIMP_SIZE_ENTRY (private->offset_se),
GTK_SPIN_BUTTON (spinbutton), NULL); GTK_SPIN_BUTTON (spinbutton), NULL);
@ -453,6 +454,10 @@ resize_widget_new (ResizeType type,
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (private->offset_se), 0, 0); gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (private->offset_se), 0, 0);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (private->offset_se), 1, 0); gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (private->offset_se), 1, 0);
if (dot_for_dot)
gimp_size_entry_set_unit (GIMP_SIZE_ENTRY (private->offset_se),
UNIT_PIXEL);
gtk_signal_connect (GTK_OBJECT (private->offset_se), gtk_signal_connect (GTK_OBJECT (private->offset_se),
"value_changed", (GtkSignalFunc) offset_update, "value_changed", (GtkSignalFunc) offset_update,
resize); resize);

View File

@ -45,8 +45,8 @@ struct _Resize
int width; int width;
int height; int height;
float resolution_x; double resolution_x;
float resolution_y; double resolution_y;
GUnit unit; GUnit unit;
double ratio_x; double ratio_x;
@ -65,10 +65,10 @@ struct _Resize
Resize * resize_widget_new (ResizeType type, Resize * resize_widget_new (ResizeType type,
ResizeTarget target, ResizeTarget target,
GtkObject * object, GtkObject * object,
int width, gint width,
int height, gint height,
float resolution_x, gdouble resolution_x,
float resolution_y, gdouble resolution_y,
GUnit unit, GUnit unit,
gboolean dot_for_dot, gboolean dot_for_dot,
GtkSignalFunc ok_cb, GtkSignalFunc ok_cb,

View File

@ -70,7 +70,7 @@ gdisplay_color_pixel (GDisplay *gdisp)
void void
gdisplay_xserver_resolution (float *xres, float *yres) gdisplay_xserver_resolution (gdouble *xres, gdouble *yres)
{ {
gint width, height; gint width, height;
gint widthMM, heightMM; gint widthMM, heightMM;
@ -91,8 +91,8 @@ gdisplay_xserver_resolution (float *xres, float *yres)
* = N * 25.4 pixels / M inch * = N * 25.4 pixels / M inch
*/ */
*xres = (width * 25.4) / ((float)widthMM); *xres = (width * 25.4) / ((gdouble) widthMM);
*yres = (height * 25.4) / ((float)heightMM); *yres = (height * 25.4) / ((gdouble) heightMM);
} }

View File

@ -25,7 +25,7 @@ gulong gdisplay_black_pixel (GDisplay *);
gulong gdisplay_gray_pixel (GDisplay *); gulong gdisplay_gray_pixel (GDisplay *);
gulong gdisplay_white_pixel (GDisplay *); gulong gdisplay_white_pixel (GDisplay *);
gulong gdisplay_color_pixel (GDisplay *); gulong gdisplay_color_pixel (GDisplay *);
void gdisplay_xserver_resolution (float *, float *); void gdisplay_xserver_resolution (gdouble *, gdouble *);
void gdisplay_new_view (GDisplay *); void gdisplay_new_view (GDisplay *);
void gdisplay_close_window (GDisplay *, int); void gdisplay_close_window (GDisplay *, int);
void gdisplay_shrink_wrap (GDisplay *); void gdisplay_shrink_wrap (GDisplay *);

View File

@ -166,7 +166,7 @@ change_scale (GDisplay *gdisp,
static gdouble static gdouble
img2real (GDisplay *gdisp, gboolean xdir, gdouble a) img2real (GDisplay *gdisp, gboolean xdir, gdouble a)
{ {
float res; gdouble res;
if (gdisp->dot_for_dot) if (gdisp->dot_for_dot)
return a; return a;

View File

@ -1024,14 +1024,14 @@ gdisplay_update_cursor (GDisplay *gdisp, int x, int y)
} }
else /* show real world units */ else /* show real world units */
{ {
float unit_factor = gimp_unit_get_factor (gdisp->gimage->unit); double unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
g_snprintf (buffer, CURSOR_STR_LENGTH, g_snprintf
gdisp->cursor_format_str, (buffer, CURSOR_STR_LENGTH, gdisp->cursor_format_str,
"", "",
(float)t_x * unit_factor / gdisp->gimage->xresolution, (double) t_x * unit_factor / gdisp->gimage->xresolution,
", ", ", ",
(float)t_y * unit_factor / gdisp->gimage->yresolution); (double) t_y * unit_factor / gdisp->gimage->yresolution);
} }
gtk_label_set (GTK_LABEL (gdisp->cursor_label), buffer); gtk_label_set (GTK_LABEL (gdisp->cursor_label), buffer);
} }
@ -1076,7 +1076,7 @@ gdisplay_resize_cursor_label (GDisplay *gdisp)
} }
else /* show real world units */ else /* show real world units */
{ {
float unit_factor = gimp_unit_get_factor (gdisp->gimage->unit); gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
g_snprintf (gdisp->cursor_format_str, sizeof(gdisp->cursor_format_str), g_snprintf (gdisp->cursor_format_str, sizeof(gdisp->cursor_format_str),
"%%s%%.%df%%s%%.%df %s", "%%s%%.%df%%s%%.%df %s",
@ -1086,14 +1086,14 @@ gdisplay_resize_cursor_label (GDisplay *gdisp)
g_snprintf (buffer, sizeof(buffer), gdisp->cursor_format_str, g_snprintf (buffer, sizeof(buffer), gdisp->cursor_format_str,
"", "",
(float)gdisp->gimage->width * unit_factor / (gdouble) gdisp->gimage->width * unit_factor /
gdisp->gimage->xresolution, gdisp->gimage->xresolution,
", ", ", ",
(float)gdisp->gimage->height * unit_factor / (gdouble) gdisp->gimage->height * unit_factor /
gdisp->gimage->yresolution); gdisp->gimage->yresolution);
} }
cursor_label_width = cursor_label_width =
gdk_string_width ( gtk_widget_get_style(gdisp->cursor_label)->font, buffer ); gdk_string_width (gtk_widget_get_style (gdisp->cursor_label)->font, buffer);
/* find out how many pixels the label's parent frame is bigger than /* find out how many pixels the label's parent frame is bigger than
* the label itself */ * the label itself */

View File

@ -35,11 +35,11 @@
#define SCALESRC(g) (g->scale & 0x00ff) #define SCALESRC(g) (g->scale & 0x00ff)
#define SCALEDEST(g) (g->scale >> 8) #define SCALEDEST(g) (g->scale >> 8)
/* finding the effective screen resolution (float) */ /* finding the effective screen resolution (double) */
#define SCREEN_XRES(g) (g->dot_for_dot? g->gimage->xresolution : monitor_xres) #define SCREEN_XRES(g) (g->dot_for_dot? g->gimage->xresolution : monitor_xres)
#define SCREEN_YRES(g) (g->dot_for_dot? g->gimage->yresolution : monitor_yres) #define SCREEN_YRES(g) (g->dot_for_dot? g->gimage->yresolution : monitor_yres)
/* calculate scale factors (float) */ /* calculate scale factors (double) */
#define SCALEFACTOR_X(g) ((SCALEDEST(g) * SCREEN_XRES(g)) / \ #define SCALEFACTOR_X(g) ((SCALEDEST(g) * SCREEN_XRES(g)) / \
(SCALESRC(g) * g->gimage->xresolution)) (SCALESRC(g) * g->gimage->xresolution))
#define SCALEFACTOR_Y(g) ((SCALEDEST(g) * SCREEN_YRES(g)) / \ #define SCALEFACTOR_Y(g) ((SCALEDEST(g) * SCREEN_YRES(g)) / \

View File

@ -790,7 +790,7 @@ create_display_shell (GDisplay* gdisp,
/* /*
* String, integer, float and size query boxes * String, integer, double and size query boxes
*/ */
typedef struct _QueryBox QueryBox; typedef struct _QueryBox QueryBox;
@ -812,7 +812,7 @@ static gint query_box_delete_callback (GtkWidget *, GdkEvent *, gpointer);
static void query_box_cancel_callback (GtkWidget *, gpointer); static void query_box_cancel_callback (GtkWidget *, gpointer);
static void string_query_box_ok_callback (GtkWidget *, gpointer); static void string_query_box_ok_callback (GtkWidget *, gpointer);
static void int_query_box_ok_callback (GtkWidget *, gpointer); static void int_query_box_ok_callback (GtkWidget *, gpointer);
static void float_query_box_ok_callback (GtkWidget *, gpointer); static void double_query_box_ok_callback (GtkWidget *, gpointer);
static void size_query_box_ok_callback (GtkWidget *, gpointer); static void size_query_box_ok_callback (GtkWidget *, gpointer);
/* create a generic query box without any entry widget /* create a generic query box without any entry widget
@ -830,8 +830,12 @@ create_query_box (gchar *title,
GtkWidget *qbox; GtkWidget *qbox;
GtkWidget *vbox; GtkWidget *vbox;
GtkWidget *label; GtkWidget *label;
GtkWidget *ok_button;
GtkWidget *button; static ActionAreaItem action_items[] =
{
{ N_("OK"), (ActionCallback) NULL, NULL, NULL },
{ N_("Cancel"), (ActionCallback) query_box_cancel_callback, NULL, NULL }
};
query_box = (QueryBox *) g_malloc (sizeof (QueryBox)); query_box = (QueryBox *) g_malloc (sizeof (QueryBox));
@ -852,23 +856,9 @@ create_query_box (gchar *title,
else else
object = NULL; object = NULL;
gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (qbox)->action_area), 2); /* The action area */
action_items[1].user_data = query_box;
ok_button = gtk_button_new_with_label (_("OK")); build_action_area (GTK_DIALOG (qbox), action_items, 2, 0);
GTK_WIDGET_SET_FLAGS (ok_button, GTK_CAN_DEFAULT);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (qbox)->action_area), ok_button,
TRUE, TRUE, 0);
gtk_widget_grab_default (ok_button);
gtk_widget_show (ok_button);
button = gtk_button_new_with_label (_("Cancel"));
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
gtk_signal_connect (GTK_OBJECT (button), "clicked",
(GtkSignalFunc) query_box_cancel_callback,
query_box);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (qbox)->action_area), button,
TRUE, TRUE, 0);
gtk_widget_show (button);
vbox = gtk_vbox_new (FALSE, 1); vbox = gtk_vbox_new (FALSE, 1);
gtk_container_set_border_width (GTK_CONTAINER (vbox), 2); gtk_container_set_border_width (GTK_CONTAINER (vbox), 2);
@ -882,7 +872,7 @@ create_query_box (gchar *title,
query_box->qbox = qbox; query_box->qbox = qbox;
query_box->vbox = vbox; query_box->vbox = vbox;
query_box->entry = NULL; query_box->entry = NULL;
query_box->ok_button = ok_button; query_box->ok_button = action_items[0].widget;
query_box->object = object; query_box->object = object;
query_box->callback = callback; query_box->callback = callback;
query_box->data = data; query_box->data = data;
@ -958,16 +948,16 @@ query_int_box (gchar *title,
} }
GtkWidget * GtkWidget *
query_float_box (gchar *title, query_double_box (gchar *title,
gchar *message, gchar *message,
gfloat initial, gdouble initial,
gfloat lower, gdouble lower,
gfloat upper, gdouble upper,
gint digits, gint digits,
GtkObject *object, GtkObject *object,
gchar *signal, gchar *signal,
QueryFunc callback, QueryFunc callback,
gpointer data) gpointer data)
{ {
QueryBox *query_box; QueryBox *query_box;
GtkAdjustment* adjustment; GtkAdjustment* adjustment;
@ -976,7 +966,7 @@ query_float_box (gchar *title,
query_box = create_query_box (title, message, object, signal, callback, data); query_box = create_query_box (title, message, object, signal, callback, data);
gtk_signal_connect (GTK_OBJECT (query_box->ok_button), "clicked", gtk_signal_connect (GTK_OBJECT (query_box->ok_button), "clicked",
(GtkSignalFunc) float_query_box_ok_callback, (GtkSignalFunc) double_query_box_ok_callback,
query_box); query_box);
adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (initial, lower, upper, adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (initial, lower, upper,
@ -996,12 +986,13 @@ query_float_box (gchar *title,
GtkWidget * GtkWidget *
query_size_box (gchar *title, query_size_box (gchar *title,
gchar *message, gchar *message,
gfloat initial, gdouble initial,
gfloat lower, gdouble lower,
gfloat upper, gdouble upper,
gint digits, gint digits,
GUnit unit, GUnit unit,
gfloat resolution, gdouble resolution,
gint dot_for_dot,
GtkObject *object, GtkObject *object,
gchar *signal, gchar *signal,
QueryFunc callback, QueryFunc callback,
@ -1025,6 +1016,9 @@ query_size_box (gchar *title,
lower, upper); lower, upper);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (sizeentry), 0, initial); gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (sizeentry), 0, initial);
if (dot_for_dot)
gimp_size_entry_set_unit (GIMP_SIZE_ENTRY (sizeentry), UNIT_PIXEL);
gtk_box_pack_start (GTK_BOX (query_box->vbox), sizeentry, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (query_box->vbox), sizeentry, TRUE, TRUE, 0);
gimp_size_entry_grab_focus (GIMP_SIZE_ENTRY (sizeentry)); gimp_size_entry_grab_focus (GIMP_SIZE_ENTRY (sizeentry));
gtk_widget_show (sizeentry); gtk_widget_show (sizeentry);
@ -1106,7 +1100,7 @@ int_query_box_ok_callback (GtkWidget *w,
/* Get the spinbutton data */ /* Get the spinbutton data */
integer_value = g_malloc (sizeof (gint)); integer_value = g_malloc (sizeof (gint));
*integer_value = *integer_value =
gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(query_box->entry)); gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (query_box->entry));
/* Call the user defined callback */ /* Call the user defined callback */
(* query_box->callback) (w, query_box->data, (gpointer) integer_value); (* query_box->callback) (w, query_box->data, (gpointer) integer_value);
@ -1118,11 +1112,11 @@ int_query_box_ok_callback (GtkWidget *w,
} }
static void static void
float_query_box_ok_callback (GtkWidget *w, double_query_box_ok_callback (GtkWidget *w,
gpointer client_data) gpointer client_data)
{ {
QueryBox *query_box; QueryBox *query_box;
gfloat *float_value; gdouble *double_value;
query_box = (QueryBox *) client_data; query_box = (QueryBox *) client_data;
@ -1131,12 +1125,12 @@ float_query_box_ok_callback (GtkWidget *w,
gtk_signal_disconnect_by_data (query_box->object, query_box); gtk_signal_disconnect_by_data (query_box->object, query_box);
/* Get the spinbutton data */ /* Get the spinbutton data */
float_value = g_malloc (sizeof (gfloat)); double_value = g_malloc (sizeof (gdouble));
*float_value = *double_value =
gtk_spin_button_get_value_as_float(GTK_SPIN_BUTTON(query_box->entry)); gtk_spin_button_get_value_as_float (GTK_SPIN_BUTTON (query_box->entry));
/* Call the user defined callback */ /* Call the user defined callback */
(* query_box->callback) (w, query_box->data, (gpointer) float_value); (* query_box->callback) (w, query_box->data, (gpointer) double_value);
/* Destroy the box */ /* Destroy the box */
gtk_widget_destroy (query_box->qbox); gtk_widget_destroy (query_box->qbox);
@ -1149,7 +1143,7 @@ size_query_box_ok_callback (GtkWidget *w,
gpointer client_data) gpointer client_data)
{ {
QueryBox *query_box; QueryBox *query_box;
gfloat *float_value; gdouble *double_value;
query_box = (QueryBox *) client_data; query_box = (QueryBox *) client_data;
@ -1158,8 +1152,8 @@ size_query_box_ok_callback (GtkWidget *w,
gtk_signal_disconnect_by_data (query_box->object, query_box); gtk_signal_disconnect_by_data (query_box->object, query_box);
/* Get the sizeentry data */ /* Get the sizeentry data */
float_value = g_malloc (sizeof (gfloat)); double_value = g_malloc (sizeof (gdouble));
*float_value = *double_value =
gimp_size_entry_get_refval (GIMP_SIZE_ENTRY (query_box->entry), 0); gimp_size_entry_get_refval (GIMP_SIZE_ENTRY (query_box->entry), 0);
/* Pass the selected unit to the callback */ /* Pass the selected unit to the callback */
@ -1168,7 +1162,7 @@ size_query_box_ok_callback (GtkWidget *w,
(gpointer) gimp_size_entry_get_unit (GIMP_SIZE_ENTRY (query_box->entry))); (gpointer) gimp_size_entry_get_unit (GIMP_SIZE_ENTRY (query_box->entry)));
/* Call the user defined callback */ /* Call the user defined callback */
(* query_box->callback) (w, query_box->data, (gpointer) float_value); (* query_box->callback) (w, query_box->data, (gpointer) double_value);
/* Destroy the box */ /* Destroy the box */
gtk_widget_destroy (query_box->qbox); gtk_widget_destroy (query_box->qbox);
@ -1217,7 +1211,7 @@ message_box (char *message,
gtk_window_set_wmclass (GTK_WINDOW (mbox), "gimp_message", "Gimp"); gtk_window_set_wmclass (GTK_WINDOW (mbox), "gimp_message", "Gimp");
gtk_window_set_title (GTK_WINDOW (mbox), _("GIMP Message")); gtk_window_set_title (GTK_WINDOW (mbox), _("GIMP Message"));
gtk_window_position (GTK_WINDOW (mbox), GTK_WIN_POS_MOUSE); gtk_window_position (GTK_WINDOW (mbox), GTK_WIN_POS_MOUSE);
gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (mbox)->action_area), 2);
gtk_signal_connect (GTK_OBJECT (mbox), "delete_event", gtk_signal_connect (GTK_OBJECT (mbox), "delete_event",
GTK_SIGNAL_FUNC (message_box_delete_callback), GTK_SIGNAL_FUNC (message_box_delete_callback),
msg_box); msg_box);

View File

@ -77,11 +77,11 @@ GtkWidget * query_int_box (gchar *title,
gchar *signal, gchar *signal,
QueryFunc callback, QueryFunc callback,
gpointer data); gpointer data);
GtkWidget * query_float_box (gchar *title, GtkWidget * query_double_box (gchar *title,
gchar *message, gchar *message,
gfloat initial, gdouble initial,
gfloat lower, gdouble lower,
gfloat upper, gdouble upper,
gint digits, gint digits,
GtkObject *object, GtkObject *object,
gchar *signal, gchar *signal,
@ -89,12 +89,13 @@ GtkWidget * query_float_box (gchar *title,
gpointer data); gpointer data);
GtkWidget * query_size_box (gchar *title, GtkWidget * query_size_box (gchar *title,
gchar *message, gchar *message,
gfloat initial, gdouble initial,
gfloat lower, gdouble lower,
gfloat upper, gdouble upper,
gint digits, gint digits,
GUnit unit, GUnit unit,
gfloat resolution, gdouble resolution,
gint dot_for_dot,
GtkObject *object, GtkObject *object,
gchar *signal, gchar *signal,
QueryFunc callback, QueryFunc callback,

View File

@ -166,7 +166,7 @@ change_scale (GDisplay *gdisp,
static gdouble static gdouble
img2real (GDisplay *gdisp, gboolean xdir, gdouble a) img2real (GDisplay *gdisp, gboolean xdir, gdouble a)
{ {
float res; gdouble res;
if (gdisp->dot_for_dot) if (gdisp->dot_for_dot)
return a; return a;

View File

@ -790,7 +790,7 @@ create_display_shell (GDisplay* gdisp,
/* /*
* String, integer, float and size query boxes * String, integer, double and size query boxes
*/ */
typedef struct _QueryBox QueryBox; typedef struct _QueryBox QueryBox;
@ -812,7 +812,7 @@ static gint query_box_delete_callback (GtkWidget *, GdkEvent *, gpointer);
static void query_box_cancel_callback (GtkWidget *, gpointer); static void query_box_cancel_callback (GtkWidget *, gpointer);
static void string_query_box_ok_callback (GtkWidget *, gpointer); static void string_query_box_ok_callback (GtkWidget *, gpointer);
static void int_query_box_ok_callback (GtkWidget *, gpointer); static void int_query_box_ok_callback (GtkWidget *, gpointer);
static void float_query_box_ok_callback (GtkWidget *, gpointer); static void double_query_box_ok_callback (GtkWidget *, gpointer);
static void size_query_box_ok_callback (GtkWidget *, gpointer); static void size_query_box_ok_callback (GtkWidget *, gpointer);
/* create a generic query box without any entry widget /* create a generic query box without any entry widget
@ -830,8 +830,12 @@ create_query_box (gchar *title,
GtkWidget *qbox; GtkWidget *qbox;
GtkWidget *vbox; GtkWidget *vbox;
GtkWidget *label; GtkWidget *label;
GtkWidget *ok_button;
GtkWidget *button; static ActionAreaItem action_items[] =
{
{ N_("OK"), (ActionCallback) NULL, NULL, NULL },
{ N_("Cancel"), (ActionCallback) query_box_cancel_callback, NULL, NULL }
};
query_box = (QueryBox *) g_malloc (sizeof (QueryBox)); query_box = (QueryBox *) g_malloc (sizeof (QueryBox));
@ -852,23 +856,9 @@ create_query_box (gchar *title,
else else
object = NULL; object = NULL;
gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (qbox)->action_area), 2); /* The action area */
action_items[1].user_data = query_box;
ok_button = gtk_button_new_with_label (_("OK")); build_action_area (GTK_DIALOG (qbox), action_items, 2, 0);
GTK_WIDGET_SET_FLAGS (ok_button, GTK_CAN_DEFAULT);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (qbox)->action_area), ok_button,
TRUE, TRUE, 0);
gtk_widget_grab_default (ok_button);
gtk_widget_show (ok_button);
button = gtk_button_new_with_label (_("Cancel"));
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
gtk_signal_connect (GTK_OBJECT (button), "clicked",
(GtkSignalFunc) query_box_cancel_callback,
query_box);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (qbox)->action_area), button,
TRUE, TRUE, 0);
gtk_widget_show (button);
vbox = gtk_vbox_new (FALSE, 1); vbox = gtk_vbox_new (FALSE, 1);
gtk_container_set_border_width (GTK_CONTAINER (vbox), 2); gtk_container_set_border_width (GTK_CONTAINER (vbox), 2);
@ -882,7 +872,7 @@ create_query_box (gchar *title,
query_box->qbox = qbox; query_box->qbox = qbox;
query_box->vbox = vbox; query_box->vbox = vbox;
query_box->entry = NULL; query_box->entry = NULL;
query_box->ok_button = ok_button; query_box->ok_button = action_items[0].widget;
query_box->object = object; query_box->object = object;
query_box->callback = callback; query_box->callback = callback;
query_box->data = data; query_box->data = data;
@ -958,16 +948,16 @@ query_int_box (gchar *title,
} }
GtkWidget * GtkWidget *
query_float_box (gchar *title, query_double_box (gchar *title,
gchar *message, gchar *message,
gfloat initial, gdouble initial,
gfloat lower, gdouble lower,
gfloat upper, gdouble upper,
gint digits, gint digits,
GtkObject *object, GtkObject *object,
gchar *signal, gchar *signal,
QueryFunc callback, QueryFunc callback,
gpointer data) gpointer data)
{ {
QueryBox *query_box; QueryBox *query_box;
GtkAdjustment* adjustment; GtkAdjustment* adjustment;
@ -976,7 +966,7 @@ query_float_box (gchar *title,
query_box = create_query_box (title, message, object, signal, callback, data); query_box = create_query_box (title, message, object, signal, callback, data);
gtk_signal_connect (GTK_OBJECT (query_box->ok_button), "clicked", gtk_signal_connect (GTK_OBJECT (query_box->ok_button), "clicked",
(GtkSignalFunc) float_query_box_ok_callback, (GtkSignalFunc) double_query_box_ok_callback,
query_box); query_box);
adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (initial, lower, upper, adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (initial, lower, upper,
@ -996,12 +986,13 @@ query_float_box (gchar *title,
GtkWidget * GtkWidget *
query_size_box (gchar *title, query_size_box (gchar *title,
gchar *message, gchar *message,
gfloat initial, gdouble initial,
gfloat lower, gdouble lower,
gfloat upper, gdouble upper,
gint digits, gint digits,
GUnit unit, GUnit unit,
gfloat resolution, gdouble resolution,
gint dot_for_dot,
GtkObject *object, GtkObject *object,
gchar *signal, gchar *signal,
QueryFunc callback, QueryFunc callback,
@ -1025,6 +1016,9 @@ query_size_box (gchar *title,
lower, upper); lower, upper);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (sizeentry), 0, initial); gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (sizeentry), 0, initial);
if (dot_for_dot)
gimp_size_entry_set_unit (GIMP_SIZE_ENTRY (sizeentry), UNIT_PIXEL);
gtk_box_pack_start (GTK_BOX (query_box->vbox), sizeentry, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (query_box->vbox), sizeentry, TRUE, TRUE, 0);
gimp_size_entry_grab_focus (GIMP_SIZE_ENTRY (sizeentry)); gimp_size_entry_grab_focus (GIMP_SIZE_ENTRY (sizeentry));
gtk_widget_show (sizeentry); gtk_widget_show (sizeentry);
@ -1106,7 +1100,7 @@ int_query_box_ok_callback (GtkWidget *w,
/* Get the spinbutton data */ /* Get the spinbutton data */
integer_value = g_malloc (sizeof (gint)); integer_value = g_malloc (sizeof (gint));
*integer_value = *integer_value =
gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(query_box->entry)); gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (query_box->entry));
/* Call the user defined callback */ /* Call the user defined callback */
(* query_box->callback) (w, query_box->data, (gpointer) integer_value); (* query_box->callback) (w, query_box->data, (gpointer) integer_value);
@ -1118,11 +1112,11 @@ int_query_box_ok_callback (GtkWidget *w,
} }
static void static void
float_query_box_ok_callback (GtkWidget *w, double_query_box_ok_callback (GtkWidget *w,
gpointer client_data) gpointer client_data)
{ {
QueryBox *query_box; QueryBox *query_box;
gfloat *float_value; gdouble *double_value;
query_box = (QueryBox *) client_data; query_box = (QueryBox *) client_data;
@ -1131,12 +1125,12 @@ float_query_box_ok_callback (GtkWidget *w,
gtk_signal_disconnect_by_data (query_box->object, query_box); gtk_signal_disconnect_by_data (query_box->object, query_box);
/* Get the spinbutton data */ /* Get the spinbutton data */
float_value = g_malloc (sizeof (gfloat)); double_value = g_malloc (sizeof (gdouble));
*float_value = *double_value =
gtk_spin_button_get_value_as_float(GTK_SPIN_BUTTON(query_box->entry)); gtk_spin_button_get_value_as_float (GTK_SPIN_BUTTON (query_box->entry));
/* Call the user defined callback */ /* Call the user defined callback */
(* query_box->callback) (w, query_box->data, (gpointer) float_value); (* query_box->callback) (w, query_box->data, (gpointer) double_value);
/* Destroy the box */ /* Destroy the box */
gtk_widget_destroy (query_box->qbox); gtk_widget_destroy (query_box->qbox);
@ -1149,7 +1143,7 @@ size_query_box_ok_callback (GtkWidget *w,
gpointer client_data) gpointer client_data)
{ {
QueryBox *query_box; QueryBox *query_box;
gfloat *float_value; gdouble *double_value;
query_box = (QueryBox *) client_data; query_box = (QueryBox *) client_data;
@ -1158,8 +1152,8 @@ size_query_box_ok_callback (GtkWidget *w,
gtk_signal_disconnect_by_data (query_box->object, query_box); gtk_signal_disconnect_by_data (query_box->object, query_box);
/* Get the sizeentry data */ /* Get the sizeentry data */
float_value = g_malloc (sizeof (gfloat)); double_value = g_malloc (sizeof (gdouble));
*float_value = *double_value =
gimp_size_entry_get_refval (GIMP_SIZE_ENTRY (query_box->entry), 0); gimp_size_entry_get_refval (GIMP_SIZE_ENTRY (query_box->entry), 0);
/* Pass the selected unit to the callback */ /* Pass the selected unit to the callback */
@ -1168,7 +1162,7 @@ size_query_box_ok_callback (GtkWidget *w,
(gpointer) gimp_size_entry_get_unit (GIMP_SIZE_ENTRY (query_box->entry))); (gpointer) gimp_size_entry_get_unit (GIMP_SIZE_ENTRY (query_box->entry)));
/* Call the user defined callback */ /* Call the user defined callback */
(* query_box->callback) (w, query_box->data, (gpointer) float_value); (* query_box->callback) (w, query_box->data, (gpointer) double_value);
/* Destroy the box */ /* Destroy the box */
gtk_widget_destroy (query_box->qbox); gtk_widget_destroy (query_box->qbox);
@ -1217,7 +1211,7 @@ message_box (char *message,
gtk_window_set_wmclass (GTK_WINDOW (mbox), "gimp_message", "Gimp"); gtk_window_set_wmclass (GTK_WINDOW (mbox), "gimp_message", "Gimp");
gtk_window_set_title (GTK_WINDOW (mbox), _("GIMP Message")); gtk_window_set_title (GTK_WINDOW (mbox), _("GIMP Message"));
gtk_window_position (GTK_WINDOW (mbox), GTK_WIN_POS_MOUSE); gtk_window_position (GTK_WINDOW (mbox), GTK_WIN_POS_MOUSE);
gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (mbox)->action_area), 2);
gtk_signal_connect (GTK_OBJECT (mbox), "delete_event", gtk_signal_connect (GTK_OBJECT (mbox), "delete_event",
GTK_SIGNAL_FUNC (message_box_delete_callback), GTK_SIGNAL_FUNC (message_box_delete_callback),
msg_box); msg_box);

View File

@ -77,11 +77,11 @@ GtkWidget * query_int_box (gchar *title,
gchar *signal, gchar *signal,
QueryFunc callback, QueryFunc callback,
gpointer data); gpointer data);
GtkWidget * query_float_box (gchar *title, GtkWidget * query_double_box (gchar *title,
gchar *message, gchar *message,
gfloat initial, gdouble initial,
gfloat lower, gdouble lower,
gfloat upper, gdouble upper,
gint digits, gint digits,
GtkObject *object, GtkObject *object,
gchar *signal, gchar *signal,
@ -89,12 +89,13 @@ GtkWidget * query_float_box (gchar *title,
gpointer data); gpointer data);
GtkWidget * query_size_box (gchar *title, GtkWidget * query_size_box (gchar *title,
gchar *message, gchar *message,
gfloat initial, gdouble initial,
gfloat lower, gdouble lower,
gfloat upper, gdouble upper,
gint digits, gint digits,
GUnit unit, GUnit unit,
gfloat resolution, gdouble resolution,
gint dot_for_dot,
GtkObject *object, GtkObject *object,
gchar *signal, gchar *signal,
QueryFunc callback, QueryFunc callback,

View File

@ -447,7 +447,7 @@ edit_selection_motion (Tool *tool,
} }
else /* show real world units */ else /* show real world units */
{ {
float unit_factor = gimp_unit_get_factor (gdisp->gimage->unit); gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
g_snprintf (offset, STATUSBAR_SIZE, gdisp->cursor_format_str, g_snprintf (offset, STATUSBAR_SIZE, gdisp->cursor_format_str,
_("Move: "), _("Move: "),

View File

@ -295,8 +295,9 @@ file_new_confirm_dialog (NewImageValues *vals)
vals->confirm_dlg = gtk_dialog_new (); vals->confirm_dlg = gtk_dialog_new ();
gtk_window_set_wmclass (GTK_WINDOW (vals->confirm_dlg), gtk_window_set_wmclass (GTK_WINDOW (vals->confirm_dlg),
"really_create", "Gimp"); "confirm_size", "Gimp");
gtk_window_set_title (GTK_WINDOW (vals->confirm_dlg), _("Confirm Image Size")); gtk_window_set_title (GTK_WINDOW (vals->confirm_dlg), _("Confirm Image Size"));
gtk_window_set_policy (GTK_WINDOW (vals->confirm_dlg), FALSE, FALSE, FALSE);
gtk_window_position (GTK_WINDOW (vals->confirm_dlg), GTK_WIN_POS_MOUSE); gtk_window_position (GTK_WINDOW (vals->confirm_dlg), GTK_WIN_POS_MOUSE);
/* Handle the wm close signal */ /* Handle the wm close signal */
@ -480,7 +481,6 @@ file_new_cmd_callback (GtkWidget *widget,
N_("RGB"), N_("RGB"),
N_("Grayscale") N_("Grayscale")
}; };
static gchar *fill_type_names[] = static gchar *fill_type_names[] =
{ {
N_("Foreground"), N_("Foreground"),

View File

@ -1024,14 +1024,14 @@ gdisplay_update_cursor (GDisplay *gdisp, int x, int y)
} }
else /* show real world units */ else /* show real world units */
{ {
float unit_factor = gimp_unit_get_factor (gdisp->gimage->unit); double unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
g_snprintf (buffer, CURSOR_STR_LENGTH, g_snprintf
gdisp->cursor_format_str, (buffer, CURSOR_STR_LENGTH, gdisp->cursor_format_str,
"", "",
(float)t_x * unit_factor / gdisp->gimage->xresolution, (double) t_x * unit_factor / gdisp->gimage->xresolution,
", ", ", ",
(float)t_y * unit_factor / gdisp->gimage->yresolution); (double) t_y * unit_factor / gdisp->gimage->yresolution);
} }
gtk_label_set (GTK_LABEL (gdisp->cursor_label), buffer); gtk_label_set (GTK_LABEL (gdisp->cursor_label), buffer);
} }
@ -1076,7 +1076,7 @@ gdisplay_resize_cursor_label (GDisplay *gdisp)
} }
else /* show real world units */ else /* show real world units */
{ {
float unit_factor = gimp_unit_get_factor (gdisp->gimage->unit); gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
g_snprintf (gdisp->cursor_format_str, sizeof(gdisp->cursor_format_str), g_snprintf (gdisp->cursor_format_str, sizeof(gdisp->cursor_format_str),
"%%s%%.%df%%s%%.%df %s", "%%s%%.%df%%s%%.%df %s",
@ -1086,14 +1086,14 @@ gdisplay_resize_cursor_label (GDisplay *gdisp)
g_snprintf (buffer, sizeof(buffer), gdisp->cursor_format_str, g_snprintf (buffer, sizeof(buffer), gdisp->cursor_format_str,
"", "",
(float)gdisp->gimage->width * unit_factor / (gdouble) gdisp->gimage->width * unit_factor /
gdisp->gimage->xresolution, gdisp->gimage->xresolution,
", ", ", ",
(float)gdisp->gimage->height * unit_factor / (gdouble) gdisp->gimage->height * unit_factor /
gdisp->gimage->yresolution); gdisp->gimage->yresolution);
} }
cursor_label_width = cursor_label_width =
gdk_string_width ( gtk_widget_get_style(gdisp->cursor_label)->font, buffer ); gdk_string_width (gtk_widget_get_style (gdisp->cursor_label)->font, buffer);
/* find out how many pixels the label's parent frame is bigger than /* find out how many pixels the label's parent frame is bigger than
* the label itself */ * the label itself */

View File

@ -35,11 +35,11 @@
#define SCALESRC(g) (g->scale & 0x00ff) #define SCALESRC(g) (g->scale & 0x00ff)
#define SCALEDEST(g) (g->scale >> 8) #define SCALEDEST(g) (g->scale >> 8)
/* finding the effective screen resolution (float) */ /* finding the effective screen resolution (double) */
#define SCREEN_XRES(g) (g->dot_for_dot? g->gimage->xresolution : monitor_xres) #define SCREEN_XRES(g) (g->dot_for_dot? g->gimage->xresolution : monitor_xres)
#define SCREEN_YRES(g) (g->dot_for_dot? g->gimage->yresolution : monitor_yres) #define SCREEN_YRES(g) (g->dot_for_dot? g->gimage->yresolution : monitor_yres)
/* calculate scale factors (float) */ /* calculate scale factors (double) */
#define SCALEFACTOR_X(g) ((SCALEDEST(g) * SCREEN_XRES(g)) / \ #define SCALEFACTOR_X(g) ((SCALEDEST(g) * SCREEN_XRES(g)) / \
(SCALESRC(g) * g->gimage->xresolution)) (SCALESRC(g) * g->gimage->xresolution))
#define SCALEFACTOR_Y(g) ((SCALEDEST(g) * SCREEN_YRES(g)) / \ #define SCALEFACTOR_Y(g) ((SCALEDEST(g) * SCREEN_YRES(g)) / \

View File

@ -70,7 +70,7 @@ gdisplay_color_pixel (GDisplay *gdisp)
void void
gdisplay_xserver_resolution (float *xres, float *yres) gdisplay_xserver_resolution (gdouble *xres, gdouble *yres)
{ {
gint width, height; gint width, height;
gint widthMM, heightMM; gint widthMM, heightMM;
@ -91,8 +91,8 @@ gdisplay_xserver_resolution (float *xres, float *yres)
* = N * 25.4 pixels / M inch * = N * 25.4 pixels / M inch
*/ */
*xres = (width * 25.4) / ((float)widthMM); *xres = (width * 25.4) / ((gdouble) widthMM);
*yres = (height * 25.4) / ((float)heightMM); *yres = (height * 25.4) / ((gdouble) heightMM);
} }

View File

@ -25,7 +25,7 @@ gulong gdisplay_black_pixel (GDisplay *);
gulong gdisplay_gray_pixel (GDisplay *); gulong gdisplay_gray_pixel (GDisplay *);
gulong gdisplay_white_pixel (GDisplay *); gulong gdisplay_white_pixel (GDisplay *);
gulong gdisplay_color_pixel (GDisplay *); gulong gdisplay_color_pixel (GDisplay *);
void gdisplay_xserver_resolution (float *, float *); void gdisplay_xserver_resolution (gdouble *, gdouble *);
void gdisplay_new_view (GDisplay *); void gdisplay_new_view (GDisplay *);
void gdisplay_close_window (GDisplay *, int); void gdisplay_close_window (GDisplay *, int);
void gdisplay_shrink_wrap (GDisplay *); void gdisplay_shrink_wrap (GDisplay *);

View File

@ -319,8 +319,8 @@ gimp_image_set_filename (GimpImage *gimage, char *filename)
void void
gimp_image_set_resolution (GimpImage *gimage, gimp_image_set_resolution (GimpImage *gimage,
float xresolution, double xresolution,
float yresolution) double yresolution)
{ {
gimage->xresolution = xresolution; gimage->xresolution = xresolution;
gimage->yresolution = yresolution; gimage->yresolution = yresolution;
@ -328,8 +328,8 @@ gimp_image_set_resolution (GimpImage *gimage,
void void
gimp_image_get_resolution (GimpImage *gimage, gimp_image_get_resolution (GimpImage *gimage,
float *xresolution, double *xresolution,
float *yresolution) double *yresolution)
{ {
g_return_if_fail(xresolution && yresolution); g_return_if_fail(xresolution && yresolution);
*xresolution = gimage->xresolution; *xresolution = gimage->xresolution;

View File

@ -108,10 +108,11 @@ GtkType gimp_image_get_type(void);
GimpImage * gimp_image_new (int, int, int); GimpImage * gimp_image_new (int, int, int);
void gimp_image_set_filename (GimpImage *, char *); void gimp_image_set_filename (GimpImage *, char *);
void gimp_image_set_resolution (GimpImage *, float, float); void gimp_image_set_resolution (GimpImage *,
double, double);
void gimp_image_get_resolution (GimpImage *, void gimp_image_get_resolution (GimpImage *,
float *, double *,
float *); double *);
void gimp_image_set_unit (GimpImage *, GUnit); void gimp_image_set_unit (GimpImage *, GUnit);
GUnit gimp_image_get_unit (GimpImage *); GUnit gimp_image_get_unit (GimpImage *);
void gimp_image_set_save_proc (GimpImage *, PlugInProcDef *); void gimp_image_set_save_proc (GimpImage *, PlugInProcDef *);

View File

@ -22,8 +22,8 @@ struct _GimpImage
PlugInProcDef *save_proc; /* last PDB save proc used */ PlugInProcDef *save_proc; /* last PDB save proc used */
int width, height; /* width and height attributes */ int width, height; /* width and height attributes */
float xresolution; /* image x-res, in dpi */ double xresolution; /* image x-res, in dpi */
float yresolution; /* image y-res, in dpi */ double yresolution; /* image y-res, in dpi */
GUnit unit; /* image unit */ GUnit unit; /* image unit */
int base_type; /* base gimp_image type */ int base_type; /* base gimp_image type */

View File

@ -40,7 +40,7 @@
typedef struct { typedef struct {
guint delete_on_exit; guint delete_on_exit;
float factor; gdouble factor;
gint digits; gint digits;
gchar *identifier; gchar *identifier;
gchar *symbol; gchar *symbol;
@ -100,13 +100,13 @@ gimp_unit_get_number_of_built_in_units (void)
GUnit GUnit
gimp_unit_new (gchar *identifier, gimp_unit_new (gchar *identifier,
gfloat factor, gdouble factor,
gint digits, gint digits,
gchar *symbol, gchar *symbol,
gchar *abbreviation, gchar *abbreviation,
gchar *singular, gchar *singular,
gchar *plural) gchar *plural)
{ {
GimpUnitDef *user_unit; GimpUnitDef *user_unit;
@ -151,7 +151,7 @@ gimp_unit_set_deletion_flag (GUnit unit,
} }
gfloat gdouble
gimp_unit_get_factor (GUnit unit) gimp_unit_get_factor (GUnit unit)
{ {
g_return_val_if_fail ( (unit >= UNIT_PIXEL) && g_return_val_if_fail ( (unit >= UNIT_PIXEL) &&

View File

@ -365,9 +365,10 @@ select_border_cmd_callback (GtkWidget *widget,
query_size_box (_("Border Selection"), _("Border selection by:"), query_size_box (_("Border Selection"), _("Border selection by:"),
selection_border_radius, 1, 32767, 0, selection_border_radius, 1, 32767, 0,
gdisp->dot_for_dot ? UNIT_PIXEL : gdisp->gimage->unit, gdisp->gimage->unit,
MIN (gdisp->gimage->xresolution, MIN (gdisp->gimage->xresolution,
gdisp->gimage->yresolution), gdisp->gimage->yresolution),
gdisp->dot_for_dot,
GTK_OBJECT (gdisp->gimage), "destroy", GTK_OBJECT (gdisp->gimage), "destroy",
gimage_mask_border_callback, gdisp->gimage); gimage_mask_border_callback, gdisp->gimage);
} }
@ -382,9 +383,10 @@ select_feather_cmd_callback (GtkWidget *widget,
query_size_box (_("Feather Selection"), _("Feather selection by:"), query_size_box (_("Feather Selection"), _("Feather selection by:"),
selection_feather_radius, 0, 32767, 3, selection_feather_radius, 0, 32767, 3,
gdisp->dot_for_dot ? UNIT_PIXEL : gdisp->gimage->unit, gdisp->gimage->unit,
MIN (gdisp->gimage->xresolution, MIN (gdisp->gimage->xresolution,
gdisp->gimage->yresolution), gdisp->gimage->yresolution),
gdisp->dot_for_dot,
GTK_OBJECT (gdisp->gimage), "destroy", GTK_OBJECT (gdisp->gimage), "destroy",
gimage_mask_feather_callback, gdisp->gimage); gimage_mask_feather_callback, gdisp->gimage);
} }
@ -399,9 +401,10 @@ select_grow_cmd_callback (GtkWidget *widget,
query_size_box (_("Grow Selection"), _("Grow selection by:"), query_size_box (_("Grow Selection"), _("Grow selection by:"),
selection_grow_pixels, 1, 32767, 0, selection_grow_pixels, 1, 32767, 0,
gdisp->dot_for_dot ? UNIT_PIXEL : gdisp->gimage->unit, gdisp->gimage->unit,
MIN (gdisp->gimage->xresolution, MIN (gdisp->gimage->xresolution,
gdisp->gimage->yresolution), gdisp->gimage->yresolution),
gdisp->dot_for_dot,
GTK_OBJECT (gdisp->gimage), "destroy", GTK_OBJECT (gdisp->gimage), "destroy",
gimage_mask_grow_callback, gdisp->gimage); gimage_mask_grow_callback, gdisp->gimage);
} }
@ -416,9 +419,10 @@ select_shrink_cmd_callback (GtkWidget *widget,
query_size_box (_("Shrink Selection"), _("Shrink selection by:"), query_size_box (_("Shrink Selection"), _("Shrink selection by:"),
selection_shrink_pixels, 1, 32767, 0, selection_shrink_pixels, 1, 32767, 0,
gdisp->dot_for_dot ? UNIT_PIXEL : gdisp->gimage->unit, gdisp->gimage->unit,
MIN (gdisp->gimage->xresolution, MIN (gdisp->gimage->xresolution,
gdisp->gimage->yresolution), gdisp->gimage->yresolution),
gdisp->dot_for_dot,
GTK_OBJECT (gdisp->gimage), "destroy", GTK_OBJECT (gdisp->gimage), "destroy",
gimage_mask_shrink_callback, gdisp->gimage); gimage_mask_shrink_callback, gdisp->gimage);
} }
@ -1211,7 +1215,7 @@ gimage_mask_feather_callback (GtkWidget *w,
double radius_x; double radius_x;
double radius_y; double radius_y;
selection_feather_radius = *(float*) call_data; selection_feather_radius = *(double*) call_data;
g_free (call_data); g_free (call_data);
unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit"); unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit");
@ -1245,7 +1249,7 @@ gimage_mask_border_callback (GtkWidget *w,
double radius_x; double radius_x;
double radius_y; double radius_y;
selection_border_radius = (int) *(float*) call_data; selection_border_radius = (int) *(double*) call_data;
g_free (call_data); g_free (call_data);
unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit"); unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit");
@ -1279,7 +1283,7 @@ gimage_mask_grow_callback (GtkWidget *w,
double radius_x; double radius_x;
double radius_y; double radius_y;
selection_grow_pixels = (int) *(float*) call_data; selection_grow_pixels = (int) *(double*) call_data;
g_free (call_data); g_free (call_data);
unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit"); unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit");
@ -1313,7 +1317,7 @@ gimage_mask_shrink_callback (GtkWidget *w,
int radius_x; int radius_x;
int radius_y; int radius_y;
selection_shrink_pixels = (int) *(float*) call_data; selection_shrink_pixels = (int) *(double*) call_data;
g_free (call_data); g_free (call_data);
unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit"); unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit");

View File

@ -295,8 +295,9 @@ file_new_confirm_dialog (NewImageValues *vals)
vals->confirm_dlg = gtk_dialog_new (); vals->confirm_dlg = gtk_dialog_new ();
gtk_window_set_wmclass (GTK_WINDOW (vals->confirm_dlg), gtk_window_set_wmclass (GTK_WINDOW (vals->confirm_dlg),
"really_create", "Gimp"); "confirm_size", "Gimp");
gtk_window_set_title (GTK_WINDOW (vals->confirm_dlg), _("Confirm Image Size")); gtk_window_set_title (GTK_WINDOW (vals->confirm_dlg), _("Confirm Image Size"));
gtk_window_set_policy (GTK_WINDOW (vals->confirm_dlg), FALSE, FALSE, FALSE);
gtk_window_position (GTK_WINDOW (vals->confirm_dlg), GTK_WIN_POS_MOUSE); gtk_window_position (GTK_WINDOW (vals->confirm_dlg), GTK_WIN_POS_MOUSE);
/* Handle the wm close signal */ /* Handle the wm close signal */
@ -480,7 +481,6 @@ file_new_cmd_callback (GtkWidget *widget,
N_("RGB"), N_("RGB"),
N_("Grayscale") N_("Grayscale")
}; };
static gchar *fill_type_names[] = static gchar *fill_type_names[] =
{ {
N_("Foreground"), N_("Foreground"),

View File

@ -365,9 +365,10 @@ select_border_cmd_callback (GtkWidget *widget,
query_size_box (_("Border Selection"), _("Border selection by:"), query_size_box (_("Border Selection"), _("Border selection by:"),
selection_border_radius, 1, 32767, 0, selection_border_radius, 1, 32767, 0,
gdisp->dot_for_dot ? UNIT_PIXEL : gdisp->gimage->unit, gdisp->gimage->unit,
MIN (gdisp->gimage->xresolution, MIN (gdisp->gimage->xresolution,
gdisp->gimage->yresolution), gdisp->gimage->yresolution),
gdisp->dot_for_dot,
GTK_OBJECT (gdisp->gimage), "destroy", GTK_OBJECT (gdisp->gimage), "destroy",
gimage_mask_border_callback, gdisp->gimage); gimage_mask_border_callback, gdisp->gimage);
} }
@ -382,9 +383,10 @@ select_feather_cmd_callback (GtkWidget *widget,
query_size_box (_("Feather Selection"), _("Feather selection by:"), query_size_box (_("Feather Selection"), _("Feather selection by:"),
selection_feather_radius, 0, 32767, 3, selection_feather_radius, 0, 32767, 3,
gdisp->dot_for_dot ? UNIT_PIXEL : gdisp->gimage->unit, gdisp->gimage->unit,
MIN (gdisp->gimage->xresolution, MIN (gdisp->gimage->xresolution,
gdisp->gimage->yresolution), gdisp->gimage->yresolution),
gdisp->dot_for_dot,
GTK_OBJECT (gdisp->gimage), "destroy", GTK_OBJECT (gdisp->gimage), "destroy",
gimage_mask_feather_callback, gdisp->gimage); gimage_mask_feather_callback, gdisp->gimage);
} }
@ -399,9 +401,10 @@ select_grow_cmd_callback (GtkWidget *widget,
query_size_box (_("Grow Selection"), _("Grow selection by:"), query_size_box (_("Grow Selection"), _("Grow selection by:"),
selection_grow_pixels, 1, 32767, 0, selection_grow_pixels, 1, 32767, 0,
gdisp->dot_for_dot ? UNIT_PIXEL : gdisp->gimage->unit, gdisp->gimage->unit,
MIN (gdisp->gimage->xresolution, MIN (gdisp->gimage->xresolution,
gdisp->gimage->yresolution), gdisp->gimage->yresolution),
gdisp->dot_for_dot,
GTK_OBJECT (gdisp->gimage), "destroy", GTK_OBJECT (gdisp->gimage), "destroy",
gimage_mask_grow_callback, gdisp->gimage); gimage_mask_grow_callback, gdisp->gimage);
} }
@ -416,9 +419,10 @@ select_shrink_cmd_callback (GtkWidget *widget,
query_size_box (_("Shrink Selection"), _("Shrink selection by:"), query_size_box (_("Shrink Selection"), _("Shrink selection by:"),
selection_shrink_pixels, 1, 32767, 0, selection_shrink_pixels, 1, 32767, 0,
gdisp->dot_for_dot ? UNIT_PIXEL : gdisp->gimage->unit, gdisp->gimage->unit,
MIN (gdisp->gimage->xresolution, MIN (gdisp->gimage->xresolution,
gdisp->gimage->yresolution), gdisp->gimage->yresolution),
gdisp->dot_for_dot,
GTK_OBJECT (gdisp->gimage), "destroy", GTK_OBJECT (gdisp->gimage), "destroy",
gimage_mask_shrink_callback, gdisp->gimage); gimage_mask_shrink_callback, gdisp->gimage);
} }
@ -1211,7 +1215,7 @@ gimage_mask_feather_callback (GtkWidget *w,
double radius_x; double radius_x;
double radius_y; double radius_y;
selection_feather_radius = *(float*) call_data; selection_feather_radius = *(double*) call_data;
g_free (call_data); g_free (call_data);
unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit"); unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit");
@ -1245,7 +1249,7 @@ gimage_mask_border_callback (GtkWidget *w,
double radius_x; double radius_x;
double radius_y; double radius_y;
selection_border_radius = (int) *(float*) call_data; selection_border_radius = (int) *(double*) call_data;
g_free (call_data); g_free (call_data);
unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit"); unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit");
@ -1279,7 +1283,7 @@ gimage_mask_grow_callback (GtkWidget *w,
double radius_x; double radius_x;
double radius_y; double radius_y;
selection_grow_pixels = (int) *(float*) call_data; selection_grow_pixels = (int) *(double*) call_data;
g_free (call_data); g_free (call_data);
unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit"); unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit");
@ -1313,7 +1317,7 @@ gimage_mask_shrink_callback (GtkWidget *w,
int radius_x; int radius_x;
int radius_y; int radius_y;
selection_shrink_pixels = (int) *(float*) call_data; selection_shrink_pixels = (int) *(double*) call_data;
g_free (call_data); g_free (call_data);
unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit"); unit = (GUnit) gtk_object_get_data (GTK_OBJECT (w), "size_query_unit");

View File

@ -200,7 +200,7 @@ info_window_update (InfoDialog *info_win,
GDisplay *gdisp; GDisplay *gdisp;
InfoWinData *iwd; InfoWinData *iwd;
int type; int type;
gfloat unit_factor; gdouble unit_factor;
gint unit_digits; gint unit_digits;
gchar format_buf[32]; gchar format_buf[32];

View File

@ -3129,11 +3129,6 @@ new_layer_query_fill_type_callback (GtkWidget *w,
static void static void
layers_dialog_new_layer_query (GimpImage* gimage) layers_dialog_new_layer_query (GimpImage* gimage)
{ {
static ActionAreaItem action_items[2] =
{
{ N_("OK"), new_layer_query_ok_callback, NULL, NULL },
{ N_("Cancel"), new_layer_query_cancel_callback, NULL, NULL }
};
NewLayerOptions *options; NewLayerOptions *options;
GtkWidget *vbox; GtkWidget *vbox;
GtkWidget *table; GtkWidget *table;
@ -3145,13 +3140,18 @@ layers_dialog_new_layer_query (GimpImage* gimage)
GtkWidget *radio_button; GtkWidget *radio_button;
GSList *group = NULL; GSList *group = NULL;
int i; int i;
char *button_names[4] = char *button_names[] =
{ {
N_("Foreground"), N_("Foreground"),
N_("Background"), N_("Background"),
N_("White"), N_("White"),
N_("Transparent") N_("Transparent")
}; };
static ActionAreaItem action_items[] =
{
{ N_("OK"), new_layer_query_ok_callback, NULL, NULL },
{ N_("Cancel"), new_layer_query_cancel_callback, NULL, NULL }
};
/* the new options structure */ /* the new options structure */
options = (NewLayerOptions *) g_malloc (sizeof (NewLayerOptions)); options = (NewLayerOptions *) g_malloc (sizeof (NewLayerOptions));
@ -3160,7 +3160,8 @@ layers_dialog_new_layer_query (GimpImage* gimage)
/* the dialog */ /* the dialog */
options->query_box = gtk_dialog_new (); options->query_box = gtk_dialog_new ();
gtk_window_set_wmclass (GTK_WINDOW (options->query_box), "new_layer_options", "Gimp"); gtk_window_set_wmclass (GTK_WINDOW (options->query_box),
"new_layer_options", "Gimp");
gtk_window_set_title (GTK_WINDOW (options->query_box), _("New Layer Options")); gtk_window_set_title (GTK_WINDOW (options->query_box), _("New Layer Options"));
gtk_window_position (GTK_WINDOW (options->query_box), GTK_WIN_POS_MOUSE); gtk_window_position (GTK_WINDOW (options->query_box), GTK_WIN_POS_MOUSE);
@ -3215,7 +3216,7 @@ layers_dialog_new_layer_query (GimpImage* gimage)
gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton), TRUE); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton), TRUE);
gtk_widget_set_usize (spinbutton, 75, 0); gtk_widget_set_usize (spinbutton, 75, 0);
options->size_se = gimp_size_entry_new (1, UNIT_PIXEL, "%a", options->size_se = gimp_size_entry_new (1, gimage->unit, "%a",
TRUE, TRUE, FALSE, 75, TRUE, TRUE, FALSE, 75,
GIMP_SIZE_ENTRY_UPDATE_SIZE); GIMP_SIZE_ENTRY_UPDATE_SIZE);
gimp_size_entry_add_field (GIMP_SIZE_ENTRY (options->size_se), gimp_size_entry_add_field (GIMP_SIZE_ENTRY (options->size_se),
@ -3249,6 +3250,8 @@ layers_dialog_new_layer_query (GimpImage* gimage)
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (options->size_se), 1, gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (options->size_se), 1,
gimage->height); gimage->height);
gimp_size_entry_set_unit (GIMP_SIZE_ENTRY (options->size_se), UNIT_PIXEL);
gtk_widget_show (table); gtk_widget_show (table);
/* the radio frame and box */ /* the radio frame and box */

View File

@ -33,6 +33,7 @@
#include "libgimp/gimpfileselection.h" #include "libgimp/gimpfileselection.h"
#include "libgimp/gimppatheditor.h" #include "libgimp/gimppatheditor.h"
#include "libgimp/gimpsizeentry.h" #include "libgimp/gimpsizeentry.h"
#include "libgimp/gimplimits.h"
#include "libgimp/gimpintl.h" #include "libgimp/gimpintl.h"
/* preferences local functions */ /* preferences local functions */
@ -245,7 +246,8 @@ file_prefs_ok_callback (GtkWidget *widget,
default_units = old_default_units; default_units = old_default_units;
return; return;
} }
if (default_xresolution < 1e-5 || default_yresolution < 1e-5) if (default_xresolution < GIMP_MIN_RESOLUTION ||
default_yresolution < GIMP_MIN_RESOLUTION)
{ {
g_message (_("Error: default resolution must not be zero.")); g_message (_("Error: default resolution must not be zero."));
default_xresolution = old_default_xresolution; default_xresolution = old_default_xresolution;
@ -259,7 +261,8 @@ file_prefs_ok_callback (GtkWidget *widget,
default_resolution_units = old_default_resolution_units; default_resolution_units = old_default_resolution_units;
return; return;
} }
if (monitor_xres < 1e-5 || monitor_yres < 1e-5) if (monitor_xres < GIMP_MIN_RESOLUTION ||
monitor_yres < GIMP_MIN_RESOLUTION)
{ {
g_message (_("Error: Monitor resolution must not be zero.")); g_message (_("Error: Monitor resolution must not be zero."));
monitor_xres = old_monitor_xres; monitor_xres = old_monitor_xres;
@ -388,9 +391,9 @@ file_prefs_save_callback (GtkWidget *widget,
update = g_list_append (update, "default-image-size"); update = g_list_append (update, "default-image-size");
if (default_units != old_default_units) if (default_units != old_default_units)
update = g_list_append (update, "default-units"); update = g_list_append (update, "default-units");
if (ABS(default_xresolution - old_default_xresolution) > 1e-5) if (ABS(default_xresolution - old_default_xresolution) > GIMP_MIN_RESOLUTION)
update = g_list_append (update, "default-xresolution"); update = g_list_append (update, "default-xresolution");
if (ABS(default_yresolution - old_default_yresolution) > 1e-5) if (ABS(default_yresolution - old_default_yresolution) > GIMP_MIN_RESOLUTION)
update = g_list_append (update, "default-yresolution"); update = g_list_append (update, "default-yresolution");
if (default_resolution_units != old_default_resolution_units) if (default_resolution_units != old_default_resolution_units)
update = g_list_append (update, "default-resolution-units"); update = g_list_append (update, "default-resolution-units");
@ -405,10 +408,10 @@ file_prefs_save_callback (GtkWidget *widget,
if (transparency_size != old_transparency_size) if (transparency_size != old_transparency_size)
update = g_list_append (update, "transparency-size"); update = g_list_append (update, "transparency-size");
if (using_xserver_resolution != old_using_xserver_resolution || if (using_xserver_resolution != old_using_xserver_resolution ||
ABS(monitor_xres - old_monitor_xres) > 1e-5) ABS(monitor_xres - old_monitor_xres) > GIMP_MIN_RESOLUTION)
update = g_list_append (update, "monitor-xresolution"); update = g_list_append (update, "monitor-xresolution");
if (using_xserver_resolution != old_using_xserver_resolution || if (using_xserver_resolution != old_using_xserver_resolution ||
ABS(monitor_yres - old_monitor_yres) > 1e-5) ABS(monitor_yres - old_monitor_yres) > GIMP_MIN_RESOLUTION)
update = g_list_append (update, "monitor-yresolution"); update = g_list_append (update, "monitor-yresolution");
if (edit_num_processors != num_processors) if (edit_num_processors != num_processors)
update = g_list_append (update, "num-processors"); update = g_list_append (update, "num-processors");
@ -510,13 +513,7 @@ file_prefs_save_callback (GtkWidget *widget,
save_gimprc (&update, &remove); save_gimprc (&update, &remove);
if (using_xserver_resolution) if (using_xserver_resolution)
{ gdisplay_xserver_resolution (&monitor_xres, &monitor_yres);
gfloat xres, yres;
gdisplay_xserver_resolution (&xres, &yres);
monitor_xres = xres;
monitor_yres = yres;
}
/* Restore variables which must not change */ /* Restore variables which must not change */
stingy_memory_use = save_stingy_memory_use; stingy_memory_use = save_stingy_memory_use;
@ -863,21 +860,17 @@ file_prefs_res_source_callback (GtkWidget *widget,
if (GTK_TOGGLE_BUTTON (widget)->active) if (GTK_TOGGLE_BUTTON (widget)->active)
{ {
gfloat xres, yres; gdisplay_xserver_resolution (&monitor_xres, &monitor_yres);
gdisplay_xserver_resolution (&xres, &yres);
monitor_xres = xres;
monitor_yres = yres;
using_xserver_resolution = TRUE; using_xserver_resolution = TRUE;
} }
else else
{ {
if (monitor_resolution_sizeentry) if (monitor_resolution_sizeentry)
{ {
monitor_xres = monitor_xres = gimp_size_entry_get_refval
gimp_size_entry_get_refval (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), 0); (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), 0);
monitor_yres = monitor_yres = gimp_size_entry_get_refval
gimp_size_entry_get_refval (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), 1); (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), 1);
} }
using_xserver_resolution = FALSE; using_xserver_resolution = FALSE;
} }
@ -1535,9 +1528,11 @@ file_pref_cmd_callback (GtkWidget *widget,
gimp_size_entry_set_resolution (GIMP_SIZE_ENTRY (default_size_sizeentry), gimp_size_entry_set_resolution (GIMP_SIZE_ENTRY (default_size_sizeentry),
1, default_yresolution, FALSE); 1, default_yresolution, FALSE);
gimp_size_entry_set_refval_boundaries gimp_size_entry_set_refval_boundaries
(GIMP_SIZE_ENTRY (default_size_sizeentry), 0, 1, 32767); (GIMP_SIZE_ENTRY (default_size_sizeentry), 0,
GIMP_MIN_IMAGE_SIZE, GIMP_MAX_IMAGE_SIZE);
gimp_size_entry_set_refval_boundaries gimp_size_entry_set_refval_boundaries
(GIMP_SIZE_ENTRY (default_size_sizeentry), 1, 1, 32767); (GIMP_SIZE_ENTRY (default_size_sizeentry), 1,
GIMP_MIN_IMAGE_SIZE, GIMP_MAX_IMAGE_SIZE);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (default_size_sizeentry), 0, gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (default_size_sizeentry), 0,
default_width); default_width);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (default_size_sizeentry), 1, gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (default_size_sizeentry), 1,
@ -1572,9 +1567,11 @@ file_pref_cmd_callback (GtkWidget *widget,
FALSE, FALSE, TRUE, 75, FALSE, FALSE, TRUE, 75,
GIMP_SIZE_ENTRY_UPDATE_RESOLUTION); GIMP_SIZE_ENTRY_UPDATE_RESOLUTION);
gimp_size_entry_set_refval_boundaries gimp_size_entry_set_refval_boundaries
(GIMP_SIZE_ENTRY (default_resolution_sizeentry), 0, 1, 32767); (GIMP_SIZE_ENTRY (default_resolution_sizeentry), 0,
GIMP_MIN_RESOLUTION, GIMP_MAX_RESOLUTION);
gimp_size_entry_set_refval_boundaries gimp_size_entry_set_refval_boundaries
(GIMP_SIZE_ENTRY (default_resolution_sizeentry), 1, 1, 32767); (GIMP_SIZE_ENTRY (default_resolution_sizeentry), 1,
GIMP_MIN_RESOLUTION, GIMP_MAX_RESOLUTION);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (default_resolution_sizeentry), gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (default_resolution_sizeentry),
0, default_xresolution); 0, default_xresolution);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (default_resolution_sizeentry), gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (default_resolution_sizeentry),
@ -1603,7 +1600,7 @@ file_pref_cmd_callback (GtkWidget *widget,
gtk_table_attach_defaults (GTK_TABLE (default_resolution_sizeentry), gtk_table_attach_defaults (GTK_TABLE (default_resolution_sizeentry),
button, 1, 3, 3, 4); button, 1, 3, 3, 4);
if (ABS (default_xresolution - default_yresolution) < 1e-5) if (ABS (default_xresolution - default_yresolution) < GIMP_MIN_RESOLUTION)
gimp_chain_button_set_active (GIMP_CHAIN_BUTTON (button), TRUE); gimp_chain_button_set_active (GIMP_CHAIN_BUTTON (button), TRUE);
gtk_widget_show (button); gtk_widget_show (button);
@ -2205,7 +2202,7 @@ file_pref_cmd_callback (GtkWidget *widget,
gtk_widget_show (button); gtk_widget_show (button);
{ {
gfloat xres, yres; gdouble xres, yres;
gchar buf[80]; gchar buf[80];
gdisplay_xserver_resolution (&xres, &yres); gdisplay_xserver_resolution (&xres, &yres);
@ -2234,9 +2231,11 @@ file_pref_cmd_callback (GtkWidget *widget,
gimp_size_entry_new (2, UNIT_INCH, "Pixels/%s", FALSE, FALSE, TRUE, 75, gimp_size_entry_new (2, UNIT_INCH, "Pixels/%s", FALSE, FALSE, TRUE, 75,
GIMP_SIZE_ENTRY_UPDATE_RESOLUTION); GIMP_SIZE_ENTRY_UPDATE_RESOLUTION);
gimp_size_entry_set_refval_boundaries gimp_size_entry_set_refval_boundaries
(GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), 0, 1, 32767); (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), 0,
GIMP_MIN_RESOLUTION, GIMP_MAX_RESOLUTION);
gimp_size_entry_set_refval_boundaries gimp_size_entry_set_refval_boundaries
(GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), 1, 1, 32767); (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), 1,
GIMP_MIN_RESOLUTION, GIMP_MAX_RESOLUTION);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry),
0, monitor_xres); 0, monitor_xres);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry),
@ -2258,7 +2257,7 @@ file_pref_cmd_callback (GtkWidget *widget,
gtk_container_add (GTK_CONTAINER (abox), monitor_resolution_sizeentry); gtk_container_add (GTK_CONTAINER (abox), monitor_resolution_sizeentry);
gtk_widget_show (monitor_resolution_sizeentry); gtk_widget_show (monitor_resolution_sizeentry);
if (ABS (monitor_xres - monitor_yres) < 1e-5) if (ABS (monitor_xres - monitor_yres) < GIMP_MIN_RESOLUTION)
gimp_chain_button_set_active (GIMP_CHAIN_BUTTON (button), TRUE); gimp_chain_button_set_active (GIMP_CHAIN_BUTTON (button), TRUE);
gtk_table_attach_defaults (GTK_TABLE (monitor_resolution_sizeentry), gtk_table_attach_defaults (GTK_TABLE (monitor_resolution_sizeentry),
button, 1, 3, 3, 4); button, 1, 3, 3, 4);

View File

@ -58,7 +58,7 @@ struct _ResizePrivate
double ratio; double ratio;
int old_width, old_height; int old_width, old_height;
int old_res_x, old_res_y; double old_res_x, old_res_y;
int area_width, area_height; int area_width, area_height;
int start_x, start_y; int start_x, start_y;
int orig_x, orig_y; int orig_x, orig_y;
@ -82,10 +82,10 @@ Resize *
resize_widget_new (ResizeType type, resize_widget_new (ResizeType type,
ResizeTarget target, ResizeTarget target,
GtkObject *object, GtkObject *object,
int width, gint width,
int height, gint height,
float resolution_x, gdouble resolution_x,
float resolution_y, gdouble resolution_y,
GUnit unit, GUnit unit,
gboolean dot_for_dot, gboolean dot_for_dot,
GtkSignalFunc ok_cb, GtkSignalFunc ok_cb,
@ -281,8 +281,7 @@ resize_widget_new (ResizeType type,
gtk_widget_set_usize (spinbutton, 75, 0); gtk_widget_set_usize (spinbutton, 75, 0);
private->size_se = private->size_se =
gimp_size_entry_new (1, dot_for_dot ? UNIT_PIXEL : unit, "%a", gimp_size_entry_new (1, unit, "%a", TRUE, TRUE, FALSE, 75,
TRUE, TRUE, FALSE, 75,
GIMP_SIZE_ENTRY_UPDATE_SIZE); GIMP_SIZE_ENTRY_UPDATE_SIZE);
gimp_size_entry_add_field (GIMP_SIZE_ENTRY (private->size_se), gimp_size_entry_add_field (GIMP_SIZE_ENTRY (private->size_se),
GTK_SPIN_BUTTON (spinbutton), NULL); GTK_SPIN_BUTTON (spinbutton), NULL);
@ -311,6 +310,9 @@ resize_widget_new (ResizeType type,
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (private->size_se), 0, width); gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (private->size_se), 0, width);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (private->size_se), 1, height); gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (private->size_se), 1, height);
if (dot_for_dot)
gimp_size_entry_set_unit (GIMP_SIZE_ENTRY (private->size_se), UNIT_PIXEL);
gtk_signal_connect (GTK_OBJECT (private->size_se), "value_changed", gtk_signal_connect (GTK_OBJECT (private->size_se), "value_changed",
(GtkSignalFunc) size_callback, (GtkSignalFunc) size_callback,
resize); resize);
@ -428,8 +430,7 @@ resize_widget_new (ResizeType type,
gtk_widget_set_usize (spinbutton, 75, 0); gtk_widget_set_usize (spinbutton, 75, 0);
private->offset_se = private->offset_se =
gimp_size_entry_new (1, dot_for_dot ? UNIT_PIXEL : unit, "%a", gimp_size_entry_new (1, unit, "%a", TRUE, FALSE, FALSE, 75,
TRUE, FALSE, FALSE, 75,
GIMP_SIZE_ENTRY_UPDATE_SIZE); GIMP_SIZE_ENTRY_UPDATE_SIZE);
gimp_size_entry_add_field (GIMP_SIZE_ENTRY (private->offset_se), gimp_size_entry_add_field (GIMP_SIZE_ENTRY (private->offset_se),
GTK_SPIN_BUTTON (spinbutton), NULL); GTK_SPIN_BUTTON (spinbutton), NULL);
@ -453,6 +454,10 @@ resize_widget_new (ResizeType type,
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (private->offset_se), 0, 0); gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (private->offset_se), 0, 0);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (private->offset_se), 1, 0); gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (private->offset_se), 1, 0);
if (dot_for_dot)
gimp_size_entry_set_unit (GIMP_SIZE_ENTRY (private->offset_se),
UNIT_PIXEL);
gtk_signal_connect (GTK_OBJECT (private->offset_se), gtk_signal_connect (GTK_OBJECT (private->offset_se),
"value_changed", (GtkSignalFunc) offset_update, "value_changed", (GtkSignalFunc) offset_update,
resize); resize);

View File

@ -45,8 +45,8 @@ struct _Resize
int width; int width;
int height; int height;
float resolution_x; double resolution_x;
float resolution_y; double resolution_y;
GUnit unit; GUnit unit;
double ratio_x; double ratio_x;
@ -65,10 +65,10 @@ struct _Resize
Resize * resize_widget_new (ResizeType type, Resize * resize_widget_new (ResizeType type,
ResizeTarget target, ResizeTarget target,
GtkObject * object, GtkObject * object,
int width, gint width,
int height, gint height,
float resolution_x, gdouble resolution_x,
float resolution_y, gdouble resolution_y,
GUnit unit, GUnit unit,
gboolean dot_for_dot, gboolean dot_for_dot,
GtkSignalFunc ok_cb, GtkSignalFunc ok_cb,

View File

@ -200,7 +200,7 @@ info_window_update (InfoDialog *info_win,
GDisplay *gdisp; GDisplay *gdisp;
InfoWinData *iwd; InfoWinData *iwd;
int type; int type;
gfloat unit_factor; gdouble unit_factor;
gint unit_digits; gint unit_digits;
gchar format_buf[32]; gchar format_buf[32];

View File

@ -790,7 +790,7 @@ create_display_shell (GDisplay* gdisp,
/* /*
* String, integer, float and size query boxes * String, integer, double and size query boxes
*/ */
typedef struct _QueryBox QueryBox; typedef struct _QueryBox QueryBox;
@ -812,7 +812,7 @@ static gint query_box_delete_callback (GtkWidget *, GdkEvent *, gpointer);
static void query_box_cancel_callback (GtkWidget *, gpointer); static void query_box_cancel_callback (GtkWidget *, gpointer);
static void string_query_box_ok_callback (GtkWidget *, gpointer); static void string_query_box_ok_callback (GtkWidget *, gpointer);
static void int_query_box_ok_callback (GtkWidget *, gpointer); static void int_query_box_ok_callback (GtkWidget *, gpointer);
static void float_query_box_ok_callback (GtkWidget *, gpointer); static void double_query_box_ok_callback (GtkWidget *, gpointer);
static void size_query_box_ok_callback (GtkWidget *, gpointer); static void size_query_box_ok_callback (GtkWidget *, gpointer);
/* create a generic query box without any entry widget /* create a generic query box without any entry widget
@ -830,8 +830,12 @@ create_query_box (gchar *title,
GtkWidget *qbox; GtkWidget *qbox;
GtkWidget *vbox; GtkWidget *vbox;
GtkWidget *label; GtkWidget *label;
GtkWidget *ok_button;
GtkWidget *button; static ActionAreaItem action_items[] =
{
{ N_("OK"), (ActionCallback) NULL, NULL, NULL },
{ N_("Cancel"), (ActionCallback) query_box_cancel_callback, NULL, NULL }
};
query_box = (QueryBox *) g_malloc (sizeof (QueryBox)); query_box = (QueryBox *) g_malloc (sizeof (QueryBox));
@ -852,23 +856,9 @@ create_query_box (gchar *title,
else else
object = NULL; object = NULL;
gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (qbox)->action_area), 2); /* The action area */
action_items[1].user_data = query_box;
ok_button = gtk_button_new_with_label (_("OK")); build_action_area (GTK_DIALOG (qbox), action_items, 2, 0);
GTK_WIDGET_SET_FLAGS (ok_button, GTK_CAN_DEFAULT);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (qbox)->action_area), ok_button,
TRUE, TRUE, 0);
gtk_widget_grab_default (ok_button);
gtk_widget_show (ok_button);
button = gtk_button_new_with_label (_("Cancel"));
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
gtk_signal_connect (GTK_OBJECT (button), "clicked",
(GtkSignalFunc) query_box_cancel_callback,
query_box);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (qbox)->action_area), button,
TRUE, TRUE, 0);
gtk_widget_show (button);
vbox = gtk_vbox_new (FALSE, 1); vbox = gtk_vbox_new (FALSE, 1);
gtk_container_set_border_width (GTK_CONTAINER (vbox), 2); gtk_container_set_border_width (GTK_CONTAINER (vbox), 2);
@ -882,7 +872,7 @@ create_query_box (gchar *title,
query_box->qbox = qbox; query_box->qbox = qbox;
query_box->vbox = vbox; query_box->vbox = vbox;
query_box->entry = NULL; query_box->entry = NULL;
query_box->ok_button = ok_button; query_box->ok_button = action_items[0].widget;
query_box->object = object; query_box->object = object;
query_box->callback = callback; query_box->callback = callback;
query_box->data = data; query_box->data = data;
@ -958,16 +948,16 @@ query_int_box (gchar *title,
} }
GtkWidget * GtkWidget *
query_float_box (gchar *title, query_double_box (gchar *title,
gchar *message, gchar *message,
gfloat initial, gdouble initial,
gfloat lower, gdouble lower,
gfloat upper, gdouble upper,
gint digits, gint digits,
GtkObject *object, GtkObject *object,
gchar *signal, gchar *signal,
QueryFunc callback, QueryFunc callback,
gpointer data) gpointer data)
{ {
QueryBox *query_box; QueryBox *query_box;
GtkAdjustment* adjustment; GtkAdjustment* adjustment;
@ -976,7 +966,7 @@ query_float_box (gchar *title,
query_box = create_query_box (title, message, object, signal, callback, data); query_box = create_query_box (title, message, object, signal, callback, data);
gtk_signal_connect (GTK_OBJECT (query_box->ok_button), "clicked", gtk_signal_connect (GTK_OBJECT (query_box->ok_button), "clicked",
(GtkSignalFunc) float_query_box_ok_callback, (GtkSignalFunc) double_query_box_ok_callback,
query_box); query_box);
adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (initial, lower, upper, adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (initial, lower, upper,
@ -996,12 +986,13 @@ query_float_box (gchar *title,
GtkWidget * GtkWidget *
query_size_box (gchar *title, query_size_box (gchar *title,
gchar *message, gchar *message,
gfloat initial, gdouble initial,
gfloat lower, gdouble lower,
gfloat upper, gdouble upper,
gint digits, gint digits,
GUnit unit, GUnit unit,
gfloat resolution, gdouble resolution,
gint dot_for_dot,
GtkObject *object, GtkObject *object,
gchar *signal, gchar *signal,
QueryFunc callback, QueryFunc callback,
@ -1025,6 +1016,9 @@ query_size_box (gchar *title,
lower, upper); lower, upper);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (sizeentry), 0, initial); gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (sizeentry), 0, initial);
if (dot_for_dot)
gimp_size_entry_set_unit (GIMP_SIZE_ENTRY (sizeentry), UNIT_PIXEL);
gtk_box_pack_start (GTK_BOX (query_box->vbox), sizeentry, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (query_box->vbox), sizeentry, TRUE, TRUE, 0);
gimp_size_entry_grab_focus (GIMP_SIZE_ENTRY (sizeentry)); gimp_size_entry_grab_focus (GIMP_SIZE_ENTRY (sizeentry));
gtk_widget_show (sizeentry); gtk_widget_show (sizeentry);
@ -1106,7 +1100,7 @@ int_query_box_ok_callback (GtkWidget *w,
/* Get the spinbutton data */ /* Get the spinbutton data */
integer_value = g_malloc (sizeof (gint)); integer_value = g_malloc (sizeof (gint));
*integer_value = *integer_value =
gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(query_box->entry)); gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (query_box->entry));
/* Call the user defined callback */ /* Call the user defined callback */
(* query_box->callback) (w, query_box->data, (gpointer) integer_value); (* query_box->callback) (w, query_box->data, (gpointer) integer_value);
@ -1118,11 +1112,11 @@ int_query_box_ok_callback (GtkWidget *w,
} }
static void static void
float_query_box_ok_callback (GtkWidget *w, double_query_box_ok_callback (GtkWidget *w,
gpointer client_data) gpointer client_data)
{ {
QueryBox *query_box; QueryBox *query_box;
gfloat *float_value; gdouble *double_value;
query_box = (QueryBox *) client_data; query_box = (QueryBox *) client_data;
@ -1131,12 +1125,12 @@ float_query_box_ok_callback (GtkWidget *w,
gtk_signal_disconnect_by_data (query_box->object, query_box); gtk_signal_disconnect_by_data (query_box->object, query_box);
/* Get the spinbutton data */ /* Get the spinbutton data */
float_value = g_malloc (sizeof (gfloat)); double_value = g_malloc (sizeof (gdouble));
*float_value = *double_value =
gtk_spin_button_get_value_as_float(GTK_SPIN_BUTTON(query_box->entry)); gtk_spin_button_get_value_as_float (GTK_SPIN_BUTTON (query_box->entry));
/* Call the user defined callback */ /* Call the user defined callback */
(* query_box->callback) (w, query_box->data, (gpointer) float_value); (* query_box->callback) (w, query_box->data, (gpointer) double_value);
/* Destroy the box */ /* Destroy the box */
gtk_widget_destroy (query_box->qbox); gtk_widget_destroy (query_box->qbox);
@ -1149,7 +1143,7 @@ size_query_box_ok_callback (GtkWidget *w,
gpointer client_data) gpointer client_data)
{ {
QueryBox *query_box; QueryBox *query_box;
gfloat *float_value; gdouble *double_value;
query_box = (QueryBox *) client_data; query_box = (QueryBox *) client_data;
@ -1158,8 +1152,8 @@ size_query_box_ok_callback (GtkWidget *w,
gtk_signal_disconnect_by_data (query_box->object, query_box); gtk_signal_disconnect_by_data (query_box->object, query_box);
/* Get the sizeentry data */ /* Get the sizeentry data */
float_value = g_malloc (sizeof (gfloat)); double_value = g_malloc (sizeof (gdouble));
*float_value = *double_value =
gimp_size_entry_get_refval (GIMP_SIZE_ENTRY (query_box->entry), 0); gimp_size_entry_get_refval (GIMP_SIZE_ENTRY (query_box->entry), 0);
/* Pass the selected unit to the callback */ /* Pass the selected unit to the callback */
@ -1168,7 +1162,7 @@ size_query_box_ok_callback (GtkWidget *w,
(gpointer) gimp_size_entry_get_unit (GIMP_SIZE_ENTRY (query_box->entry))); (gpointer) gimp_size_entry_get_unit (GIMP_SIZE_ENTRY (query_box->entry)));
/* Call the user defined callback */ /* Call the user defined callback */
(* query_box->callback) (w, query_box->data, (gpointer) float_value); (* query_box->callback) (w, query_box->data, (gpointer) double_value);
/* Destroy the box */ /* Destroy the box */
gtk_widget_destroy (query_box->qbox); gtk_widget_destroy (query_box->qbox);
@ -1217,7 +1211,7 @@ message_box (char *message,
gtk_window_set_wmclass (GTK_WINDOW (mbox), "gimp_message", "Gimp"); gtk_window_set_wmclass (GTK_WINDOW (mbox), "gimp_message", "Gimp");
gtk_window_set_title (GTK_WINDOW (mbox), _("GIMP Message")); gtk_window_set_title (GTK_WINDOW (mbox), _("GIMP Message"));
gtk_window_position (GTK_WINDOW (mbox), GTK_WIN_POS_MOUSE); gtk_window_position (GTK_WINDOW (mbox), GTK_WIN_POS_MOUSE);
gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (mbox)->action_area), 2);
gtk_signal_connect (GTK_OBJECT (mbox), "delete_event", gtk_signal_connect (GTK_OBJECT (mbox), "delete_event",
GTK_SIGNAL_FUNC (message_box_delete_callback), GTK_SIGNAL_FUNC (message_box_delete_callback),
msg_box); msg_box);

View File

@ -77,11 +77,11 @@ GtkWidget * query_int_box (gchar *title,
gchar *signal, gchar *signal,
QueryFunc callback, QueryFunc callback,
gpointer data); gpointer data);
GtkWidget * query_float_box (gchar *title, GtkWidget * query_double_box (gchar *title,
gchar *message, gchar *message,
gfloat initial, gdouble initial,
gfloat lower, gdouble lower,
gfloat upper, gdouble upper,
gint digits, gint digits,
GtkObject *object, GtkObject *object,
gchar *signal, gchar *signal,
@ -89,12 +89,13 @@ GtkWidget * query_float_box (gchar *title,
gpointer data); gpointer data);
GtkWidget * query_size_box (gchar *title, GtkWidget * query_size_box (gchar *title,
gchar *message, gchar *message,
gfloat initial, gdouble initial,
gfloat lower, gdouble lower,
gfloat upper, gdouble upper,
gint digits, gint digits,
GUnit unit, GUnit unit,
gfloat resolution, gdouble resolution,
gint dot_for_dot,
GtkObject *object, GtkObject *object,
gchar *signal, gchar *signal,
QueryFunc callback, QueryFunc callback,

View File

@ -3129,11 +3129,6 @@ new_layer_query_fill_type_callback (GtkWidget *w,
static void static void
layers_dialog_new_layer_query (GimpImage* gimage) layers_dialog_new_layer_query (GimpImage* gimage)
{ {
static ActionAreaItem action_items[2] =
{
{ N_("OK"), new_layer_query_ok_callback, NULL, NULL },
{ N_("Cancel"), new_layer_query_cancel_callback, NULL, NULL }
};
NewLayerOptions *options; NewLayerOptions *options;
GtkWidget *vbox; GtkWidget *vbox;
GtkWidget *table; GtkWidget *table;
@ -3145,13 +3140,18 @@ layers_dialog_new_layer_query (GimpImage* gimage)
GtkWidget *radio_button; GtkWidget *radio_button;
GSList *group = NULL; GSList *group = NULL;
int i; int i;
char *button_names[4] = char *button_names[] =
{ {
N_("Foreground"), N_("Foreground"),
N_("Background"), N_("Background"),
N_("White"), N_("White"),
N_("Transparent") N_("Transparent")
}; };
static ActionAreaItem action_items[] =
{
{ N_("OK"), new_layer_query_ok_callback, NULL, NULL },
{ N_("Cancel"), new_layer_query_cancel_callback, NULL, NULL }
};
/* the new options structure */ /* the new options structure */
options = (NewLayerOptions *) g_malloc (sizeof (NewLayerOptions)); options = (NewLayerOptions *) g_malloc (sizeof (NewLayerOptions));
@ -3160,7 +3160,8 @@ layers_dialog_new_layer_query (GimpImage* gimage)
/* the dialog */ /* the dialog */
options->query_box = gtk_dialog_new (); options->query_box = gtk_dialog_new ();
gtk_window_set_wmclass (GTK_WINDOW (options->query_box), "new_layer_options", "Gimp"); gtk_window_set_wmclass (GTK_WINDOW (options->query_box),
"new_layer_options", "Gimp");
gtk_window_set_title (GTK_WINDOW (options->query_box), _("New Layer Options")); gtk_window_set_title (GTK_WINDOW (options->query_box), _("New Layer Options"));
gtk_window_position (GTK_WINDOW (options->query_box), GTK_WIN_POS_MOUSE); gtk_window_position (GTK_WINDOW (options->query_box), GTK_WIN_POS_MOUSE);
@ -3215,7 +3216,7 @@ layers_dialog_new_layer_query (GimpImage* gimage)
gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton), TRUE); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton), TRUE);
gtk_widget_set_usize (spinbutton, 75, 0); gtk_widget_set_usize (spinbutton, 75, 0);
options->size_se = gimp_size_entry_new (1, UNIT_PIXEL, "%a", options->size_se = gimp_size_entry_new (1, gimage->unit, "%a",
TRUE, TRUE, FALSE, 75, TRUE, TRUE, FALSE, 75,
GIMP_SIZE_ENTRY_UPDATE_SIZE); GIMP_SIZE_ENTRY_UPDATE_SIZE);
gimp_size_entry_add_field (GIMP_SIZE_ENTRY (options->size_se), gimp_size_entry_add_field (GIMP_SIZE_ENTRY (options->size_se),
@ -3249,6 +3250,8 @@ layers_dialog_new_layer_query (GimpImage* gimage)
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (options->size_se), 1, gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (options->size_se), 1,
gimage->height); gimage->height);
gimp_size_entry_set_unit (GIMP_SIZE_ENTRY (options->size_se), UNIT_PIXEL);
gtk_widget_show (table); gtk_widget_show (table);
/* the radio frame and box */ /* the radio frame and box */

View File

@ -33,6 +33,7 @@
#include "libgimp/gimpfileselection.h" #include "libgimp/gimpfileselection.h"
#include "libgimp/gimppatheditor.h" #include "libgimp/gimppatheditor.h"
#include "libgimp/gimpsizeentry.h" #include "libgimp/gimpsizeentry.h"
#include "libgimp/gimplimits.h"
#include "libgimp/gimpintl.h" #include "libgimp/gimpintl.h"
/* preferences local functions */ /* preferences local functions */
@ -245,7 +246,8 @@ file_prefs_ok_callback (GtkWidget *widget,
default_units = old_default_units; default_units = old_default_units;
return; return;
} }
if (default_xresolution < 1e-5 || default_yresolution < 1e-5) if (default_xresolution < GIMP_MIN_RESOLUTION ||
default_yresolution < GIMP_MIN_RESOLUTION)
{ {
g_message (_("Error: default resolution must not be zero.")); g_message (_("Error: default resolution must not be zero."));
default_xresolution = old_default_xresolution; default_xresolution = old_default_xresolution;
@ -259,7 +261,8 @@ file_prefs_ok_callback (GtkWidget *widget,
default_resolution_units = old_default_resolution_units; default_resolution_units = old_default_resolution_units;
return; return;
} }
if (monitor_xres < 1e-5 || monitor_yres < 1e-5) if (monitor_xres < GIMP_MIN_RESOLUTION ||
monitor_yres < GIMP_MIN_RESOLUTION)
{ {
g_message (_("Error: Monitor resolution must not be zero.")); g_message (_("Error: Monitor resolution must not be zero."));
monitor_xres = old_monitor_xres; monitor_xres = old_monitor_xres;
@ -388,9 +391,9 @@ file_prefs_save_callback (GtkWidget *widget,
update = g_list_append (update, "default-image-size"); update = g_list_append (update, "default-image-size");
if (default_units != old_default_units) if (default_units != old_default_units)
update = g_list_append (update, "default-units"); update = g_list_append (update, "default-units");
if (ABS(default_xresolution - old_default_xresolution) > 1e-5) if (ABS(default_xresolution - old_default_xresolution) > GIMP_MIN_RESOLUTION)
update = g_list_append (update, "default-xresolution"); update = g_list_append (update, "default-xresolution");
if (ABS(default_yresolution - old_default_yresolution) > 1e-5) if (ABS(default_yresolution - old_default_yresolution) > GIMP_MIN_RESOLUTION)
update = g_list_append (update, "default-yresolution"); update = g_list_append (update, "default-yresolution");
if (default_resolution_units != old_default_resolution_units) if (default_resolution_units != old_default_resolution_units)
update = g_list_append (update, "default-resolution-units"); update = g_list_append (update, "default-resolution-units");
@ -405,10 +408,10 @@ file_prefs_save_callback (GtkWidget *widget,
if (transparency_size != old_transparency_size) if (transparency_size != old_transparency_size)
update = g_list_append (update, "transparency-size"); update = g_list_append (update, "transparency-size");
if (using_xserver_resolution != old_using_xserver_resolution || if (using_xserver_resolution != old_using_xserver_resolution ||
ABS(monitor_xres - old_monitor_xres) > 1e-5) ABS(monitor_xres - old_monitor_xres) > GIMP_MIN_RESOLUTION)
update = g_list_append (update, "monitor-xresolution"); update = g_list_append (update, "monitor-xresolution");
if (using_xserver_resolution != old_using_xserver_resolution || if (using_xserver_resolution != old_using_xserver_resolution ||
ABS(monitor_yres - old_monitor_yres) > 1e-5) ABS(monitor_yres - old_monitor_yres) > GIMP_MIN_RESOLUTION)
update = g_list_append (update, "monitor-yresolution"); update = g_list_append (update, "monitor-yresolution");
if (edit_num_processors != num_processors) if (edit_num_processors != num_processors)
update = g_list_append (update, "num-processors"); update = g_list_append (update, "num-processors");
@ -510,13 +513,7 @@ file_prefs_save_callback (GtkWidget *widget,
save_gimprc (&update, &remove); save_gimprc (&update, &remove);
if (using_xserver_resolution) if (using_xserver_resolution)
{ gdisplay_xserver_resolution (&monitor_xres, &monitor_yres);
gfloat xres, yres;
gdisplay_xserver_resolution (&xres, &yres);
monitor_xres = xres;
monitor_yres = yres;
}
/* Restore variables which must not change */ /* Restore variables which must not change */
stingy_memory_use = save_stingy_memory_use; stingy_memory_use = save_stingy_memory_use;
@ -863,21 +860,17 @@ file_prefs_res_source_callback (GtkWidget *widget,
if (GTK_TOGGLE_BUTTON (widget)->active) if (GTK_TOGGLE_BUTTON (widget)->active)
{ {
gfloat xres, yres; gdisplay_xserver_resolution (&monitor_xres, &monitor_yres);
gdisplay_xserver_resolution (&xres, &yres);
monitor_xres = xres;
monitor_yres = yres;
using_xserver_resolution = TRUE; using_xserver_resolution = TRUE;
} }
else else
{ {
if (monitor_resolution_sizeentry) if (monitor_resolution_sizeentry)
{ {
monitor_xres = monitor_xres = gimp_size_entry_get_refval
gimp_size_entry_get_refval (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), 0); (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), 0);
monitor_yres = monitor_yres = gimp_size_entry_get_refval
gimp_size_entry_get_refval (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), 1); (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), 1);
} }
using_xserver_resolution = FALSE; using_xserver_resolution = FALSE;
} }
@ -1535,9 +1528,11 @@ file_pref_cmd_callback (GtkWidget *widget,
gimp_size_entry_set_resolution (GIMP_SIZE_ENTRY (default_size_sizeentry), gimp_size_entry_set_resolution (GIMP_SIZE_ENTRY (default_size_sizeentry),
1, default_yresolution, FALSE); 1, default_yresolution, FALSE);
gimp_size_entry_set_refval_boundaries gimp_size_entry_set_refval_boundaries
(GIMP_SIZE_ENTRY (default_size_sizeentry), 0, 1, 32767); (GIMP_SIZE_ENTRY (default_size_sizeentry), 0,
GIMP_MIN_IMAGE_SIZE, GIMP_MAX_IMAGE_SIZE);
gimp_size_entry_set_refval_boundaries gimp_size_entry_set_refval_boundaries
(GIMP_SIZE_ENTRY (default_size_sizeentry), 1, 1, 32767); (GIMP_SIZE_ENTRY (default_size_sizeentry), 1,
GIMP_MIN_IMAGE_SIZE, GIMP_MAX_IMAGE_SIZE);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (default_size_sizeentry), 0, gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (default_size_sizeentry), 0,
default_width); default_width);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (default_size_sizeentry), 1, gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (default_size_sizeentry), 1,
@ -1572,9 +1567,11 @@ file_pref_cmd_callback (GtkWidget *widget,
FALSE, FALSE, TRUE, 75, FALSE, FALSE, TRUE, 75,
GIMP_SIZE_ENTRY_UPDATE_RESOLUTION); GIMP_SIZE_ENTRY_UPDATE_RESOLUTION);
gimp_size_entry_set_refval_boundaries gimp_size_entry_set_refval_boundaries
(GIMP_SIZE_ENTRY (default_resolution_sizeentry), 0, 1, 32767); (GIMP_SIZE_ENTRY (default_resolution_sizeentry), 0,
GIMP_MIN_RESOLUTION, GIMP_MAX_RESOLUTION);
gimp_size_entry_set_refval_boundaries gimp_size_entry_set_refval_boundaries
(GIMP_SIZE_ENTRY (default_resolution_sizeentry), 1, 1, 32767); (GIMP_SIZE_ENTRY (default_resolution_sizeentry), 1,
GIMP_MIN_RESOLUTION, GIMP_MAX_RESOLUTION);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (default_resolution_sizeentry), gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (default_resolution_sizeentry),
0, default_xresolution); 0, default_xresolution);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (default_resolution_sizeentry), gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (default_resolution_sizeentry),
@ -1603,7 +1600,7 @@ file_pref_cmd_callback (GtkWidget *widget,
gtk_table_attach_defaults (GTK_TABLE (default_resolution_sizeentry), gtk_table_attach_defaults (GTK_TABLE (default_resolution_sizeentry),
button, 1, 3, 3, 4); button, 1, 3, 3, 4);
if (ABS (default_xresolution - default_yresolution) < 1e-5) if (ABS (default_xresolution - default_yresolution) < GIMP_MIN_RESOLUTION)
gimp_chain_button_set_active (GIMP_CHAIN_BUTTON (button), TRUE); gimp_chain_button_set_active (GIMP_CHAIN_BUTTON (button), TRUE);
gtk_widget_show (button); gtk_widget_show (button);
@ -2205,7 +2202,7 @@ file_pref_cmd_callback (GtkWidget *widget,
gtk_widget_show (button); gtk_widget_show (button);
{ {
gfloat xres, yres; gdouble xres, yres;
gchar buf[80]; gchar buf[80];
gdisplay_xserver_resolution (&xres, &yres); gdisplay_xserver_resolution (&xres, &yres);
@ -2234,9 +2231,11 @@ file_pref_cmd_callback (GtkWidget *widget,
gimp_size_entry_new (2, UNIT_INCH, "Pixels/%s", FALSE, FALSE, TRUE, 75, gimp_size_entry_new (2, UNIT_INCH, "Pixels/%s", FALSE, FALSE, TRUE, 75,
GIMP_SIZE_ENTRY_UPDATE_RESOLUTION); GIMP_SIZE_ENTRY_UPDATE_RESOLUTION);
gimp_size_entry_set_refval_boundaries gimp_size_entry_set_refval_boundaries
(GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), 0, 1, 32767); (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), 0,
GIMP_MIN_RESOLUTION, GIMP_MAX_RESOLUTION);
gimp_size_entry_set_refval_boundaries gimp_size_entry_set_refval_boundaries
(GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), 1, 1, 32767); (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), 1,
GIMP_MIN_RESOLUTION, GIMP_MAX_RESOLUTION);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry),
0, monitor_xres); 0, monitor_xres);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry), gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (monitor_resolution_sizeentry),
@ -2258,7 +2257,7 @@ file_pref_cmd_callback (GtkWidget *widget,
gtk_container_add (GTK_CONTAINER (abox), monitor_resolution_sizeentry); gtk_container_add (GTK_CONTAINER (abox), monitor_resolution_sizeentry);
gtk_widget_show (monitor_resolution_sizeentry); gtk_widget_show (monitor_resolution_sizeentry);
if (ABS (monitor_xres - monitor_yres) < 1e-5) if (ABS (monitor_xres - monitor_yres) < GIMP_MIN_RESOLUTION)
gimp_chain_button_set_active (GIMP_CHAIN_BUTTON (button), TRUE); gimp_chain_button_set_active (GIMP_CHAIN_BUTTON (button), TRUE);
gtk_table_attach_defaults (GTK_TABLE (monitor_resolution_sizeentry), gtk_table_attach_defaults (GTK_TABLE (monitor_resolution_sizeentry),
button, 1, 3, 3, 4); button, 1, 3, 3, 4);

View File

@ -99,7 +99,7 @@ rect_select_button_press (Tool *tool,
gchar select_mode[STATUSBAR_SIZE]; gchar select_mode[STATUSBAR_SIZE];
int x, y; int x, y;
GUnit unit = UNIT_PIXEL; GUnit unit = UNIT_PIXEL;
float unit_factor; double unit_factor;
gdisp = (GDisplay *) gdisp_ptr; gdisp = (GDisplay *) gdisp_ptr;
rect_sel = (RectSelect *) tool->private; rect_sel = (RectSelect *) tool->private;
@ -405,14 +405,14 @@ rect_select_motion (Tool *tool,
} }
else /* show real world units */ else /* show real world units */
{ {
float unit_factor = gimp_unit_get_factor (gdisp->gimage->unit); gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
g_snprintf (size, STATUSBAR_SIZE, gdisp->cursor_format_str, g_snprintf (size, STATUSBAR_SIZE, gdisp->cursor_format_str,
_("Selection: "), _("Selection: "),
(float)abs(rect_sel->w) * unit_factor / (gdouble) abs(rect_sel->w) * unit_factor /
gdisp->gimage->xresolution, gdisp->gimage->xresolution,
" x ", " x ",
(float)abs(rect_sel->h) * unit_factor / (gdouble) abs(rect_sel->h) * unit_factor /
gdisp->gimage->yresolution); gdisp->gimage->yresolution);
} }
gtk_statusbar_push (GTK_STATUSBAR (gdisp->statusbar), rect_sel->context_id, gtk_statusbar_push (GTK_STATUSBAR (gdisp->statusbar), rect_sel->context_id,

View File

@ -58,7 +58,7 @@ struct _ResizePrivate
double ratio; double ratio;
int old_width, old_height; int old_width, old_height;
int old_res_x, old_res_y; double old_res_x, old_res_y;
int area_width, area_height; int area_width, area_height;
int start_x, start_y; int start_x, start_y;
int orig_x, orig_y; int orig_x, orig_y;
@ -82,10 +82,10 @@ Resize *
resize_widget_new (ResizeType type, resize_widget_new (ResizeType type,
ResizeTarget target, ResizeTarget target,
GtkObject *object, GtkObject *object,
int width, gint width,
int height, gint height,
float resolution_x, gdouble resolution_x,
float resolution_y, gdouble resolution_y,
GUnit unit, GUnit unit,
gboolean dot_for_dot, gboolean dot_for_dot,
GtkSignalFunc ok_cb, GtkSignalFunc ok_cb,
@ -281,8 +281,7 @@ resize_widget_new (ResizeType type,
gtk_widget_set_usize (spinbutton, 75, 0); gtk_widget_set_usize (spinbutton, 75, 0);
private->size_se = private->size_se =
gimp_size_entry_new (1, dot_for_dot ? UNIT_PIXEL : unit, "%a", gimp_size_entry_new (1, unit, "%a", TRUE, TRUE, FALSE, 75,
TRUE, TRUE, FALSE, 75,
GIMP_SIZE_ENTRY_UPDATE_SIZE); GIMP_SIZE_ENTRY_UPDATE_SIZE);
gimp_size_entry_add_field (GIMP_SIZE_ENTRY (private->size_se), gimp_size_entry_add_field (GIMP_SIZE_ENTRY (private->size_se),
GTK_SPIN_BUTTON (spinbutton), NULL); GTK_SPIN_BUTTON (spinbutton), NULL);
@ -311,6 +310,9 @@ resize_widget_new (ResizeType type,
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (private->size_se), 0, width); gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (private->size_se), 0, width);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (private->size_se), 1, height); gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (private->size_se), 1, height);
if (dot_for_dot)
gimp_size_entry_set_unit (GIMP_SIZE_ENTRY (private->size_se), UNIT_PIXEL);
gtk_signal_connect (GTK_OBJECT (private->size_se), "value_changed", gtk_signal_connect (GTK_OBJECT (private->size_se), "value_changed",
(GtkSignalFunc) size_callback, (GtkSignalFunc) size_callback,
resize); resize);
@ -428,8 +430,7 @@ resize_widget_new (ResizeType type,
gtk_widget_set_usize (spinbutton, 75, 0); gtk_widget_set_usize (spinbutton, 75, 0);
private->offset_se = private->offset_se =
gimp_size_entry_new (1, dot_for_dot ? UNIT_PIXEL : unit, "%a", gimp_size_entry_new (1, unit, "%a", TRUE, FALSE, FALSE, 75,
TRUE, FALSE, FALSE, 75,
GIMP_SIZE_ENTRY_UPDATE_SIZE); GIMP_SIZE_ENTRY_UPDATE_SIZE);
gimp_size_entry_add_field (GIMP_SIZE_ENTRY (private->offset_se), gimp_size_entry_add_field (GIMP_SIZE_ENTRY (private->offset_se),
GTK_SPIN_BUTTON (spinbutton), NULL); GTK_SPIN_BUTTON (spinbutton), NULL);
@ -453,6 +454,10 @@ resize_widget_new (ResizeType type,
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (private->offset_se), 0, 0); gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (private->offset_se), 0, 0);
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (private->offset_se), 1, 0); gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (private->offset_se), 1, 0);
if (dot_for_dot)
gimp_size_entry_set_unit (GIMP_SIZE_ENTRY (private->offset_se),
UNIT_PIXEL);
gtk_signal_connect (GTK_OBJECT (private->offset_se), gtk_signal_connect (GTK_OBJECT (private->offset_se),
"value_changed", (GtkSignalFunc) offset_update, "value_changed", (GtkSignalFunc) offset_update,
resize); resize);

View File

@ -45,8 +45,8 @@ struct _Resize
int width; int width;
int height; int height;
float resolution_x; double resolution_x;
float resolution_y; double resolution_y;
GUnit unit; GUnit unit;
double ratio_x; double ratio_x;
@ -65,10 +65,10 @@ struct _Resize
Resize * resize_widget_new (ResizeType type, Resize * resize_widget_new (ResizeType type,
ResizeTarget target, ResizeTarget target,
GtkObject * object, GtkObject * object,
int width, gint width,
int height, gint height,
float resolution_x, gdouble resolution_x,
float resolution_y, gdouble resolution_y,
GUnit unit, GUnit unit,
gboolean dot_for_dot, gboolean dot_for_dot,
GtkSignalFunc ok_cb, GtkSignalFunc ok_cb,

View File

@ -103,8 +103,7 @@ rotate_tool_transform (Tool *tool,
sizeentry = sizeentry =
info_dialog_add_sizeentry (transform_info, _("Y:"), info_dialog_add_sizeentry (transform_info, _("Y:"),
center_vals, 1, center_vals, 1,
gdisp->dot_for_dot ? gdisp->gimage->unit, "%a",
UNIT_PIXEL : gdisp->gimage->unit, "%a",
TRUE, TRUE, FALSE, TRUE, TRUE, FALSE,
GIMP_SIZE_ENTRY_UPDATE_SIZE, GIMP_SIZE_ENTRY_UPDATE_SIZE,
rotate_center_changed, tool); rotate_center_changed, tool);
@ -127,6 +126,9 @@ rotate_tool_transform (Tool *tool,
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (sizeentry), 1, gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (sizeentry), 1,
center_vals[1]); center_vals[1]);
if (gdisp->dot_for_dot)
gimp_size_entry_set_unit (GIMP_SIZE_ENTRY (sizeentry), UNIT_PIXEL);
gtk_table_set_row_spacing (GTK_TABLE (transform_info->info_table), gtk_table_set_row_spacing (GTK_TABLE (transform_info->info_table),
1, 6); 1, 6);
gtk_table_set_row_spacing (GTK_TABLE (transform_info->info_table), gtk_table_set_row_spacing (GTK_TABLE (transform_info->info_table),

View File

@ -166,7 +166,7 @@ change_scale (GDisplay *gdisp,
static gdouble static gdouble
img2real (GDisplay *gdisp, gboolean xdir, gdouble a) img2real (GDisplay *gdisp, gboolean xdir, gdouble a)
{ {
float res; gdouble res;
if (gdisp->dot_for_dot) if (gdisp->dot_for_dot)
return a; return a;

View File

@ -80,8 +80,7 @@ scale_tool_transform (Tool *tool,
sizeentry = sizeentry =
info_dialog_add_sizeentry (transform_info, _("Height:"), info_dialog_add_sizeentry (transform_info, _("Height:"),
size_vals, 1, size_vals, 1,
gdisp->dot_for_dot ? gdisp->gimage->unit, "%a",
UNIT_PIXEL : gdisp->gimage->unit, "%a",
TRUE, TRUE, FALSE, TRUE, TRUE, FALSE,
GIMP_SIZE_ENTRY_UPDATE_SIZE, GIMP_SIZE_ENTRY_UPDATE_SIZE,
scale_size_changed, tool); scale_size_changed, tool);
@ -104,6 +103,9 @@ scale_tool_transform (Tool *tool,
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (sizeentry), 1, gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (sizeentry), 1,
size_vals[1]); size_vals[1]);
if (gdisp->dot_for_dot)
gimp_size_entry_set_unit (GIMP_SIZE_ENTRY (sizeentry), UNIT_PIXEL);
info_dialog_add_label (transform_info, _("Scale Ratio X:"), info_dialog_add_label (transform_info, _("Scale Ratio X:"),
x_ratio_buf); x_ratio_buf);
info_dialog_add_label (transform_info, _("Y:"), info_dialog_add_label (transform_info, _("Y:"),
@ -191,7 +193,7 @@ scale_info_update (Tool *tool)
double ratio_x, ratio_y; double ratio_x, ratio_y;
int x1, y1, x2, y2, x3, y3, x4, y4; int x1, y1, x2, y2, x3, y3, x4, y4;
GUnit unit; GUnit unit;
float unit_factor; double unit_factor;
gchar format_buf[16]; gchar format_buf[16];
static GUnit label_unit = UNIT_PIXEL; static GUnit label_unit = UNIT_PIXEL;

View File

@ -643,7 +643,7 @@ blend_motion (Tool *tool,
} }
else /* show real world units */ else /* show real world units */
{ {
float unit_factor = gimp_unit_get_factor (gdisp->gimage->unit); gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
g_snprintf (vector, STATUSBAR_SIZE, gdisp->cursor_format_str, g_snprintf (vector, STATUSBAR_SIZE, gdisp->cursor_format_str,
_("Blend: "), _("Blend: "),

View File

@ -502,14 +502,14 @@ crop_motion (Tool *tool,
} }
else /* show real world units */ else /* show real world units */
{ {
float unit_factor = gimp_unit_get_factor (gdisp->gimage->unit); gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
g_snprintf (size, STATUSBAR_SIZE, gdisp->cursor_format_str, g_snprintf (size, STATUSBAR_SIZE, gdisp->cursor_format_str,
_("Crop: "), _("Crop: "),
(float)(crop->tx2 - crop->tx1) * unit_factor / (gdouble) (crop->tx2 - crop->tx1) * unit_factor /
gdisp->gimage->xresolution, gdisp->gimage->xresolution,
" x ", " x ",
(float)(crop->ty2 - crop->ty1) * unit_factor / (gdouble) (crop->ty2 - crop->ty1) * unit_factor /
gdisp->gimage->yresolution); gdisp->gimage->yresolution);
} }
gtk_statusbar_push (GTK_STATUSBAR (gdisp->statusbar), crop->context_id, gtk_statusbar_push (GTK_STATUSBAR (gdisp->statusbar), crop->context_id,

View File

@ -447,7 +447,7 @@ edit_selection_motion (Tool *tool,
} }
else /* show real world units */ else /* show real world units */
{ {
float unit_factor = gimp_unit_get_factor (gdisp->gimage->unit); gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
g_snprintf (offset, STATUSBAR_SIZE, gdisp->cursor_format_str, g_snprintf (offset, STATUSBAR_SIZE, gdisp->cursor_format_str,
_("Move: "), _("Move: "),

View File

@ -643,7 +643,7 @@ blend_motion (Tool *tool,
} }
else /* show real world units */ else /* show real world units */
{ {
float unit_factor = gimp_unit_get_factor (gdisp->gimage->unit); gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
g_snprintf (vector, STATUSBAR_SIZE, gdisp->cursor_format_str, g_snprintf (vector, STATUSBAR_SIZE, gdisp->cursor_format_str,
_("Blend: "), _("Blend: "),

View File

@ -502,14 +502,14 @@ crop_motion (Tool *tool,
} }
else /* show real world units */ else /* show real world units */
{ {
float unit_factor = gimp_unit_get_factor (gdisp->gimage->unit); gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
g_snprintf (size, STATUSBAR_SIZE, gdisp->cursor_format_str, g_snprintf (size, STATUSBAR_SIZE, gdisp->cursor_format_str,
_("Crop: "), _("Crop: "),
(float)(crop->tx2 - crop->tx1) * unit_factor / (gdouble) (crop->tx2 - crop->tx1) * unit_factor /
gdisp->gimage->xresolution, gdisp->gimage->xresolution,
" x ", " x ",
(float)(crop->ty2 - crop->ty1) * unit_factor / (gdouble) (crop->ty2 - crop->ty1) * unit_factor /
gdisp->gimage->yresolution); gdisp->gimage->yresolution);
} }
gtk_statusbar_push (GTK_STATUSBAR (gdisp->statusbar), crop->context_id, gtk_statusbar_push (GTK_STATUSBAR (gdisp->statusbar), crop->context_id,

View File

@ -447,7 +447,7 @@ edit_selection_motion (Tool *tool,
} }
else /* show real world units */ else /* show real world units */
{ {
float unit_factor = gimp_unit_get_factor (gdisp->gimage->unit); gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
g_snprintf (offset, STATUSBAR_SIZE, gdisp->cursor_format_str, g_snprintf (offset, STATUSBAR_SIZE, gdisp->cursor_format_str,
_("Move: "), _("Move: "),

View File

@ -99,7 +99,7 @@ rect_select_button_press (Tool *tool,
gchar select_mode[STATUSBAR_SIZE]; gchar select_mode[STATUSBAR_SIZE];
int x, y; int x, y;
GUnit unit = UNIT_PIXEL; GUnit unit = UNIT_PIXEL;
float unit_factor; double unit_factor;
gdisp = (GDisplay *) gdisp_ptr; gdisp = (GDisplay *) gdisp_ptr;
rect_sel = (RectSelect *) tool->private; rect_sel = (RectSelect *) tool->private;
@ -405,14 +405,14 @@ rect_select_motion (Tool *tool,
} }
else /* show real world units */ else /* show real world units */
{ {
float unit_factor = gimp_unit_get_factor (gdisp->gimage->unit); gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
g_snprintf (size, STATUSBAR_SIZE, gdisp->cursor_format_str, g_snprintf (size, STATUSBAR_SIZE, gdisp->cursor_format_str,
_("Selection: "), _("Selection: "),
(float)abs(rect_sel->w) * unit_factor / (gdouble) abs(rect_sel->w) * unit_factor /
gdisp->gimage->xresolution, gdisp->gimage->xresolution,
" x ", " x ",
(float)abs(rect_sel->h) * unit_factor / (gdouble) abs(rect_sel->h) * unit_factor /
gdisp->gimage->yresolution); gdisp->gimage->yresolution);
} }
gtk_statusbar_push (GTK_STATUSBAR (gdisp->statusbar), rect_sel->context_id, gtk_statusbar_push (GTK_STATUSBAR (gdisp->statusbar), rect_sel->context_id,

View File

@ -103,8 +103,7 @@ rotate_tool_transform (Tool *tool,
sizeentry = sizeentry =
info_dialog_add_sizeentry (transform_info, _("Y:"), info_dialog_add_sizeentry (transform_info, _("Y:"),
center_vals, 1, center_vals, 1,
gdisp->dot_for_dot ? gdisp->gimage->unit, "%a",
UNIT_PIXEL : gdisp->gimage->unit, "%a",
TRUE, TRUE, FALSE, TRUE, TRUE, FALSE,
GIMP_SIZE_ENTRY_UPDATE_SIZE, GIMP_SIZE_ENTRY_UPDATE_SIZE,
rotate_center_changed, tool); rotate_center_changed, tool);
@ -127,6 +126,9 @@ rotate_tool_transform (Tool *tool,
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (sizeentry), 1, gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (sizeentry), 1,
center_vals[1]); center_vals[1]);
if (gdisp->dot_for_dot)
gimp_size_entry_set_unit (GIMP_SIZE_ENTRY (sizeentry), UNIT_PIXEL);
gtk_table_set_row_spacing (GTK_TABLE (transform_info->info_table), gtk_table_set_row_spacing (GTK_TABLE (transform_info->info_table),
1, 6); 1, 6);
gtk_table_set_row_spacing (GTK_TABLE (transform_info->info_table), gtk_table_set_row_spacing (GTK_TABLE (transform_info->info_table),

View File

@ -80,8 +80,7 @@ scale_tool_transform (Tool *tool,
sizeentry = sizeentry =
info_dialog_add_sizeentry (transform_info, _("Height:"), info_dialog_add_sizeentry (transform_info, _("Height:"),
size_vals, 1, size_vals, 1,
gdisp->dot_for_dot ? gdisp->gimage->unit, "%a",
UNIT_PIXEL : gdisp->gimage->unit, "%a",
TRUE, TRUE, FALSE, TRUE, TRUE, FALSE,
GIMP_SIZE_ENTRY_UPDATE_SIZE, GIMP_SIZE_ENTRY_UPDATE_SIZE,
scale_size_changed, tool); scale_size_changed, tool);
@ -104,6 +103,9 @@ scale_tool_transform (Tool *tool,
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (sizeentry), 1, gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (sizeentry), 1,
size_vals[1]); size_vals[1]);
if (gdisp->dot_for_dot)
gimp_size_entry_set_unit (GIMP_SIZE_ENTRY (sizeentry), UNIT_PIXEL);
info_dialog_add_label (transform_info, _("Scale Ratio X:"), info_dialog_add_label (transform_info, _("Scale Ratio X:"),
x_ratio_buf); x_ratio_buf);
info_dialog_add_label (transform_info, _("Y:"), info_dialog_add_label (transform_info, _("Y:"),
@ -191,7 +193,7 @@ scale_info_update (Tool *tool)
double ratio_x, ratio_y; double ratio_x, ratio_y;
int x1, y1, x2, y2, x3, y3, x4, y4; int x1, y1, x2, y2, x3, y3, x4, y4;
GUnit unit; GUnit unit;
float unit_factor; double unit_factor;
gchar format_buf[16]; gchar format_buf[16];
static GUnit label_unit = UNIT_PIXEL; static GUnit label_unit = UNIT_PIXEL;

View File

@ -99,7 +99,7 @@ rect_select_button_press (Tool *tool,
gchar select_mode[STATUSBAR_SIZE]; gchar select_mode[STATUSBAR_SIZE];
int x, y; int x, y;
GUnit unit = UNIT_PIXEL; GUnit unit = UNIT_PIXEL;
float unit_factor; double unit_factor;
gdisp = (GDisplay *) gdisp_ptr; gdisp = (GDisplay *) gdisp_ptr;
rect_sel = (RectSelect *) tool->private; rect_sel = (RectSelect *) tool->private;
@ -405,14 +405,14 @@ rect_select_motion (Tool *tool,
} }
else /* show real world units */ else /* show real world units */
{ {
float unit_factor = gimp_unit_get_factor (gdisp->gimage->unit); gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
g_snprintf (size, STATUSBAR_SIZE, gdisp->cursor_format_str, g_snprintf (size, STATUSBAR_SIZE, gdisp->cursor_format_str,
_("Selection: "), _("Selection: "),
(float)abs(rect_sel->w) * unit_factor / (gdouble) abs(rect_sel->w) * unit_factor /
gdisp->gimage->xresolution, gdisp->gimage->xresolution,
" x ", " x ",
(float)abs(rect_sel->h) * unit_factor / (gdouble) abs(rect_sel->h) * unit_factor /
gdisp->gimage->yresolution); gdisp->gimage->yresolution);
} }
gtk_statusbar_push (GTK_STATUSBAR (gdisp->statusbar), rect_sel->context_id, gtk_statusbar_push (GTK_STATUSBAR (gdisp->statusbar), rect_sel->context_id,

View File

@ -103,8 +103,7 @@ rotate_tool_transform (Tool *tool,
sizeentry = sizeentry =
info_dialog_add_sizeentry (transform_info, _("Y:"), info_dialog_add_sizeentry (transform_info, _("Y:"),
center_vals, 1, center_vals, 1,
gdisp->dot_for_dot ? gdisp->gimage->unit, "%a",
UNIT_PIXEL : gdisp->gimage->unit, "%a",
TRUE, TRUE, FALSE, TRUE, TRUE, FALSE,
GIMP_SIZE_ENTRY_UPDATE_SIZE, GIMP_SIZE_ENTRY_UPDATE_SIZE,
rotate_center_changed, tool); rotate_center_changed, tool);
@ -127,6 +126,9 @@ rotate_tool_transform (Tool *tool,
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (sizeentry), 1, gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (sizeentry), 1,
center_vals[1]); center_vals[1]);
if (gdisp->dot_for_dot)
gimp_size_entry_set_unit (GIMP_SIZE_ENTRY (sizeentry), UNIT_PIXEL);
gtk_table_set_row_spacing (GTK_TABLE (transform_info->info_table), gtk_table_set_row_spacing (GTK_TABLE (transform_info->info_table),
1, 6); 1, 6);
gtk_table_set_row_spacing (GTK_TABLE (transform_info->info_table), gtk_table_set_row_spacing (GTK_TABLE (transform_info->info_table),

View File

@ -80,8 +80,7 @@ scale_tool_transform (Tool *tool,
sizeentry = sizeentry =
info_dialog_add_sizeentry (transform_info, _("Height:"), info_dialog_add_sizeentry (transform_info, _("Height:"),
size_vals, 1, size_vals, 1,
gdisp->dot_for_dot ? gdisp->gimage->unit, "%a",
UNIT_PIXEL : gdisp->gimage->unit, "%a",
TRUE, TRUE, FALSE, TRUE, TRUE, FALSE,
GIMP_SIZE_ENTRY_UPDATE_SIZE, GIMP_SIZE_ENTRY_UPDATE_SIZE,
scale_size_changed, tool); scale_size_changed, tool);
@ -104,6 +103,9 @@ scale_tool_transform (Tool *tool,
gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (sizeentry), 1, gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (sizeentry), 1,
size_vals[1]); size_vals[1]);
if (gdisp->dot_for_dot)
gimp_size_entry_set_unit (GIMP_SIZE_ENTRY (sizeentry), UNIT_PIXEL);
info_dialog_add_label (transform_info, _("Scale Ratio X:"), info_dialog_add_label (transform_info, _("Scale Ratio X:"),
x_ratio_buf); x_ratio_buf);
info_dialog_add_label (transform_info, _("Y:"), info_dialog_add_label (transform_info, _("Y:"),
@ -191,7 +193,7 @@ scale_info_update (Tool *tool)
double ratio_x, ratio_y; double ratio_x, ratio_y;
int x1, y1, x2, y2, x3, y3, x4, y4; int x1, y1, x2, y2, x3, y3, x4, y4;
GUnit unit; GUnit unit;
float unit_factor; double unit_factor;
gchar format_buf[16]; gchar format_buf[16];
static GUnit label_unit = UNIT_PIXEL; static GUnit label_unit = UNIT_PIXEL;

View File

@ -40,6 +40,7 @@
#include "parasitelist.h" #include "parasitelist.h"
#include "pathsP.h" #include "pathsP.h"
#include <libgimp/gimpunit.h> #include <libgimp/gimpunit.h>
#include <libgimp/gimplimits.h>
/* #define SWAP_FROM_FILE */ /* #define SWAP_FROM_FILE */
@ -1134,7 +1135,6 @@ xcf_save_prop (XcfInfo *info,
info->cp += xcf_write_float (info->fp, &xresolution, 1); info->cp += xcf_write_float (info->fp, &xresolution, 1);
info->cp += xcf_write_float (info->fp, &yresolution, 1); info->cp += xcf_write_float (info->fp, &yresolution, 1);
} }
break; break;
case PROP_TATTOO: case PROP_TATTOO:
@ -1838,16 +1838,18 @@ xcf_load_image_props (XcfInfo *info,
break; break;
case PROP_RESOLUTION: case PROP_RESOLUTION:
{ {
info->cp += xcf_read_float (info->fp, &gimage->xresolution, 1); float xres, yres;
info->cp += xcf_read_float (info->fp, &gimage->yresolution, 1);
if (gimage->xresolution < 1e-5 || gimage->xresolution > 1e+5 ||
gimage->yresolution < 1e-5 || gimage->yresolution > 1e+5)
{
g_message(_("Warning, resolution out of range in XCF file"));
gimage->xresolution = 72.0;
gimage->yresolution = 72.0;
}
info->cp += xcf_read_float (info->fp, &xres, 1);
info->cp += xcf_read_float (info->fp, &yres, 1);
if (xres < GIMP_MIN_RESOLUTION || xres > GIMP_MAX_RESOLUTION ||
yres < GIMP_MIN_RESOLUTION || yres > GIMP_MAX_RESOLUTION)
{
g_message(_("Warning, resolution out of range in XCF file"));
xres = yres = 72.0;
}
gimage->xresolution = xres;
gimage->yresolution = yres;
} }
break; break;
case PROP_TATTOO: case PROP_TATTOO:

View File

@ -40,6 +40,7 @@
#include "parasitelist.h" #include "parasitelist.h"
#include "pathsP.h" #include "pathsP.h"
#include <libgimp/gimpunit.h> #include <libgimp/gimpunit.h>
#include <libgimp/gimplimits.h>
/* #define SWAP_FROM_FILE */ /* #define SWAP_FROM_FILE */
@ -1134,7 +1135,6 @@ xcf_save_prop (XcfInfo *info,
info->cp += xcf_write_float (info->fp, &xresolution, 1); info->cp += xcf_write_float (info->fp, &xresolution, 1);
info->cp += xcf_write_float (info->fp, &yresolution, 1); info->cp += xcf_write_float (info->fp, &yresolution, 1);
} }
break; break;
case PROP_TATTOO: case PROP_TATTOO:
@ -1838,16 +1838,18 @@ xcf_load_image_props (XcfInfo *info,
break; break;
case PROP_RESOLUTION: case PROP_RESOLUTION:
{ {
info->cp += xcf_read_float (info->fp, &gimage->xresolution, 1); float xres, yres;
info->cp += xcf_read_float (info->fp, &gimage->yresolution, 1);
if (gimage->xresolution < 1e-5 || gimage->xresolution > 1e+5 ||
gimage->yresolution < 1e-5 || gimage->yresolution > 1e+5)
{
g_message(_("Warning, resolution out of range in XCF file"));
gimage->xresolution = 72.0;
gimage->yresolution = 72.0;
}
info->cp += xcf_read_float (info->fp, &xres, 1);
info->cp += xcf_read_float (info->fp, &yres, 1);
if (xres < GIMP_MIN_RESOLUTION || xres > GIMP_MAX_RESOLUTION ||
yres < GIMP_MIN_RESOLUTION || yres > GIMP_MAX_RESOLUTION)
{
g_message(_("Warning, resolution out of range in XCF file"));
xres = yres = 72.0;
}
gimage->xresolution = xres;
gimage->yresolution = yres;
} }
break; break;
case PROP_TATTOO: case PROP_TATTOO:

View File

@ -503,11 +503,11 @@ void gimp_image_attach_new_parasite (gint32 image_ID,
void gimp_image_detach_parasite (gint32 image_ID, void gimp_image_detach_parasite (gint32 image_ID,
const char *name); const char *name);
void gimp_image_set_resolution (gint32 image_ID, void gimp_image_set_resolution (gint32 image_ID,
float xresolution, double xresolution,
float yresolution); double yresolution);
void gimp_image_get_resolution (gint32 image_ID, void gimp_image_get_resolution (gint32 image_ID,
float *xresolution, double *xresolution,
float *yresolution); double *yresolution);
void gimp_image_set_unit (gint32 image_ID, void gimp_image_set_unit (gint32 image_ID,
GUnit unit); GUnit unit);
GUnit gimp_image_get_unit (gint32 image_ID); GUnit gimp_image_get_unit (gint32 image_ID);

View File

@ -1012,15 +1012,15 @@ gimp_image_detach_parasite (gint32 image_ID, const char *name)
void void
gimp_image_get_resolution (gint32 image_ID, gimp_image_get_resolution (gint32 image_ID,
float *xresolution, double *xresolution,
float *yresolution) double *yresolution)
{ {
GParam *return_vals; GParam *return_vals;
int nreturn_vals; int nreturn_vals;
float xres; double xres;
float yres; double yres;
g_return_if_fail(xresolution && yresolution); g_return_if_fail (xresolution && yresolution);
return_vals = gimp_run_procedure ("gimp_image_get_resolution", return_vals = gimp_run_procedure ("gimp_image_get_resolution",
&nreturn_vals, &nreturn_vals,
@ -1045,8 +1045,8 @@ gimp_image_get_resolution (gint32 image_ID,
void void
gimp_image_set_resolution (gint32 image_ID, gimp_image_set_resolution (gint32 image_ID,
float xresolution, double xresolution,
float yresolution) double yresolution)
{ {
GParam *return_vals; GParam *return_vals;
int nreturn_vals; int nreturn_vals;

View File

@ -1012,15 +1012,15 @@ gimp_image_detach_parasite (gint32 image_ID, const char *name)
void void
gimp_image_get_resolution (gint32 image_ID, gimp_image_get_resolution (gint32 image_ID,
float *xresolution, double *xresolution,
float *yresolution) double *yresolution)
{ {
GParam *return_vals; GParam *return_vals;
int nreturn_vals; int nreturn_vals;
float xres; double xres;
float yres; double yres;
g_return_if_fail(xresolution && yresolution); g_return_if_fail (xresolution && yresolution);
return_vals = gimp_run_procedure ("gimp_image_get_resolution", return_vals = gimp_run_procedure ("gimp_image_get_resolution",
&nreturn_vals, &nreturn_vals,
@ -1045,8 +1045,8 @@ gimp_image_get_resolution (gint32 image_ID,
void void
gimp_image_set_resolution (gint32 image_ID, gimp_image_set_resolution (gint32 image_ID,
float xresolution, double xresolution,
float yresolution) double yresolution)
{ {
GParam *return_vals; GParam *return_vals;
int nreturn_vals; int nreturn_vals;

View File

@ -46,23 +46,22 @@ enum {
struct _GimpSizeEntryField struct _GimpSizeEntryField
{ {
GimpSizeEntry *gse; GimpSizeEntry *gse;
gint index;
gfloat resolution; gdouble resolution;
gfloat lower; gdouble lower;
gfloat upper; gdouble upper;
GtkObject *value_adjustment; GtkObject *value_adjustment;
GtkWidget *value_spinbutton; GtkWidget *value_spinbutton;
gfloat value; gdouble value;
gfloat min_value; gdouble min_value;
gfloat max_value; gdouble max_value;
GtkObject *refval_adjustment; GtkObject *refval_adjustment;
GtkWidget *refval_spinbutton; GtkWidget *refval_spinbutton;
gfloat refval; gdouble refval;
gfloat min_refval; gdouble min_refval;
gfloat max_refval; gdouble max_refval;
gint refval_digits; gint refval_digits;
gint stop_recursion; gint stop_recursion;
@ -221,7 +220,6 @@ gimp_size_entry_new (gint number_of_fields,
gse->fields = g_slist_append (gse->fields, gsef); gse->fields = g_slist_append (gse->fields, gsef);
gsef->gse = gse; gsef->gse = gse;
gsef->index = i;
gsef->resolution = 1.0; /* just to avoid division by zero */ gsef->resolution = 1.0; /* just to avoid division by zero */
gsef->lower = 0.0; gsef->lower = 0.0;
gsef->upper = 100.0; gsef->upper = 100.0;
@ -343,7 +341,6 @@ gimp_size_entry_add_field (GimpSizeEntry *gse,
gse->number_of_fields++; gse->number_of_fields++;
gsef->gse = gse; gsef->gse = gse;
gsef->index = 0;
gsef->resolution = 1.0; /* just to avoid division by zero */ gsef->resolution = 1.0; /* just to avoid division by zero */
gsef->lower = 0.0; gsef->lower = 0.0;
gsef->upper = 100.0; gsef->upper = 100.0;
@ -431,7 +428,7 @@ gimp_size_entry_attach_label (GimpSizeEntry *gse,
void void
gimp_size_entry_set_resolution (GimpSizeEntry *gse, gimp_size_entry_set_resolution (GimpSizeEntry *gse,
gint field, gint field,
gfloat resolution, gdouble resolution,
guint keep_size) guint keep_size)
{ {
GimpSizeEntryField *gsef; GimpSizeEntryField *gsef;
@ -461,8 +458,8 @@ gimp_size_entry_set_resolution (GimpSizeEntry *gse,
void void
gimp_size_entry_set_size (GimpSizeEntry *gse, gimp_size_entry_set_size (GimpSizeEntry *gse,
gint field, gint field,
gfloat lower, gdouble lower,
gfloat upper) gdouble upper)
{ {
GimpSizeEntryField *gsef; GimpSizeEntryField *gsef;
@ -484,8 +481,8 @@ gimp_size_entry_set_size (GimpSizeEntry *gse,
void void
gimp_size_entry_set_value_boundaries (GimpSizeEntry *gse, gimp_size_entry_set_value_boundaries (GimpSizeEntry *gse,
gint field, gint field,
gfloat lower, gdouble lower,
gfloat upper) gdouble upper)
{ {
GimpSizeEntryField *gsef; GimpSizeEntryField *gsef;
@ -552,7 +549,7 @@ gimp_size_entry_set_value_boundaries (GimpSizeEntry *gse,
gimp_size_entry_set_value (gse, field, gsef->value); gimp_size_entry_set_value (gse, field, gsef->value);
} }
gfloat gdouble
gimp_size_entry_get_value (GimpSizeEntry *gse, gimp_size_entry_get_value (GimpSizeEntry *gse,
gint field) gint field)
{ {
@ -568,7 +565,7 @@ gimp_size_entry_get_value (GimpSizeEntry *gse,
static void static void
gimp_size_entry_update_value (GimpSizeEntryField *gsef, gimp_size_entry_update_value (GimpSizeEntryField *gsef,
gfloat value) gdouble value)
{ {
if (gsef->stop_recursion > 1) if (gsef->stop_recursion > 1)
return; return;
@ -619,7 +616,7 @@ gimp_size_entry_update_value (GimpSizeEntryField *gsef,
void void
gimp_size_entry_set_value (GimpSizeEntry *gse, gimp_size_entry_set_value (GimpSizeEntry *gse,
gint field, gint field,
gfloat value) gdouble value)
{ {
GimpSizeEntryField *gsef; GimpSizeEntryField *gsef;
@ -642,7 +639,7 @@ gimp_size_entry_value_callback (GtkWidget *widget,
gpointer data) gpointer data)
{ {
GimpSizeEntryField *gsef; GimpSizeEntryField *gsef;
gfloat new_value; gdouble new_value;
gsef = (GimpSizeEntryField*) data; gsef = (GimpSizeEntryField*) data;
@ -662,8 +659,8 @@ gimp_size_entry_value_callback (GtkWidget *widget,
void void
gimp_size_entry_set_refval_boundaries (GimpSizeEntry *gse, gimp_size_entry_set_refval_boundaries (GimpSizeEntry *gse,
gint field, gint field,
gfloat lower, gdouble lower,
gfloat upper) gdouble upper)
{ {
GimpSizeEntryField *gsef; GimpSizeEntryField *gsef;
@ -761,7 +758,7 @@ gimp_size_entry_set_refval_digits (GimpSizeEntry *gse,
} }
} }
gfloat gdouble
gimp_size_entry_get_refval (GimpSizeEntry *gse, gimp_size_entry_get_refval (GimpSizeEntry *gse,
gint field) gint field)
{ {
@ -778,7 +775,7 @@ gimp_size_entry_get_refval (GimpSizeEntry *gse,
static void static void
gimp_size_entry_update_refval (GimpSizeEntryField *gsef, gimp_size_entry_update_refval (GimpSizeEntryField *gsef,
gfloat refval) gdouble refval)
{ {
if (gsef->stop_recursion > 1) if (gsef->stop_recursion > 1)
return; return;
@ -827,7 +824,7 @@ gimp_size_entry_update_refval (GimpSizeEntryField *gsef,
void void
gimp_size_entry_set_refval (GimpSizeEntry *gse, gimp_size_entry_set_refval (GimpSizeEntry *gse,
gint field, gint field,
gfloat refval) gdouble refval)
{ {
GimpSizeEntryField *gsef; GimpSizeEntryField *gsef;
@ -853,7 +850,7 @@ gimp_size_entry_refval_callback (GtkWidget *widget,
gpointer data) gpointer data)
{ {
GimpSizeEntryField *gsef; GimpSizeEntryField *gsef;
gfloat new_refval; gdouble new_refval;
gsef = (GimpSizeEntryField*) data; gsef = (GimpSizeEntryField*) data;

View File

@ -16,7 +16,6 @@
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA. * Boston, MA 02111-1307, USA.
*/ */
#ifndef __GIMP_SIZE_ENTRY_H__ #ifndef __GIMP_SIZE_ENTRY_H__
#define __GIMP_SIZE_ENTRY_H__ #define __GIMP_SIZE_ENTRY_H__
@ -133,7 +132,7 @@ void gimp_size_entry_attach_label (GimpSizeEntry *gse,
*/ */
void gimp_size_entry_set_resolution (GimpSizeEntry *gse, void gimp_size_entry_set_resolution (GimpSizeEntry *gse,
gint field, gint field,
gfloat resolution, gdouble resolution,
guint keep_size); guint keep_size);
/* this one sets the values (in pixels) which will be treated as /* this one sets the values (in pixels) which will be treated as
@ -143,8 +142,8 @@ void gimp_size_entry_set_resolution (GimpSizeEntry *gse,
*/ */
void gimp_size_entry_set_size (GimpSizeEntry *gse, void gimp_size_entry_set_size (GimpSizeEntry *gse,
gint field, gint field,
gfloat lower, gdouble lower,
gfloat upper); gdouble upper);
/* these functions set/return the value in the units the user selected /* these functions set/return the value in the units the user selected
* note that in some cases where the caller chooses not to have the * note that in some cases where the caller chooses not to have the
@ -153,13 +152,13 @@ void gimp_size_entry_set_size (GimpSizeEntry *gse,
*/ */
void gimp_size_entry_set_value_boundaries (GimpSizeEntry *gse, void gimp_size_entry_set_value_boundaries (GimpSizeEntry *gse,
gint field, gint field,
gfloat lower, gdouble lower,
gfloat upper); gdouble upper);
gfloat gimp_size_entry_get_value (GimpSizeEntry *gse, gdouble gimp_size_entry_get_value (GimpSizeEntry *gse,
gint field); gint field);
void gimp_size_entry_set_value (GimpSizeEntry *gse, void gimp_size_entry_set_value (GimpSizeEntry *gse,
gint field, gint field,
gfloat value); gdouble value);
/* these functions set/return the value in the 'reference unit' for the /* these functions set/return the value in the 'reference unit' for the
* current update policy * current update policy
@ -171,16 +170,16 @@ void gimp_size_entry_set_value (GimpSizeEntry *gse,
*/ */
void gimp_size_entry_set_refval_boundaries (GimpSizeEntry *gse, void gimp_size_entry_set_refval_boundaries (GimpSizeEntry *gse,
gint field, gint field,
gfloat lower, gdouble lower,
gfloat upper); gdouble upper);
void gimp_size_entry_set_refval_digits (GimpSizeEntry *gse, void gimp_size_entry_set_refval_digits (GimpSizeEntry *gse,
gint field, gint field,
gint digits); gint digits);
gfloat gimp_size_entry_get_refval (GimpSizeEntry *gse, gdouble gimp_size_entry_get_refval (GimpSizeEntry *gse,
gint field); gint field);
void gimp_size_entry_set_refval (GimpSizeEntry *gse, void gimp_size_entry_set_refval (GimpSizeEntry *gse,
gint field, gint field,
gfloat refval); gdouble refval);
/* these functions set/return the currently used unit /* these functions set/return the currently used unit
* note that for GIMP_SIZE_ENTRY_UPDATE_SIZE a value of UNIT_PIXEL * note that for GIMP_SIZE_ENTRY_UPDATE_SIZE a value of UNIT_PIXEL

View File

@ -28,7 +28,7 @@
typedef struct { typedef struct {
guint delete_on_exit; guint delete_on_exit;
float factor; gdouble factor;
gint digits; gint digits;
gchar *identifier; gchar *identifier;
gchar *symbol; gchar *symbol;
@ -89,13 +89,13 @@ gimp_unit_get_number_of_built_in_units (void)
GUnit GUnit
gimp_unit_new (gchar *identifier, gimp_unit_new (gchar *identifier,
gfloat factor, gdouble factor,
gint digits, gint digits,
gchar *symbol, gchar *symbol,
gchar *abbreviation, gchar *abbreviation,
gchar *singular, gchar *singular,
gchar *plural) gchar *plural)
{ {
GParam *return_vals; GParam *return_vals;
int nreturn_vals; int nreturn_vals;
@ -172,13 +172,13 @@ gimp_unit_set_deletion_flag (GUnit unit,
} }
gfloat gdouble
gimp_unit_get_factor (GUnit unit) gimp_unit_get_factor (GUnit unit)
{ {
GParam *return_vals; GParam *return_vals;
int nreturn_vals; int nreturn_vals;
gfloat factor; gdouble factor;
g_return_val_if_fail (unit >= UNIT_INCH, 1.0); g_return_val_if_fail (unit >= UNIT_INCH, 1.0);

View File

@ -67,13 +67,13 @@ gint gimp_unit_get_number_of_built_in_units (void);
* set to TRUE. You will have to set it to FALSE after creation to make * set to TRUE. You will have to set it to FALSE after creation to make
* the unit definition persistant. * the unit definition persistant.
*/ */
GUnit gimp_unit_new (gchar *identifier, GUnit gimp_unit_new (gchar *identifier,
gfloat factor, gdouble factor,
gint digits, gint digits,
gchar *symbol, gchar *symbol,
gchar *abbreviation, gchar *abbreviation,
gchar *singular, gchar *singular,
gchar *plural); gchar *plural);
/* The following functions fall back to inch (not pixel, as pixel is not /* The following functions fall back to inch (not pixel, as pixel is not
* a 'real' unit) if the value passed is out of range. * a 'real' unit) if the value passed is out of range.
@ -93,7 +93,7 @@ void gimp_unit_set_deletion_flag (GUnit unit,
* *
* Returns 0 for unit == UNIT_PIXEL as we don't have resolution info here * Returns 0 for unit == UNIT_PIXEL as we don't have resolution info here
*/ */
gfloat gimp_unit_get_factor (GUnit unit); gdouble gimp_unit_get_factor (GUnit unit);
/* The following function gives a hint how many digits a spinbutton /* The following function gives a hint how many digits a spinbutton
* should provide to get approximately the accuracy of an inch-spinbutton * should provide to get approximately the accuracy of an inch-spinbutton

View File

@ -28,7 +28,7 @@
typedef struct { typedef struct {
guint delete_on_exit; guint delete_on_exit;
float factor; gdouble factor;
gint digits; gint digits;
gchar *identifier; gchar *identifier;
gchar *symbol; gchar *symbol;
@ -89,13 +89,13 @@ gimp_unit_get_number_of_built_in_units (void)
GUnit GUnit
gimp_unit_new (gchar *identifier, gimp_unit_new (gchar *identifier,
gfloat factor, gdouble factor,
gint digits, gint digits,
gchar *symbol, gchar *symbol,
gchar *abbreviation, gchar *abbreviation,
gchar *singular, gchar *singular,
gchar *plural) gchar *plural)
{ {
GParam *return_vals; GParam *return_vals;
int nreturn_vals; int nreturn_vals;
@ -172,13 +172,13 @@ gimp_unit_set_deletion_flag (GUnit unit,
} }
gfloat gdouble
gimp_unit_get_factor (GUnit unit) gimp_unit_get_factor (GUnit unit)
{ {
GParam *return_vals; GParam *return_vals;
int nreturn_vals; int nreturn_vals;
gfloat factor; gdouble factor;
g_return_val_if_fail (unit >= UNIT_INCH, 1.0); g_return_val_if_fail (unit >= UNIT_INCH, 1.0);

View File

@ -28,7 +28,7 @@
typedef struct { typedef struct {
guint delete_on_exit; guint delete_on_exit;
float factor; gdouble factor;
gint digits; gint digits;
gchar *identifier; gchar *identifier;
gchar *symbol; gchar *symbol;
@ -89,13 +89,13 @@ gimp_unit_get_number_of_built_in_units (void)
GUnit GUnit
gimp_unit_new (gchar *identifier, gimp_unit_new (gchar *identifier,
gfloat factor, gdouble factor,
gint digits, gint digits,
gchar *symbol, gchar *symbol,
gchar *abbreviation, gchar *abbreviation,
gchar *singular, gchar *singular,
gchar *plural) gchar *plural)
{ {
GParam *return_vals; GParam *return_vals;
int nreturn_vals; int nreturn_vals;
@ -172,13 +172,13 @@ gimp_unit_set_deletion_flag (GUnit unit,
} }
gfloat gdouble
gimp_unit_get_factor (GUnit unit) gimp_unit_get_factor (GUnit unit)
{ {
GParam *return_vals; GParam *return_vals;
int nreturn_vals; int nreturn_vals;
gfloat factor; gdouble factor;
g_return_val_if_fail (unit >= UNIT_INCH, 1.0); g_return_val_if_fail (unit >= UNIT_INCH, 1.0);

View File

@ -453,9 +453,10 @@ gimp_unit_menu_create_selection (GimpUnitMenu *gum)
gum->selection = gtk_dialog_new (); gum->selection = gtk_dialog_new ();
gtk_window_set_wmclass (GTK_WINDOW (gum->selection), gtk_window_set_wmclass (GTK_WINDOW (gum->selection),
"unitselection", "Gimp"); "unit_selection", "Gimp");
gtk_window_set_title (GTK_WINDOW (gum->selection), _("Unit Selection")); gtk_window_set_title (GTK_WINDOW (gum->selection), _("Unit Selection"));
gtk_window_set_policy (GTK_WINDOW(gum->selection), FALSE, TRUE, FALSE); gtk_window_set_policy (GTK_WINDOW (gum->selection), FALSE, TRUE, FALSE);
gtk_window_position (GTK_WINDOW (gum->selection), GTK_WIN_POS_MOUSE);
vbox = gtk_vbox_new (FALSE, 2); vbox = gtk_vbox_new (FALSE, 2);
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (gum->selection)->vbox), vbox); gtk_container_add (GTK_CONTAINER (GTK_DIALOG (gum->selection)->vbox), vbox);

View File

@ -67,13 +67,13 @@ gint gimp_unit_get_number_of_built_in_units (void);
* set to TRUE. You will have to set it to FALSE after creation to make * set to TRUE. You will have to set it to FALSE after creation to make
* the unit definition persistant. * the unit definition persistant.
*/ */
GUnit gimp_unit_new (gchar *identifier, GUnit gimp_unit_new (gchar *identifier,
gfloat factor, gdouble factor,
gint digits, gint digits,
gchar *symbol, gchar *symbol,
gchar *abbreviation, gchar *abbreviation,
gchar *singular, gchar *singular,
gchar *plural); gchar *plural);
/* The following functions fall back to inch (not pixel, as pixel is not /* The following functions fall back to inch (not pixel, as pixel is not
* a 'real' unit) if the value passed is out of range. * a 'real' unit) if the value passed is out of range.
@ -93,7 +93,7 @@ void gimp_unit_set_deletion_flag (GUnit unit,
* *
* Returns 0 for unit == UNIT_PIXEL as we don't have resolution info here * Returns 0 for unit == UNIT_PIXEL as we don't have resolution info here
*/ */
gfloat gimp_unit_get_factor (GUnit unit); gdouble gimp_unit_get_factor (GUnit unit);
/* The following function gives a hint how many digits a spinbutton /* The following function gives a hint how many digits a spinbutton
* should provide to get approximately the accuracy of an inch-spinbutton * should provide to get approximately the accuracy of an inch-spinbutton

View File

@ -46,23 +46,22 @@ enum {
struct _GimpSizeEntryField struct _GimpSizeEntryField
{ {
GimpSizeEntry *gse; GimpSizeEntry *gse;
gint index;
gfloat resolution; gdouble resolution;
gfloat lower; gdouble lower;
gfloat upper; gdouble upper;
GtkObject *value_adjustment; GtkObject *value_adjustment;
GtkWidget *value_spinbutton; GtkWidget *value_spinbutton;
gfloat value; gdouble value;
gfloat min_value; gdouble min_value;
gfloat max_value; gdouble max_value;
GtkObject *refval_adjustment; GtkObject *refval_adjustment;
GtkWidget *refval_spinbutton; GtkWidget *refval_spinbutton;
gfloat refval; gdouble refval;
gfloat min_refval; gdouble min_refval;
gfloat max_refval; gdouble max_refval;
gint refval_digits; gint refval_digits;
gint stop_recursion; gint stop_recursion;
@ -221,7 +220,6 @@ gimp_size_entry_new (gint number_of_fields,
gse->fields = g_slist_append (gse->fields, gsef); gse->fields = g_slist_append (gse->fields, gsef);
gsef->gse = gse; gsef->gse = gse;
gsef->index = i;
gsef->resolution = 1.0; /* just to avoid division by zero */ gsef->resolution = 1.0; /* just to avoid division by zero */
gsef->lower = 0.0; gsef->lower = 0.0;
gsef->upper = 100.0; gsef->upper = 100.0;
@ -343,7 +341,6 @@ gimp_size_entry_add_field (GimpSizeEntry *gse,
gse->number_of_fields++; gse->number_of_fields++;
gsef->gse = gse; gsef->gse = gse;
gsef->index = 0;
gsef->resolution = 1.0; /* just to avoid division by zero */ gsef->resolution = 1.0; /* just to avoid division by zero */
gsef->lower = 0.0; gsef->lower = 0.0;
gsef->upper = 100.0; gsef->upper = 100.0;
@ -431,7 +428,7 @@ gimp_size_entry_attach_label (GimpSizeEntry *gse,
void void
gimp_size_entry_set_resolution (GimpSizeEntry *gse, gimp_size_entry_set_resolution (GimpSizeEntry *gse,
gint field, gint field,
gfloat resolution, gdouble resolution,
guint keep_size) guint keep_size)
{ {
GimpSizeEntryField *gsef; GimpSizeEntryField *gsef;
@ -461,8 +458,8 @@ gimp_size_entry_set_resolution (GimpSizeEntry *gse,
void void
gimp_size_entry_set_size (GimpSizeEntry *gse, gimp_size_entry_set_size (GimpSizeEntry *gse,
gint field, gint field,
gfloat lower, gdouble lower,
gfloat upper) gdouble upper)
{ {
GimpSizeEntryField *gsef; GimpSizeEntryField *gsef;
@ -484,8 +481,8 @@ gimp_size_entry_set_size (GimpSizeEntry *gse,
void void
gimp_size_entry_set_value_boundaries (GimpSizeEntry *gse, gimp_size_entry_set_value_boundaries (GimpSizeEntry *gse,
gint field, gint field,
gfloat lower, gdouble lower,
gfloat upper) gdouble upper)
{ {
GimpSizeEntryField *gsef; GimpSizeEntryField *gsef;
@ -552,7 +549,7 @@ gimp_size_entry_set_value_boundaries (GimpSizeEntry *gse,
gimp_size_entry_set_value (gse, field, gsef->value); gimp_size_entry_set_value (gse, field, gsef->value);
} }
gfloat gdouble
gimp_size_entry_get_value (GimpSizeEntry *gse, gimp_size_entry_get_value (GimpSizeEntry *gse,
gint field) gint field)
{ {
@ -568,7 +565,7 @@ gimp_size_entry_get_value (GimpSizeEntry *gse,
static void static void
gimp_size_entry_update_value (GimpSizeEntryField *gsef, gimp_size_entry_update_value (GimpSizeEntryField *gsef,
gfloat value) gdouble value)
{ {
if (gsef->stop_recursion > 1) if (gsef->stop_recursion > 1)
return; return;
@ -619,7 +616,7 @@ gimp_size_entry_update_value (GimpSizeEntryField *gsef,
void void
gimp_size_entry_set_value (GimpSizeEntry *gse, gimp_size_entry_set_value (GimpSizeEntry *gse,
gint field, gint field,
gfloat value) gdouble value)
{ {
GimpSizeEntryField *gsef; GimpSizeEntryField *gsef;
@ -642,7 +639,7 @@ gimp_size_entry_value_callback (GtkWidget *widget,
gpointer data) gpointer data)
{ {
GimpSizeEntryField *gsef; GimpSizeEntryField *gsef;
gfloat new_value; gdouble new_value;
gsef = (GimpSizeEntryField*) data; gsef = (GimpSizeEntryField*) data;
@ -662,8 +659,8 @@ gimp_size_entry_value_callback (GtkWidget *widget,
void void
gimp_size_entry_set_refval_boundaries (GimpSizeEntry *gse, gimp_size_entry_set_refval_boundaries (GimpSizeEntry *gse,
gint field, gint field,
gfloat lower, gdouble lower,
gfloat upper) gdouble upper)
{ {
GimpSizeEntryField *gsef; GimpSizeEntryField *gsef;
@ -761,7 +758,7 @@ gimp_size_entry_set_refval_digits (GimpSizeEntry *gse,
} }
} }
gfloat gdouble
gimp_size_entry_get_refval (GimpSizeEntry *gse, gimp_size_entry_get_refval (GimpSizeEntry *gse,
gint field) gint field)
{ {
@ -778,7 +775,7 @@ gimp_size_entry_get_refval (GimpSizeEntry *gse,
static void static void
gimp_size_entry_update_refval (GimpSizeEntryField *gsef, gimp_size_entry_update_refval (GimpSizeEntryField *gsef,
gfloat refval) gdouble refval)
{ {
if (gsef->stop_recursion > 1) if (gsef->stop_recursion > 1)
return; return;
@ -827,7 +824,7 @@ gimp_size_entry_update_refval (GimpSizeEntryField *gsef,
void void
gimp_size_entry_set_refval (GimpSizeEntry *gse, gimp_size_entry_set_refval (GimpSizeEntry *gse,
gint field, gint field,
gfloat refval) gdouble refval)
{ {
GimpSizeEntryField *gsef; GimpSizeEntryField *gsef;
@ -853,7 +850,7 @@ gimp_size_entry_refval_callback (GtkWidget *widget,
gpointer data) gpointer data)
{ {
GimpSizeEntryField *gsef; GimpSizeEntryField *gsef;
gfloat new_refval; gdouble new_refval;
gsef = (GimpSizeEntryField*) data; gsef = (GimpSizeEntryField*) data;

View File

@ -16,7 +16,6 @@
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA. * Boston, MA 02111-1307, USA.
*/ */
#ifndef __GIMP_SIZE_ENTRY_H__ #ifndef __GIMP_SIZE_ENTRY_H__
#define __GIMP_SIZE_ENTRY_H__ #define __GIMP_SIZE_ENTRY_H__
@ -133,7 +132,7 @@ void gimp_size_entry_attach_label (GimpSizeEntry *gse,
*/ */
void gimp_size_entry_set_resolution (GimpSizeEntry *gse, void gimp_size_entry_set_resolution (GimpSizeEntry *gse,
gint field, gint field,
gfloat resolution, gdouble resolution,
guint keep_size); guint keep_size);
/* this one sets the values (in pixels) which will be treated as /* this one sets the values (in pixels) which will be treated as
@ -143,8 +142,8 @@ void gimp_size_entry_set_resolution (GimpSizeEntry *gse,
*/ */
void gimp_size_entry_set_size (GimpSizeEntry *gse, void gimp_size_entry_set_size (GimpSizeEntry *gse,
gint field, gint field,
gfloat lower, gdouble lower,
gfloat upper); gdouble upper);
/* these functions set/return the value in the units the user selected /* these functions set/return the value in the units the user selected
* note that in some cases where the caller chooses not to have the * note that in some cases where the caller chooses not to have the
@ -153,13 +152,13 @@ void gimp_size_entry_set_size (GimpSizeEntry *gse,
*/ */
void gimp_size_entry_set_value_boundaries (GimpSizeEntry *gse, void gimp_size_entry_set_value_boundaries (GimpSizeEntry *gse,
gint field, gint field,
gfloat lower, gdouble lower,
gfloat upper); gdouble upper);
gfloat gimp_size_entry_get_value (GimpSizeEntry *gse, gdouble gimp_size_entry_get_value (GimpSizeEntry *gse,
gint field); gint field);
void gimp_size_entry_set_value (GimpSizeEntry *gse, void gimp_size_entry_set_value (GimpSizeEntry *gse,
gint field, gint field,
gfloat value); gdouble value);
/* these functions set/return the value in the 'reference unit' for the /* these functions set/return the value in the 'reference unit' for the
* current update policy * current update policy
@ -171,16 +170,16 @@ void gimp_size_entry_set_value (GimpSizeEntry *gse,
*/ */
void gimp_size_entry_set_refval_boundaries (GimpSizeEntry *gse, void gimp_size_entry_set_refval_boundaries (GimpSizeEntry *gse,
gint field, gint field,
gfloat lower, gdouble lower,
gfloat upper); gdouble upper);
void gimp_size_entry_set_refval_digits (GimpSizeEntry *gse, void gimp_size_entry_set_refval_digits (GimpSizeEntry *gse,
gint field, gint field,
gint digits); gint digits);
gfloat gimp_size_entry_get_refval (GimpSizeEntry *gse, gdouble gimp_size_entry_get_refval (GimpSizeEntry *gse,
gint field); gint field);
void gimp_size_entry_set_refval (GimpSizeEntry *gse, void gimp_size_entry_set_refval (GimpSizeEntry *gse,
gint field, gint field,
gfloat refval); gdouble refval);
/* these functions set/return the currently used unit /* these functions set/return the currently used unit
* note that for GIMP_SIZE_ENTRY_UPDATE_SIZE a value of UNIT_PIXEL * note that for GIMP_SIZE_ENTRY_UPDATE_SIZE a value of UNIT_PIXEL

View File

@ -453,9 +453,10 @@ gimp_unit_menu_create_selection (GimpUnitMenu *gum)
gum->selection = gtk_dialog_new (); gum->selection = gtk_dialog_new ();
gtk_window_set_wmclass (GTK_WINDOW (gum->selection), gtk_window_set_wmclass (GTK_WINDOW (gum->selection),
"unitselection", "Gimp"); "unit_selection", "Gimp");
gtk_window_set_title (GTK_WINDOW (gum->selection), _("Unit Selection")); gtk_window_set_title (GTK_WINDOW (gum->selection), _("Unit Selection"));
gtk_window_set_policy (GTK_WINDOW(gum->selection), FALSE, TRUE, FALSE); gtk_window_set_policy (GTK_WINDOW (gum->selection), FALSE, TRUE, FALSE);
gtk_window_position (GTK_WINDOW (gum->selection), GTK_WIN_POS_MOUSE);
vbox = gtk_vbox_new (FALSE, 2); vbox = gtk_vbox_new (FALSE, 2);
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (gum->selection)->vbox), vbox); gtk_container_add (GTK_CONTAINER (GTK_DIALOG (gum->selection)->vbox), vbox);

View File

@ -1270,13 +1270,13 @@ newsprint_dialog (GDrawable *drawable)
#ifdef GIMP_HAVE_RESOLUTION_INFO #ifdef GIMP_HAVE_RESOLUTION_INFO
{ {
float xres, yres; double xres, yres;
gimp_image_get_resolution(gimp_drawable_image_id(drawable->id), gimp_image_get_resolution(gimp_drawable_image_id(drawable->id),
&xres, &yres); &xres, &yres);
/* XXX hack: should really note both resolutions, and use /* XXX hack: should really note both resolutions, and use
* rectangular cells, not square cells. But I'm being lazy, * rectangular cells, not square cells. But I'm being lazy,
* and the majority of the world works with xres == yres */ * and the majority of the world works with xres == yres */
pvals_ui.input_spi = xres; pvals_ui.input_spi = xres;
} }
#endif #endif

View File

@ -37,6 +37,39 @@
* Revision History: * Revision History:
* *
* $Log$ * $Log$
* Revision 1.18 1999/05/22 17:56:32 mitch
* 1999-05-22 Michael Natterer <mitschel@cs.tu-berlin.de>
*
* * app/[all files with resolution info]
* * libgimp/gimp.h
* * libgimp/gimpimage.c
* * libgimp/gimpsizeentry.[ch]
* * libgimp/gimpunit.[ch]
* * plug-ins/newsprint/newsprint.c
* * plug-ins/pgn/png.c
* * plug-ins/tiff/tiff.c: double instead of float for all resolution
* and unit-factor variables.
*
* * app/commands.c
* * app/crop.c
* * app/interface.c
* * app/layers_dialog.c
* * app/move_tool.c
* * app/resize.c
* * app/rotate_tool.c
* * app/scale_tool.c: pass the image's unit *and* gdisp->dot_for_dot
* to all functions which create sizeentries. Never create a
* sizeentry with UNIT_PIXEL but with the image's unit and set it's
* unit to UNIT_PIXEL after creation if dot_for_dot is on.
* This way the image's unit can always be picked from the menu
* without selecting "More...".
*
* * app/interface.c: made the query_*_box() functions use the
* ActionArea.
*
* * plug-ins/gimpunitmenu.c: GTK_WIN_POS_MOUSE for the unit
* selection dialog.
*
* Revision 1.17 1999/05/04 17:20:05 mitch * Revision 1.17 1999/05/04 17:20:05 mitch
* 1999-05-02 Michael Natterer <mitschel@cs.tu-berlin.de> * 1999-05-02 Michael Natterer <mitschel@cs.tu-berlin.de>
* *
@ -668,12 +701,12 @@ load_image(char *filename) /* I - File to load */
{ {
if (info->phys_unit_type == PNG_RESOLUTION_METER) if (info->phys_unit_type == PNG_RESOLUTION_METER)
gimp_image_set_resolution(image, gimp_image_set_resolution(image,
((float) info->x_pixels_per_unit) * 0.0254, ((double) info->x_pixels_per_unit) * 0.0254,
((float) info->y_pixels_per_unit) * 0.0254); ((double) info->y_pixels_per_unit) * 0.0254);
else /* set aspect ratio as resolution */ else /* set aspect ratio as resolution */
gimp_image_set_resolution(image, gimp_image_set_resolution(image,
((float) info->x_pixels_per_unit), ((double) info->x_pixels_per_unit),
((float) info->y_pixels_per_unit)); ((double) info->y_pixels_per_unit));
} }
#endif /* GIMP_HAVE_RESOLUTION_INFO */ #endif /* GIMP_HAVE_RESOLUTION_INFO */
@ -793,7 +826,7 @@ save_image(char *filename, /* I - File to save to */
guchar **pixels, /* Pixel rows */ guchar **pixels, /* Pixel rows */
*pixel; /* Pixel data */ *pixel; /* Pixel data */
char progress[255]; /* Title for progress display... */ char progress[255]; /* Title for progress display... */
float xres, yres; /* GIMP resolution (dpi) */ gdouble xres, yres; /* GIMP resolution (dpi) */
gdouble gamma; gdouble gamma;
/* /*

View File

@ -518,7 +518,7 @@ static gint32 load_image (char *filename) {
/* now set the new image's resolution info */ /* now set the new image's resolution info */
gimp_image_set_resolution (image, xres, yres); gimp_image_set_resolution (image, xres, yres);
if (unit != UNIT_PIXEL) if (unit != UNIT_PIXEL)
gimp_image_set_unit(image, unit); gimp_image_set_unit (image, unit);
} }
/* no x res tag => we assume we have no resolution info, so we /* no x res tag => we assume we have no resolution info, so we
@ -1138,33 +1138,33 @@ static gint save_image (char *filename, gint32 image, gint32 layer) {
#ifdef GIMP_HAVE_RESOLUTION_INFO #ifdef GIMP_HAVE_RESOLUTION_INFO
/* resolution fields */ /* resolution fields */
{ {
float xresolution; double xresolution;
float yresolution; double yresolution;
unsigned short save_unit = RESUNIT_INCH; unsigned short save_unit = RESUNIT_INCH;
GUnit unit; GUnit unit;
float factor; float factor;
gimp_image_get_resolution (image, &xresolution, &yresolution); gimp_image_get_resolution (image, &xresolution, &yresolution);
unit = gimp_image_get_unit (image); unit = gimp_image_get_unit (image);
factor = gimp_unit_get_factor (unit); factor = gimp_unit_get_factor (unit);
/* if we have a metric unit, save the resolution as centimeters /* if we have a metric unit, save the resolution as centimeters
*/ */
if ((ABS(factor - 0.0254) < 1e-5) || /* m */ if ((ABS(factor - 0.0254) < 1e-5) || /* m */
(ABS(factor - 0.254) < 1e-5) || /* why not ;) */ (ABS(factor - 0.254) < 1e-5) || /* why not ;) */
(ABS(factor - 2.54) < 1e-5) || /* cm */ (ABS(factor - 2.54) < 1e-5) || /* cm */
(ABS(factor - 25.4) < 1e-5)) /* mm */ (ABS(factor - 25.4) < 1e-5)) /* mm */
{
save_unit = RESUNIT_CENTIMETER;
xresolution /= 2.54;
yresolution /= 2.54;
}
if (xresolution > 1e-5 && yresolution > 1e-5)
{ {
TIFFSetField (tif, TIFFTAG_XRESOLUTION, xresolution); save_unit = RESUNIT_CENTIMETER;
TIFFSetField (tif, TIFFTAG_YRESOLUTION, yresolution); xresolution /= 2.54;
TIFFSetField (tif, TIFFTAG_RESOLUTIONUNIT, save_unit); yresolution /= 2.54;
}
if (xresolution > 1e-5 && yresolution > 1e-5)
{
TIFFSetField (tif, TIFFTAG_XRESOLUTION, xresolution);
TIFFSetField (tif, TIFFTAG_YRESOLUTION, yresolution);
TIFFSetField (tif, TIFFTAG_RESOLUTIONUNIT, save_unit);
} }
} }
#endif /* GIMP_HAVE_RESOLUTION_INFO */ #endif /* GIMP_HAVE_RESOLUTION_INFO */

View File

@ -1270,13 +1270,13 @@ newsprint_dialog (GDrawable *drawable)
#ifdef GIMP_HAVE_RESOLUTION_INFO #ifdef GIMP_HAVE_RESOLUTION_INFO
{ {
float xres, yres; double xres, yres;
gimp_image_get_resolution(gimp_drawable_image_id(drawable->id), gimp_image_get_resolution(gimp_drawable_image_id(drawable->id),
&xres, &yres); &xres, &yres);
/* XXX hack: should really note both resolutions, and use /* XXX hack: should really note both resolutions, and use
* rectangular cells, not square cells. But I'm being lazy, * rectangular cells, not square cells. But I'm being lazy,
* and the majority of the world works with xres == yres */ * and the majority of the world works with xres == yres */
pvals_ui.input_spi = xres; pvals_ui.input_spi = xres;
} }
#endif #endif

Some files were not shown because too many files have changed in this diff Show More