I promise to never say 'perfect' again...
--Sven
This commit is contained in:
@ -1,3 +1,9 @@
|
|||||||
|
Sat Aug 21 15:16:00 MEST 1999 Sven Neumann <sven@gimp.org>
|
||||||
|
|
||||||
|
* app/measure.c: corrected my last "fix"
|
||||||
|
* app/paint_core.c: corrected an error in the modifier handling I
|
||||||
|
introduced earlier
|
||||||
|
|
||||||
Sat Aug 21 13:30:38 MEST 1999 Sven Neumann <sven@gimp.org>
|
Sat Aug 21 13:30:38 MEST 1999 Sven Neumann <sven@gimp.org>
|
||||||
|
|
||||||
* app/measure.c: corrected the guides placement and added
|
* app/measure.c: corrected the guides placement and added
|
||||||
|
@ -186,8 +186,10 @@ measure_tool_button_press (Tool *tool,
|
|||||||
{
|
{
|
||||||
GDisplay *old_gdisp = tool->gdisp_ptr;
|
GDisplay *old_gdisp = tool->gdisp_ptr;
|
||||||
gtk_statusbar_pop (GTK_STATUSBAR (old_gdisp->statusbar), measure_tool->context_id);
|
gtk_statusbar_pop (GTK_STATUSBAR (old_gdisp->statusbar), measure_tool->context_id);
|
||||||
}
|
gtk_statusbar_push (GTK_STATUSBAR (gdisp->statusbar),
|
||||||
|
measure_tool->context_id, (""));
|
||||||
|
}
|
||||||
|
|
||||||
measure_tool->function = CREATING;
|
measure_tool->function = CREATING;
|
||||||
|
|
||||||
if (tool->state == ACTIVE && gdisp_ptr == tool->gdisp_ptr)
|
if (tool->state == ACTIVE && gdisp_ptr == tool->gdisp_ptr)
|
||||||
@ -197,7 +199,7 @@ measure_tool_button_press (Tool *tool,
|
|||||||
for (i=0; i < measure_tool->num_points; i++)
|
for (i=0; i < measure_tool->num_points; i++)
|
||||||
{
|
{
|
||||||
gdisplay_transform_coords (gdisp, measure_tool->x[i], measure_tool->y[i],
|
gdisplay_transform_coords (gdisp, measure_tool->x[i], measure_tool->y[i],
|
||||||
&x[i], &y[i], TRUE);
|
&x[i], &y[i], FALSE);
|
||||||
if (bevent->x == BOUNDS (bevent->x, x[i] - TARGET, x[i] + TARGET) &&
|
if (bevent->x == BOUNDS (bevent->x, x[i] - TARGET, x[i] + TARGET) &&
|
||||||
bevent->y == BOUNDS (bevent->y, y[i] - TARGET, y[i] + TARGET))
|
bevent->y == BOUNDS (bevent->y, y[i] - TARGET, y[i] + TARGET))
|
||||||
{
|
{
|
||||||
@ -205,13 +207,15 @@ measure_tool_button_press (Tool *tool,
|
|||||||
{
|
{
|
||||||
Guide *guide;
|
Guide *guide;
|
||||||
|
|
||||||
if (bevent->state & GDK_CONTROL_MASK)
|
if (bevent->state & GDK_CONTROL_MASK &&
|
||||||
|
(measure_tool->y[i] == BOUNDS (measure_tool->y[i], 0, gdisp->gimage->height)))
|
||||||
{
|
{
|
||||||
guide = gimp_image_add_hguide (gdisp->gimage);
|
guide = gimp_image_add_hguide (gdisp->gimage);
|
||||||
guide->position = measure_tool->y[i];
|
guide->position = measure_tool->y[i];
|
||||||
gdisplays_expose_guide (gdisp->gimage, guide);
|
gdisplays_expose_guide (gdisp->gimage, guide);
|
||||||
}
|
}
|
||||||
if (bevent->state & GDK_MOD1_MASK)
|
if (bevent->state & GDK_MOD1_MASK &&
|
||||||
|
(measure_tool->x[i] == BOUNDS (measure_tool->x[i], 0, gdisp->gimage->width)))
|
||||||
{
|
{
|
||||||
guide = gimp_image_add_vguide (gdisp->gimage);
|
guide = gimp_image_add_vguide (gdisp->gimage);
|
||||||
guide->position = measure_tool->x[i];
|
guide->position = measure_tool->x[i];
|
||||||
@ -235,7 +239,11 @@ measure_tool_button_press (Tool *tool,
|
|||||||
{
|
{
|
||||||
if (tool->state == ACTIVE)
|
if (tool->state == ACTIVE)
|
||||||
draw_core_stop (measure_tool->core, tool);
|
draw_core_stop (measure_tool->core, tool);
|
||||||
|
else
|
||||||
|
/* initialize the statusbar display */
|
||||||
|
measure_tool->context_id =
|
||||||
|
gtk_statusbar_get_context_id (GTK_STATUSBAR (gdisp->statusbar), "measure");
|
||||||
|
|
||||||
/* set the first point and go into ADDING mode */
|
/* set the first point and go into ADDING mode */
|
||||||
gdisplay_untransform_coords (gdisp, bevent->x, bevent->y,
|
gdisplay_untransform_coords (gdisp, bevent->x, bevent->y,
|
||||||
&measure_tool->x[0], &measure_tool->y[0], TRUE, FALSE);
|
&measure_tool->x[0], &measure_tool->y[0], TRUE, FALSE);
|
||||||
@ -246,12 +254,6 @@ measure_tool_button_press (Tool *tool,
|
|||||||
/* set the gdisplay */
|
/* set the gdisplay */
|
||||||
tool->gdisp_ptr = gdisp_ptr;
|
tool->gdisp_ptr = gdisp_ptr;
|
||||||
|
|
||||||
/* initialize the statusbar display */
|
|
||||||
measure_tool->context_id =
|
|
||||||
gtk_statusbar_get_context_id (GTK_STATUSBAR (gdisp->statusbar), "measure");
|
|
||||||
gtk_statusbar_push (GTK_STATUSBAR (gdisp->statusbar),
|
|
||||||
measure_tool->context_id, (""));
|
|
||||||
|
|
||||||
/* start drawing the measure tool */
|
/* start drawing the measure tool */
|
||||||
draw_core_start (measure_tool->core, gdisp->canvas->window, tool);
|
draw_core_start (measure_tool->core, gdisp->canvas->window, tool);
|
||||||
}
|
}
|
||||||
@ -397,7 +399,6 @@ measure_tool_motion (Tool *tool,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* calculate distance and angle */
|
/* calculate distance and angle */
|
||||||
ax = measure_tool->x[1] - measure_tool->x[0];
|
ax = measure_tool->x[1] - measure_tool->x[0];
|
||||||
ay = measure_tool->y[1] - measure_tool->y[0];
|
ay = measure_tool->y[1] - measure_tool->y[0];
|
||||||
@ -498,7 +499,7 @@ measure_tool_cursor_update (Tool *tool,
|
|||||||
for (i=0; i<measure_tool->num_points; i++)
|
for (i=0; i<measure_tool->num_points; i++)
|
||||||
{
|
{
|
||||||
gdisplay_transform_coords (gdisp, measure_tool->x[i], measure_tool->y[i],
|
gdisplay_transform_coords (gdisp, measure_tool->x[i], measure_tool->y[i],
|
||||||
&x[i], &y[i], TRUE);
|
&x[i], &y[i], FALSE);
|
||||||
|
|
||||||
if (mevent->x == BOUNDS (mevent->x, x[i] - TARGET, x[i] + TARGET) &&
|
if (mevent->x == BOUNDS (mevent->x, x[i] - TARGET, x[i] + TARGET) &&
|
||||||
mevent->y == BOUNDS (mevent->y, y[i] - TARGET, y[i] + TARGET))
|
mevent->y == BOUNDS (mevent->y, y[i] - TARGET, y[i] + TARGET))
|
||||||
@ -543,7 +544,7 @@ measure_tool_draw (Tool *tool)
|
|||||||
for (i = 0; i < measure_tool->num_points; i++)
|
for (i = 0; i < measure_tool->num_points; i++)
|
||||||
{
|
{
|
||||||
gdisplay_transform_coords (gdisp, measure_tool->x[i], measure_tool->y[i],
|
gdisplay_transform_coords (gdisp, measure_tool->x[i], measure_tool->y[i],
|
||||||
&x[i], &y[i], TRUE);
|
&x[i], &y[i], FALSE);
|
||||||
if (i == 0 && measure_tool->num_points == 3)
|
if (i == 0 && measure_tool->num_points == 3)
|
||||||
{
|
{
|
||||||
gdk_draw_arc (measure_tool->core->win, measure_tool->core->gc, FALSE,
|
gdk_draw_arc (measure_tool->core->win, measure_tool->core->gc, FALSE,
|
||||||
@ -665,6 +666,8 @@ tools_new_measure_tool (void)
|
|||||||
|
|
||||||
tool->private = (void *) private;
|
tool->private = (void *) private;
|
||||||
|
|
||||||
|
tool->preserve = TRUE; /* Preserve tool across drawable changes */
|
||||||
|
|
||||||
tool->button_press_func = measure_tool_button_press;
|
tool->button_press_func = measure_tool_button_press;
|
||||||
tool->button_release_func = measure_tool_button_release;
|
tool->button_release_func = measure_tool_button_release;
|
||||||
tool->motion_func = measure_tool_motion;
|
tool->motion_func = measure_tool_motion;
|
||||||
|
@ -212,15 +212,14 @@ paint_core_button_press (Tool *tool,
|
|||||||
{
|
{
|
||||||
if (bevent->state & GDK_CONTROL_MASK)
|
if (bevent->state & GDK_CONTROL_MASK)
|
||||||
{
|
{
|
||||||
double dx, dy;
|
double dx, dy, d;
|
||||||
|
|
||||||
dx = paint_core->curx - paint_core->lastx;
|
dx = paint_core->curx - paint_core->lastx;
|
||||||
dy = paint_core->cury - paint_core->lasty;
|
dy = paint_core->cury - paint_core->lasty;
|
||||||
|
d = (fabs(dx) + fabs(dy)) / 2;
|
||||||
|
|
||||||
paint_core->curx = paint_core->lastx +
|
paint_core->curx = paint_core->lastx + ((dx < 0) ? -d : d);
|
||||||
((dx < 0) && (dy > 0) ? - MAX (dx, dy) : MAX (dx, dy));
|
paint_core->cury = paint_core->lasty + ((dy < 0) ? -d : d);
|
||||||
paint_core->cury = paint_core->lasty +
|
|
||||||
((dy < 0) && (dx > 0) ? - MAX (dx, dy) : MAX (dx, dy));
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
paint_core->curx = paint_core->lastx;
|
paint_core->curx = paint_core->lastx;
|
||||||
@ -370,6 +369,8 @@ paint_core_cursor_update (Tool *tool,
|
|||||||
if (gdisp_ptr == tool->gdisp_ptr && (mevent->state & GDK_SHIFT_MASK))
|
if (gdisp_ptr == tool->gdisp_ptr && (mevent->state & GDK_SHIFT_MASK))
|
||||||
{
|
{
|
||||||
ctype = GDK_PENCIL;
|
ctype = GDK_PENCIL;
|
||||||
|
|
||||||
|
|
||||||
/* Get the current coordinates */
|
/* Get the current coordinates */
|
||||||
gdisplay_untransform_coords_f (gdisp,
|
gdisplay_untransform_coords_f (gdisp,
|
||||||
(double) mevent->x,
|
(double) mevent->x,
|
||||||
|
@ -186,8 +186,10 @@ measure_tool_button_press (Tool *tool,
|
|||||||
{
|
{
|
||||||
GDisplay *old_gdisp = tool->gdisp_ptr;
|
GDisplay *old_gdisp = tool->gdisp_ptr;
|
||||||
gtk_statusbar_pop (GTK_STATUSBAR (old_gdisp->statusbar), measure_tool->context_id);
|
gtk_statusbar_pop (GTK_STATUSBAR (old_gdisp->statusbar), measure_tool->context_id);
|
||||||
}
|
gtk_statusbar_push (GTK_STATUSBAR (gdisp->statusbar),
|
||||||
|
measure_tool->context_id, (""));
|
||||||
|
}
|
||||||
|
|
||||||
measure_tool->function = CREATING;
|
measure_tool->function = CREATING;
|
||||||
|
|
||||||
if (tool->state == ACTIVE && gdisp_ptr == tool->gdisp_ptr)
|
if (tool->state == ACTIVE && gdisp_ptr == tool->gdisp_ptr)
|
||||||
@ -197,7 +199,7 @@ measure_tool_button_press (Tool *tool,
|
|||||||
for (i=0; i < measure_tool->num_points; i++)
|
for (i=0; i < measure_tool->num_points; i++)
|
||||||
{
|
{
|
||||||
gdisplay_transform_coords (gdisp, measure_tool->x[i], measure_tool->y[i],
|
gdisplay_transform_coords (gdisp, measure_tool->x[i], measure_tool->y[i],
|
||||||
&x[i], &y[i], TRUE);
|
&x[i], &y[i], FALSE);
|
||||||
if (bevent->x == BOUNDS (bevent->x, x[i] - TARGET, x[i] + TARGET) &&
|
if (bevent->x == BOUNDS (bevent->x, x[i] - TARGET, x[i] + TARGET) &&
|
||||||
bevent->y == BOUNDS (bevent->y, y[i] - TARGET, y[i] + TARGET))
|
bevent->y == BOUNDS (bevent->y, y[i] - TARGET, y[i] + TARGET))
|
||||||
{
|
{
|
||||||
@ -205,13 +207,15 @@ measure_tool_button_press (Tool *tool,
|
|||||||
{
|
{
|
||||||
Guide *guide;
|
Guide *guide;
|
||||||
|
|
||||||
if (bevent->state & GDK_CONTROL_MASK)
|
if (bevent->state & GDK_CONTROL_MASK &&
|
||||||
|
(measure_tool->y[i] == BOUNDS (measure_tool->y[i], 0, gdisp->gimage->height)))
|
||||||
{
|
{
|
||||||
guide = gimp_image_add_hguide (gdisp->gimage);
|
guide = gimp_image_add_hguide (gdisp->gimage);
|
||||||
guide->position = measure_tool->y[i];
|
guide->position = measure_tool->y[i];
|
||||||
gdisplays_expose_guide (gdisp->gimage, guide);
|
gdisplays_expose_guide (gdisp->gimage, guide);
|
||||||
}
|
}
|
||||||
if (bevent->state & GDK_MOD1_MASK)
|
if (bevent->state & GDK_MOD1_MASK &&
|
||||||
|
(measure_tool->x[i] == BOUNDS (measure_tool->x[i], 0, gdisp->gimage->width)))
|
||||||
{
|
{
|
||||||
guide = gimp_image_add_vguide (gdisp->gimage);
|
guide = gimp_image_add_vguide (gdisp->gimage);
|
||||||
guide->position = measure_tool->x[i];
|
guide->position = measure_tool->x[i];
|
||||||
@ -235,7 +239,11 @@ measure_tool_button_press (Tool *tool,
|
|||||||
{
|
{
|
||||||
if (tool->state == ACTIVE)
|
if (tool->state == ACTIVE)
|
||||||
draw_core_stop (measure_tool->core, tool);
|
draw_core_stop (measure_tool->core, tool);
|
||||||
|
else
|
||||||
|
/* initialize the statusbar display */
|
||||||
|
measure_tool->context_id =
|
||||||
|
gtk_statusbar_get_context_id (GTK_STATUSBAR (gdisp->statusbar), "measure");
|
||||||
|
|
||||||
/* set the first point and go into ADDING mode */
|
/* set the first point and go into ADDING mode */
|
||||||
gdisplay_untransform_coords (gdisp, bevent->x, bevent->y,
|
gdisplay_untransform_coords (gdisp, bevent->x, bevent->y,
|
||||||
&measure_tool->x[0], &measure_tool->y[0], TRUE, FALSE);
|
&measure_tool->x[0], &measure_tool->y[0], TRUE, FALSE);
|
||||||
@ -246,12 +254,6 @@ measure_tool_button_press (Tool *tool,
|
|||||||
/* set the gdisplay */
|
/* set the gdisplay */
|
||||||
tool->gdisp_ptr = gdisp_ptr;
|
tool->gdisp_ptr = gdisp_ptr;
|
||||||
|
|
||||||
/* initialize the statusbar display */
|
|
||||||
measure_tool->context_id =
|
|
||||||
gtk_statusbar_get_context_id (GTK_STATUSBAR (gdisp->statusbar), "measure");
|
|
||||||
gtk_statusbar_push (GTK_STATUSBAR (gdisp->statusbar),
|
|
||||||
measure_tool->context_id, (""));
|
|
||||||
|
|
||||||
/* start drawing the measure tool */
|
/* start drawing the measure tool */
|
||||||
draw_core_start (measure_tool->core, gdisp->canvas->window, tool);
|
draw_core_start (measure_tool->core, gdisp->canvas->window, tool);
|
||||||
}
|
}
|
||||||
@ -397,7 +399,6 @@ measure_tool_motion (Tool *tool,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* calculate distance and angle */
|
/* calculate distance and angle */
|
||||||
ax = measure_tool->x[1] - measure_tool->x[0];
|
ax = measure_tool->x[1] - measure_tool->x[0];
|
||||||
ay = measure_tool->y[1] - measure_tool->y[0];
|
ay = measure_tool->y[1] - measure_tool->y[0];
|
||||||
@ -498,7 +499,7 @@ measure_tool_cursor_update (Tool *tool,
|
|||||||
for (i=0; i<measure_tool->num_points; i++)
|
for (i=0; i<measure_tool->num_points; i++)
|
||||||
{
|
{
|
||||||
gdisplay_transform_coords (gdisp, measure_tool->x[i], measure_tool->y[i],
|
gdisplay_transform_coords (gdisp, measure_tool->x[i], measure_tool->y[i],
|
||||||
&x[i], &y[i], TRUE);
|
&x[i], &y[i], FALSE);
|
||||||
|
|
||||||
if (mevent->x == BOUNDS (mevent->x, x[i] - TARGET, x[i] + TARGET) &&
|
if (mevent->x == BOUNDS (mevent->x, x[i] - TARGET, x[i] + TARGET) &&
|
||||||
mevent->y == BOUNDS (mevent->y, y[i] - TARGET, y[i] + TARGET))
|
mevent->y == BOUNDS (mevent->y, y[i] - TARGET, y[i] + TARGET))
|
||||||
@ -543,7 +544,7 @@ measure_tool_draw (Tool *tool)
|
|||||||
for (i = 0; i < measure_tool->num_points; i++)
|
for (i = 0; i < measure_tool->num_points; i++)
|
||||||
{
|
{
|
||||||
gdisplay_transform_coords (gdisp, measure_tool->x[i], measure_tool->y[i],
|
gdisplay_transform_coords (gdisp, measure_tool->x[i], measure_tool->y[i],
|
||||||
&x[i], &y[i], TRUE);
|
&x[i], &y[i], FALSE);
|
||||||
if (i == 0 && measure_tool->num_points == 3)
|
if (i == 0 && measure_tool->num_points == 3)
|
||||||
{
|
{
|
||||||
gdk_draw_arc (measure_tool->core->win, measure_tool->core->gc, FALSE,
|
gdk_draw_arc (measure_tool->core->win, measure_tool->core->gc, FALSE,
|
||||||
@ -665,6 +666,8 @@ tools_new_measure_tool (void)
|
|||||||
|
|
||||||
tool->private = (void *) private;
|
tool->private = (void *) private;
|
||||||
|
|
||||||
|
tool->preserve = TRUE; /* Preserve tool across drawable changes */
|
||||||
|
|
||||||
tool->button_press_func = measure_tool_button_press;
|
tool->button_press_func = measure_tool_button_press;
|
||||||
tool->button_release_func = measure_tool_button_release;
|
tool->button_release_func = measure_tool_button_release;
|
||||||
tool->motion_func = measure_tool_motion;
|
tool->motion_func = measure_tool_motion;
|
||||||
|
@ -186,8 +186,10 @@ measure_tool_button_press (Tool *tool,
|
|||||||
{
|
{
|
||||||
GDisplay *old_gdisp = tool->gdisp_ptr;
|
GDisplay *old_gdisp = tool->gdisp_ptr;
|
||||||
gtk_statusbar_pop (GTK_STATUSBAR (old_gdisp->statusbar), measure_tool->context_id);
|
gtk_statusbar_pop (GTK_STATUSBAR (old_gdisp->statusbar), measure_tool->context_id);
|
||||||
}
|
gtk_statusbar_push (GTK_STATUSBAR (gdisp->statusbar),
|
||||||
|
measure_tool->context_id, (""));
|
||||||
|
}
|
||||||
|
|
||||||
measure_tool->function = CREATING;
|
measure_tool->function = CREATING;
|
||||||
|
|
||||||
if (tool->state == ACTIVE && gdisp_ptr == tool->gdisp_ptr)
|
if (tool->state == ACTIVE && gdisp_ptr == tool->gdisp_ptr)
|
||||||
@ -197,7 +199,7 @@ measure_tool_button_press (Tool *tool,
|
|||||||
for (i=0; i < measure_tool->num_points; i++)
|
for (i=0; i < measure_tool->num_points; i++)
|
||||||
{
|
{
|
||||||
gdisplay_transform_coords (gdisp, measure_tool->x[i], measure_tool->y[i],
|
gdisplay_transform_coords (gdisp, measure_tool->x[i], measure_tool->y[i],
|
||||||
&x[i], &y[i], TRUE);
|
&x[i], &y[i], FALSE);
|
||||||
if (bevent->x == BOUNDS (bevent->x, x[i] - TARGET, x[i] + TARGET) &&
|
if (bevent->x == BOUNDS (bevent->x, x[i] - TARGET, x[i] + TARGET) &&
|
||||||
bevent->y == BOUNDS (bevent->y, y[i] - TARGET, y[i] + TARGET))
|
bevent->y == BOUNDS (bevent->y, y[i] - TARGET, y[i] + TARGET))
|
||||||
{
|
{
|
||||||
@ -205,13 +207,15 @@ measure_tool_button_press (Tool *tool,
|
|||||||
{
|
{
|
||||||
Guide *guide;
|
Guide *guide;
|
||||||
|
|
||||||
if (bevent->state & GDK_CONTROL_MASK)
|
if (bevent->state & GDK_CONTROL_MASK &&
|
||||||
|
(measure_tool->y[i] == BOUNDS (measure_tool->y[i], 0, gdisp->gimage->height)))
|
||||||
{
|
{
|
||||||
guide = gimp_image_add_hguide (gdisp->gimage);
|
guide = gimp_image_add_hguide (gdisp->gimage);
|
||||||
guide->position = measure_tool->y[i];
|
guide->position = measure_tool->y[i];
|
||||||
gdisplays_expose_guide (gdisp->gimage, guide);
|
gdisplays_expose_guide (gdisp->gimage, guide);
|
||||||
}
|
}
|
||||||
if (bevent->state & GDK_MOD1_MASK)
|
if (bevent->state & GDK_MOD1_MASK &&
|
||||||
|
(measure_tool->x[i] == BOUNDS (measure_tool->x[i], 0, gdisp->gimage->width)))
|
||||||
{
|
{
|
||||||
guide = gimp_image_add_vguide (gdisp->gimage);
|
guide = gimp_image_add_vguide (gdisp->gimage);
|
||||||
guide->position = measure_tool->x[i];
|
guide->position = measure_tool->x[i];
|
||||||
@ -235,7 +239,11 @@ measure_tool_button_press (Tool *tool,
|
|||||||
{
|
{
|
||||||
if (tool->state == ACTIVE)
|
if (tool->state == ACTIVE)
|
||||||
draw_core_stop (measure_tool->core, tool);
|
draw_core_stop (measure_tool->core, tool);
|
||||||
|
else
|
||||||
|
/* initialize the statusbar display */
|
||||||
|
measure_tool->context_id =
|
||||||
|
gtk_statusbar_get_context_id (GTK_STATUSBAR (gdisp->statusbar), "measure");
|
||||||
|
|
||||||
/* set the first point and go into ADDING mode */
|
/* set the first point and go into ADDING mode */
|
||||||
gdisplay_untransform_coords (gdisp, bevent->x, bevent->y,
|
gdisplay_untransform_coords (gdisp, bevent->x, bevent->y,
|
||||||
&measure_tool->x[0], &measure_tool->y[0], TRUE, FALSE);
|
&measure_tool->x[0], &measure_tool->y[0], TRUE, FALSE);
|
||||||
@ -246,12 +254,6 @@ measure_tool_button_press (Tool *tool,
|
|||||||
/* set the gdisplay */
|
/* set the gdisplay */
|
||||||
tool->gdisp_ptr = gdisp_ptr;
|
tool->gdisp_ptr = gdisp_ptr;
|
||||||
|
|
||||||
/* initialize the statusbar display */
|
|
||||||
measure_tool->context_id =
|
|
||||||
gtk_statusbar_get_context_id (GTK_STATUSBAR (gdisp->statusbar), "measure");
|
|
||||||
gtk_statusbar_push (GTK_STATUSBAR (gdisp->statusbar),
|
|
||||||
measure_tool->context_id, (""));
|
|
||||||
|
|
||||||
/* start drawing the measure tool */
|
/* start drawing the measure tool */
|
||||||
draw_core_start (measure_tool->core, gdisp->canvas->window, tool);
|
draw_core_start (measure_tool->core, gdisp->canvas->window, tool);
|
||||||
}
|
}
|
||||||
@ -397,7 +399,6 @@ measure_tool_motion (Tool *tool,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* calculate distance and angle */
|
/* calculate distance and angle */
|
||||||
ax = measure_tool->x[1] - measure_tool->x[0];
|
ax = measure_tool->x[1] - measure_tool->x[0];
|
||||||
ay = measure_tool->y[1] - measure_tool->y[0];
|
ay = measure_tool->y[1] - measure_tool->y[0];
|
||||||
@ -498,7 +499,7 @@ measure_tool_cursor_update (Tool *tool,
|
|||||||
for (i=0; i<measure_tool->num_points; i++)
|
for (i=0; i<measure_tool->num_points; i++)
|
||||||
{
|
{
|
||||||
gdisplay_transform_coords (gdisp, measure_tool->x[i], measure_tool->y[i],
|
gdisplay_transform_coords (gdisp, measure_tool->x[i], measure_tool->y[i],
|
||||||
&x[i], &y[i], TRUE);
|
&x[i], &y[i], FALSE);
|
||||||
|
|
||||||
if (mevent->x == BOUNDS (mevent->x, x[i] - TARGET, x[i] + TARGET) &&
|
if (mevent->x == BOUNDS (mevent->x, x[i] - TARGET, x[i] + TARGET) &&
|
||||||
mevent->y == BOUNDS (mevent->y, y[i] - TARGET, y[i] + TARGET))
|
mevent->y == BOUNDS (mevent->y, y[i] - TARGET, y[i] + TARGET))
|
||||||
@ -543,7 +544,7 @@ measure_tool_draw (Tool *tool)
|
|||||||
for (i = 0; i < measure_tool->num_points; i++)
|
for (i = 0; i < measure_tool->num_points; i++)
|
||||||
{
|
{
|
||||||
gdisplay_transform_coords (gdisp, measure_tool->x[i], measure_tool->y[i],
|
gdisplay_transform_coords (gdisp, measure_tool->x[i], measure_tool->y[i],
|
||||||
&x[i], &y[i], TRUE);
|
&x[i], &y[i], FALSE);
|
||||||
if (i == 0 && measure_tool->num_points == 3)
|
if (i == 0 && measure_tool->num_points == 3)
|
||||||
{
|
{
|
||||||
gdk_draw_arc (measure_tool->core->win, measure_tool->core->gc, FALSE,
|
gdk_draw_arc (measure_tool->core->win, measure_tool->core->gc, FALSE,
|
||||||
@ -665,6 +666,8 @@ tools_new_measure_tool (void)
|
|||||||
|
|
||||||
tool->private = (void *) private;
|
tool->private = (void *) private;
|
||||||
|
|
||||||
|
tool->preserve = TRUE; /* Preserve tool across drawable changes */
|
||||||
|
|
||||||
tool->button_press_func = measure_tool_button_press;
|
tool->button_press_func = measure_tool_button_press;
|
||||||
tool->button_release_func = measure_tool_button_release;
|
tool->button_release_func = measure_tool_button_release;
|
||||||
tool->motion_func = measure_tool_motion;
|
tool->motion_func = measure_tool_motion;
|
||||||
|
@ -212,15 +212,14 @@ paint_core_button_press (Tool *tool,
|
|||||||
{
|
{
|
||||||
if (bevent->state & GDK_CONTROL_MASK)
|
if (bevent->state & GDK_CONTROL_MASK)
|
||||||
{
|
{
|
||||||
double dx, dy;
|
double dx, dy, d;
|
||||||
|
|
||||||
dx = paint_core->curx - paint_core->lastx;
|
dx = paint_core->curx - paint_core->lastx;
|
||||||
dy = paint_core->cury - paint_core->lasty;
|
dy = paint_core->cury - paint_core->lasty;
|
||||||
|
d = (fabs(dx) + fabs(dy)) / 2;
|
||||||
|
|
||||||
paint_core->curx = paint_core->lastx +
|
paint_core->curx = paint_core->lastx + ((dx < 0) ? -d : d);
|
||||||
((dx < 0) && (dy > 0) ? - MAX (dx, dy) : MAX (dx, dy));
|
paint_core->cury = paint_core->lasty + ((dy < 0) ? -d : d);
|
||||||
paint_core->cury = paint_core->lasty +
|
|
||||||
((dy < 0) && (dx > 0) ? - MAX (dx, dy) : MAX (dx, dy));
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
paint_core->curx = paint_core->lastx;
|
paint_core->curx = paint_core->lastx;
|
||||||
@ -370,6 +369,8 @@ paint_core_cursor_update (Tool *tool,
|
|||||||
if (gdisp_ptr == tool->gdisp_ptr && (mevent->state & GDK_SHIFT_MASK))
|
if (gdisp_ptr == tool->gdisp_ptr && (mevent->state & GDK_SHIFT_MASK))
|
||||||
{
|
{
|
||||||
ctype = GDK_PENCIL;
|
ctype = GDK_PENCIL;
|
||||||
|
|
||||||
|
|
||||||
/* Get the current coordinates */
|
/* Get the current coordinates */
|
||||||
gdisplay_untransform_coords_f (gdisp,
|
gdisplay_untransform_coords_f (gdisp,
|
||||||
(double) mevent->x,
|
(double) mevent->x,
|
||||||
|
Reference in New Issue
Block a user