static void
gnome_canvas_simplerect_destroy (GtkObject *object)
{
- GnomeCanvasSimpleRect *rect;
-
g_return_if_fail (object != NULL);
g_return_if_fail (GNOME_IS_CANVAS_SIMPLERECT (object));
- rect = GNOME_CANVAS_SIMPLERECT (object);
-
/* remember, destroy can be run multiple times! */
if (GTK_OBJECT_CLASS (parent_class)->destroy)
double start_x = MIN (item->x2, old_x2);
double end_x = MAX (item->x2, old_x2);
- gnome_canvas_request_redraw (item->canvas, start_x - 0.5, item->y1, end_x + 1.5, item->y2);
+ gnome_canvas_request_redraw (item->canvas, start_x - 0.5, item->y1, end_x + 1.5, item->y2 + 0.5);
return;
} else if (item->x2 == old_x2) {
gnome_canvas_simplerect_update (GnomeCanvasItem *item, double *affine, ArtSVP *clip_path, int flags)
{
GnomeCanvasSimpleRect *simplerect;
- unsigned char foo;
simplerect = GNOME_CANVAS_SIMPLERECT (item);
if (simplerect->full_draw_on_update) {
gnome_canvas_request_redraw (item->canvas,
- simplerect->bbox_ulx,
- simplerect->bbox_uly,
- simplerect->bbox_lrx+0.5,
- simplerect->bbox_lry+0.5);
+ simplerect->bbox_ulx,
+ simplerect->bbox_uly,
+ simplerect->bbox_lrx+0.5,
+ simplerect->bbox_lry+0.5);
simplerect->full_draw_on_update = FALSE;
}
UINT_TO_RGBA (simplerect->fill_color, &simplerect->fill_r, &simplerect->fill_g, &simplerect->fill_b, &simplerect->fill_a);
- UINT_TO_RGBA (simplerect->outline_color, &simplerect->outline_r, &simplerect->outline_g, &simplerect->outline_b, &foo);
+ UINT_TO_RGBA (simplerect->outline_color, &simplerect->outline_r, &simplerect->outline_g, &simplerect->outline_b, &simplerect->outline_a);
}
// this can be useful for debugging/understanding how the canvas redraws
}
- for (i = 0; i < simplerect->outline_pixels; ++i) {
-
- if (simplerect->outline_what & 0x1) {
- if (begin == simplerect->bbox_ulx) {
- PAINT_VERT(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, begin + i, sy, ey);
- }
- }
-
- if (simplerect->outline_what & 0x2) {
- if (end == (simplerect->bbox_lrx - 1)) {
- PAINT_VERT(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, end - i, sy, ey + 1);
- }
- }
-
- if (simplerect->outline_what & 0x4) {
- PAINT_HORIZ(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, begin, end, sy+i);
- }
-
- if (simplerect->outline_what & 0x8) {
- PAINT_HORIZ(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, begin, end + 1, ey-i);
- }
- }
+ if (simplerect->outline_a > 0) {
+ for (i = 0; i < simplerect->outline_pixels; ++i) {
+
+ if (simplerect->outline_what & 0x1) {
+ if (begin == simplerect->bbox_ulx) {
+ PAINT_VERTA(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, simplerect->outline_a, begin + i, sy, ey);
+ }
+ }
+
+ if (simplerect->outline_what & 0x2) {
+ if (end == (simplerect->bbox_lrx - 1)) {
+ PAINT_VERTA(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, simplerect->outline_a, end - i, sy, ey + 1);
+ }
+ }
+
+ if (simplerect->outline_what & 0x4) {
+ PAINT_HORIZA(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, simplerect->outline_a, begin, end, sy+i);
+ }
+
+ if (simplerect->outline_what & 0x8) {
+ PAINT_HORIZA(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, simplerect->outline_a, begin, end + 1, ey-i);
+ }
+ }
+ }
}
#else /* SIMPLERECT_FAST_RENDERER */
GnomeCanvasSimpleRect *simplerect;
int end, begin;
int ey, sy;
- unsigned int i;
+ int i;
simplerect = GNOME_CANVAS_SIMPLERECT (item);
#endif
}
- for (i = 0; i < simplerect->outline_pixels; ++i) {
-
- if (simplerect->outline_what & 0x1) {
- if (begin == simplerect->bbox_ulx) {
- PAINT_VERT(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, begin + i, sy, ey);
- }
- }
-
- if (simplerect->outline_what & 0x2) {
- if (end == (simplerect->bbox_lrx - 1)) {
- PAINT_VERT(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, end - i, sy, ey + 1);
- }
- }
-
- if (simplerect->outline_what & 0x4) {
- PAINT_HORIZ(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, begin, end, sy+i);
- }
-
- if (simplerect->outline_what & 0x8) {
- PAINT_HORIZ(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, begin, end + 1, ey-i);
- }
- }
+ if (simplerect->outline_a) {
+ for (i = 0; i < (int) simplerect->outline_pixels; ++i) {
+
+ if (simplerect->outline_what & 0x1) {
+ if (begin == simplerect->bbox_ulx) {
+ PAINT_VERTA(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, simplerect->outline_a, begin + i, sy, ey);
+ }
+ }
+
+ if (simplerect->outline_what & 0x2) {
+ if (end == (simplerect->bbox_lrx - 1)) {
+ PAINT_VERTA(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, simplerect->outline_a, end - i, sy, ey + 1);
+ }
+ }
+
+ if (simplerect->outline_what & 0x4) {
+ PAINT_HORIZA(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, simplerect->outline_a, begin, end, sy+i);
+ }
+
+ if (simplerect->outline_what & 0x8) {
+ PAINT_HORIZA(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, simplerect->outline_a, begin, end + 1, ey-i);
+ }
+ }
+ }
}
#endif /* SIMPLERECT_FAST_RENDERER */
(void) cx;
(void) cy;
- GnomeCanvasSimpleRect *simplerect;
double x1, y1, x2, y2;
double dx, dy;
- simplerect = GNOME_CANVAS_SIMPLERECT (item);
-
*actual_item = item;
/* Find the bounds for the rectangle plus its outline width */