mirror of https://github.com/GNOME/gimp.git
app: change gimp_pickable_auto_shrink()'s parameters
from x1, y1, x2, y2 to x, y, width, height.
This commit is contained in:
parent
9a9899e542
commit
ea98f9967e
|
@ -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;
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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__ */
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue