app: change gimp_pickable_auto_shrink()'s parameters

from x1, y1, x2, y2 to x, y, width, height.
This commit is contained in:
Michael Natterer 2016-09-25 22:40:28 +02:00
parent 9a9899e542
commit ea98f9967e
7 changed files with 91 additions and 95 deletions

View File

@ -724,7 +724,8 @@ image_crop_to_content_cmd_callback (GtkAction *action,
{
GimpImage *image;
GtkWidget *widget;
gint x1, y1, x2, y2;
gint x, y;
gint width, height;
return_if_no_image (image, data);
return_if_no_widget (widget, data);
@ -732,11 +733,11 @@ image_crop_to_content_cmd_callback (GtkAction *action,
0, 0,
gimp_image_get_width (image),
gimp_image_get_height (image),
&x1, &y1, &x2, &y2))
&x, &y, &width, &height))
{
case GIMP_AUTO_SHRINK_SHRINK:
gimp_image_crop (image, action_data_get_context (data),
x1, y1, x2 - x1, y2 - y1, TRUE);
x, y, width, height, TRUE);
gimp_image_flush (image);
break;

View File

@ -743,7 +743,8 @@ layers_crop_to_selection_cmd_callback (GtkAction *action,
{
gimp_message_literal (image->gimp,
G_OBJECT (widget), GIMP_MESSAGE_WARNING,
_("Cannot crop because the current selection is empty."));
_("Cannot crop because the current selection "
"is empty."));
return;
}
@ -768,7 +769,8 @@ layers_crop_to_content_cmd_callback (GtkAction *action,
GimpImage *image;
GimpLayer *layer;
GtkWidget *widget;
gint x1, y1, x2, y2;
gint x, y;
gint width, height;
return_if_no_layer (image, layer, data);
return_if_no_widget (widget, data);
@ -776,14 +778,14 @@ layers_crop_to_content_cmd_callback (GtkAction *action,
0, 0,
gimp_item_get_width (GIMP_ITEM (layer)),
gimp_item_get_height (GIMP_ITEM (layer)),
&x1, &y1, &x2, &y2))
&x, &y, &width, &height))
{
case GIMP_AUTO_SHRINK_SHRINK:
gimp_image_undo_group_start (image, GIMP_UNDO_GROUP_ITEM_RESIZE,
_("Crop Layer to Content"));
gimp_item_resize (GIMP_ITEM (layer), action_data_get_context (data),
x2 - x1, y2 - y1, -x1, -y1);
width, height, -x, -y);
gimp_image_undo_group_end (image);
gimp_image_flush (image);
@ -792,13 +794,15 @@ layers_crop_to_content_cmd_callback (GtkAction *action,
case GIMP_AUTO_SHRINK_EMPTY:
gimp_message_literal (image->gimp,
G_OBJECT (widget), GIMP_MESSAGE_INFO,
_("Cannot crop because the active layer has no content."));
_("Cannot crop because the active layer "
"has no content."));
break;
case GIMP_AUTO_SHRINK_UNSHRINKABLE:
gimp_message_literal (image->gimp,
G_OBJECT (widget), GIMP_MESSAGE_INFO,
_("Cannot crop because the active layer is already cropped to its content."));
_("Cannot crop because the active layer "
"is already cropped to its content."));
break;
}
}
@ -1319,7 +1323,6 @@ layers_resize_callback (GtkWidget *dialog,
gimp_item_resize (item, context,
width, height, offset_x, offset_y);
gimp_image_flush (gimp_item_get_image (item));
}
else

View File

@ -60,14 +60,14 @@ static gboolean gimp_pickable_colors_alpha (guchar *col1,
GimpAutoShrink
gimp_pickable_auto_shrink (GimpPickable *pickable,
gint start_x1,
gint start_y1,
gint start_x2,
gint start_y2,
gint *shrunk_x1,
gint *shrunk_y1,
gint *shrunk_x2,
gint *shrunk_y2)
gint start_x,
gint start_y,
gint start_width,
gint start_height,
gint *shrunk_x,
gint *shrunk_y,
gint *shrunk_width,
gint *shrunk_height)
{
GeglBuffer *buffer;
GeglRectangle rect;
@ -81,10 +81,10 @@ gimp_pickable_auto_shrink (GimpPickable *pickable,
GimpAutoShrink retval = GIMP_AUTO_SHRINK_UNSHRINKABLE;
g_return_val_if_fail (GIMP_IS_PICKABLE (pickable), FALSE);
g_return_val_if_fail (shrunk_x1 != NULL, FALSE);
g_return_val_if_fail (shrunk_y1 != NULL, FALSE);
g_return_val_if_fail (shrunk_x2 != NULL, FALSE);
g_return_val_if_fail (shrunk_y2 != NULL, FALSE);
g_return_val_if_fail (shrunk_x != NULL, FALSE);
g_return_val_if_fail (shrunk_y != NULL, FALSE);
g_return_val_if_fail (shrunk_width != NULL, FALSE);
g_return_val_if_fail (shrunk_height != NULL, FALSE);
gimp_set_busy (gimp_pickable_get_image (pickable)->gimp);
@ -98,16 +98,16 @@ gimp_pickable_auto_shrink (GimpPickable *pickable,
buffer = gimp_pickable_get_buffer (pickable);
x1 = MAX (start_x1, 0);
y1 = MAX (start_y1, 0);
x2 = MIN (start_x2, gegl_buffer_get_width (buffer));
y2 = MIN (start_y2, gegl_buffer_get_height (buffer));
x1 = MAX (start_x, 0);
y1 = MAX (start_y, 0);
x2 = MIN (start_x + start_width, gegl_buffer_get_width (buffer));
y2 = MIN (start_y + start_height, gegl_buffer_get_height (buffer));
/* By default, return the start values */
*shrunk_x1 = x1;
*shrunk_y1 = y1;
*shrunk_x2 = x2;
*shrunk_y2 = y2;
*shrunk_x = x1;
*shrunk_y = y1;
*shrunk_width = x2 - x1;
*shrunk_height = y2 - y1;
format = babl_format ("R'G'B'A u8");
@ -210,13 +210,15 @@ gimp_pickable_auto_shrink (GimpPickable *pickable,
}
x2 = x + 1;
if (x1 != start_x1 || y1 != start_y1 ||
x2 != start_x2 || y2 != start_y2)
if (x1 != start_x ||
y1 != start_y ||
x2 - x1 != start_width ||
y2 - y1 != start_height)
{
*shrunk_x1 = x1;
*shrunk_y1 = y1;
*shrunk_x2 = x2;
*shrunk_y2 = y2;
*shrunk_x = x1;
*shrunk_y = y1;
*shrunk_width = x2 - x1;
*shrunk_height = y2 - y1;
retval = GIMP_AUTO_SHRINK_SHRINK;
}

View File

@ -28,14 +28,14 @@ typedef enum
GimpAutoShrink gimp_pickable_auto_shrink (GimpPickable *pickable,
gint x1,
gint y1,
gint x2,
gint y2,
gint *shrunk_x1,
gint *shrunk_y1,
gint *shrunk_x2,
gint *shrunk_y2);
gint x,
gint y,
gint width,
gint height,
gint *shrunk_x,
gint *shrunk_y,
gint *shrunk_width,
gint *shrunk_height);
#endif /* __GIMP_PICKABLE_AUTO_SHRINK_H__ */

View File

@ -581,42 +581,37 @@ plug_in_autocrop_invoker (GimpProcedure *procedure,
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL,
GIMP_PDB_ITEM_CONTENT, error))
{
gint x1, y1, x2, y2;
gint x, y, width, height;
gint off_x, off_y;
gimp_pickable_auto_shrink (GIMP_PICKABLE (drawable),
0, 0,
gimp_item_get_width (GIMP_ITEM (drawable)),
gimp_item_get_height (GIMP_ITEM (drawable)),
&x1, &y1, &x2, &y2);
&x, &y, &width, &height);
gimp_item_get_offset (GIMP_ITEM (drawable), &off_x, &off_y);
x1 += off_x; x2 += off_x;
y1 += off_y; y2 += off_y;
x += off_x;
y += off_y;
gimp_image_undo_group_start (image, GIMP_UNDO_GROUP_ITEM_RESIZE,
_("Autocrop image"));
if (x1 < 0 || y1 < 0 ||
x2 > gimp_image_get_width (image) ||
y2 > gimp_image_get_height (image))
if (x < 0 ||
y < 0 ||
x + width > gimp_image_get_width (image) ||
y + height > gimp_image_get_height (image))
{
/*
* partially outside the image area, we need to
* resize the image to be able to crop properly.
*/
gimp_image_resize (image, context,
x2 - x1, y2 - y1, -x1, -y1, NULL);
gimp_image_resize (image, context, width, height, -x, -y, NULL);
x2 -= x1;
y2 -= y1;
x1 = y1 = 0;
x = y = 0;
}
gimp_image_crop (image, context,
x1, y1, x2 - x1, y2 - y1, TRUE);
gimp_image_crop (image, context, x, y, width, height, TRUE);
gimp_image_undo_group_end (image);
}
@ -649,7 +644,7 @@ plug_in_autocrop_layer_invoker (GimpProcedure *procedure,
GIMP_PDB_ITEM_CONTENT, error))
{
GimpLayer *layer = gimp_image_get_active_layer (image);
gint x1, y1, x2, y2;
gint x, y, width, height;
if (layer)
{
@ -657,14 +652,14 @@ plug_in_autocrop_layer_invoker (GimpProcedure *procedure,
0, 0,
gimp_item_get_width (GIMP_ITEM (drawable)),
gimp_item_get_height (GIMP_ITEM (drawable)),
&x1, &y1, &x2, &y2))
&x, &y, &width, &height))
{
case GIMP_AUTO_SHRINK_SHRINK:
gimp_image_undo_group_start (image, GIMP_UNDO_GROUP_ITEM_RESIZE,
_("Autocrop layer"));
gimp_item_resize (GIMP_ITEM (layer), context,
x2 - x1, y2 - y1, -x1, -y1);
width, height, -x, -y);
gimp_image_undo_group_end (image);
break;

View File

@ -2500,10 +2500,10 @@ gimp_rectangle_tool_auto_shrink (GimpRectangleTool *rect_tool)
gint offset_y = 0;
gint x1, y1;
gint x2, y2;
gint shrunk_x1;
gint shrunk_y1;
gint shrunk_x2;
gint shrunk_y2;
gint shrunk_x;
gint shrunk_y;
gint shrunk_width;
gint shrunk_height;
gboolean shrink_merged;
if (! display)
@ -2540,11 +2540,11 @@ gimp_rectangle_tool_auto_shrink (GimpRectangleTool *rect_tool)
}
switch (gimp_pickable_auto_shrink (pickable,
x1, y1, x2, y2,
&shrunk_x1,
&shrunk_y1,
&shrunk_x2,
&shrunk_y2))
x1, y1, x2 - x1, y2 - y1,
&shrunk_x,
&shrunk_y,
&shrunk_width,
&shrunk_height))
{
case GIMP_AUTO_SHRINK_SHRINK:
{
@ -2553,10 +2553,10 @@ gimp_rectangle_tool_auto_shrink (GimpRectangleTool *rect_tool)
gimp_draw_tool_pause (GIMP_DRAW_TOOL (rect_tool));
private->function = GIMP_RECTANGLE_TOOL_AUTO_SHRINK;
private->x1 = offset_x + shrunk_x1;
private->y1 = offset_y + shrunk_y1;
private->x2 = offset_x + shrunk_x2;
private->y2 = offset_y + shrunk_y2;
private->x1 = offset_x + shrunk_x;
private->y1 = offset_y + shrunk_y;
private->x2 = offset_x + shrunk_x + shrunk_width;
private->y2 = offset_y + shrunk_y + shrunk_height;
gimp_rectangle_tool_update_int_rect (rect_tool);

View File

@ -274,42 +274,37 @@ HELP
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), NULL,
GIMP_PDB_ITEM_CONTENT, error))
{
gint x1, y1, x2, y2;
gint x, y, width, height;
gint off_x, off_y;
gimp_pickable_auto_shrink (GIMP_PICKABLE (drawable),
0, 0,
gimp_item_get_width (GIMP_ITEM (drawable)),
gimp_item_get_height (GIMP_ITEM (drawable)),
&x1, &y1, &x2, &y2);
&x, &y, &width, &height);
gimp_item_get_offset (GIMP_ITEM (drawable), &off_x, &off_y);
x1 += off_x; x2 += off_x;
y1 += off_y; y2 += off_y;
x += off_x;
y += off_y;
gimp_image_undo_group_start (image, GIMP_UNDO_GROUP_ITEM_RESIZE,
_("Autocrop image"));
if (x1 < 0 || y1 < 0 ||
x2 > gimp_image_get_width (image) ||
y2 > gimp_image_get_height (image))
if (x < 0 ||
y < 0 ||
x + width > gimp_image_get_width (image) ||
y + height > gimp_image_get_height (image))
{
/*
* partially outside the image area, we need to
* resize the image to be able to crop properly.
*/
gimp_image_resize (image, context,
x2 - x1, y2 - y1, -x1, -y1, NULL);
gimp_image_resize (image, context, width, height, -x, -y, NULL);
x2 -= x1;
y2 -= y1;
x1 = y1 = 0;
x = y = 0;
}
gimp_image_crop (image, context,
x1, y1, x2 - x1, y2 - y1, TRUE);
gimp_image_crop (image, context, x, y, width, height, TRUE);
gimp_image_undo_group_end (image);
}
@ -347,7 +342,7 @@ HELP
GIMP_PDB_ITEM_CONTENT, error))
{
GimpLayer *layer = gimp_image_get_active_layer (image);
gint x1, y1, x2, y2;
gint x, y, width, height;
if (layer)
{
@ -355,14 +350,14 @@ HELP
0, 0,
gimp_item_get_width (GIMP_ITEM (drawable)),
gimp_item_get_height (GIMP_ITEM (drawable)),
&x1, &y1, &x2, &y2))
&x, &y, &width, &height))
{
case GIMP_AUTO_SHRINK_SHRINK:
gimp_image_undo_group_start (image, GIMP_UNDO_GROUP_ITEM_RESIZE,
_("Autocrop layer"));
gimp_item_resize (GIMP_ITEM (layer), context,
x2 - x1, y2 - y1, -x1, -y1);
width, height, -x, -y);
gimp_image_undo_group_end (image);
break;