summaryrefslogtreecommitdiff
path: root/eel/eel-canvas-rect-ellipse.c
diff options
context:
space:
mode:
Diffstat (limited to 'eel/eel-canvas-rect-ellipse.c')
-rw-r--r--eel/eel-canvas-rect-ellipse.c225
1 files changed, 0 insertions, 225 deletions
diff --git a/eel/eel-canvas-rect-ellipse.c b/eel/eel-canvas-rect-ellipse.c
index 0ed0c826..b1300679 100644
--- a/eel/eel-canvas-rect-ellipse.c
+++ b/eel/eel-canvas-rect-ellipse.c
@@ -35,7 +35,6 @@
#include <config.h>
#include <math.h>
#include "eel-canvas-rect-ellipse.h"
-#include "eel-canvas-util.h"
#include <string.h>
#ifdef HAVE_RENDER
@@ -88,7 +87,6 @@ static void eel_canvas_re_unrealize (EelCanvasItem *item);
static void eel_canvas_re_bounds (EelCanvasItem *item, double *x1, double *y1, double *x2, double *y2);
static void eel_canvas_re_translate (EelCanvasItem *item, double dx, double dy);
static void eel_canvas_rect_update (EelCanvasItem *item, double i2w_dx, double i2w_dy, int flags);
-static void eel_canvas_ellipse_update (EelCanvasItem *item, double i2w_dx, double i2w_dy, int flags);
typedef struct
{
@@ -1073,229 +1071,6 @@ eel_canvas_rect_update (EelCanvasItem *item, double i2w_dx, double i2w_dy, gint
}
}
-/* Ellipse item */
-
-
-static void eel_canvas_ellipse_class_init (EelCanvasEllipseClass *klass);
-
-#if GTK_CHECK_VERSION(3,0,0)
-static void eel_canvas_ellipse_draw (EelCanvasItem *item, cairo_t *cr, cairo_region_t *region);
-#else
-static void eel_canvas_ellipse_draw (EelCanvasItem *item, GdkDrawable *drawable, GdkEventExpose *expose);
-#endif
-static double eel_canvas_ellipse_point (EelCanvasItem *item, double x, double y, int cx, int cy,
- EelCanvasItem **actual_item);
-
-
-GType
-eel_canvas_ellipse_get_type (void)
-{
- static GType ellipse_type = 0;
-
- if (!ellipse_type)
- {
- GTypeInfo ellipse_info =
- {
- sizeof (EelCanvasEllipseClass),
- (GBaseInitFunc) NULL,
- (GBaseFinalizeFunc) NULL,
- (GClassInitFunc) eel_canvas_ellipse_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof (EelCanvasEllipse),
- 0, /* n_preallocs */
- (GInstanceInitFunc) NULL
-
- };
-
- ellipse_type = g_type_register_static (eel_canvas_re_get_type (),
- "EelCanvasEllipse",
- &ellipse_info,
- 0);
- }
-
- return ellipse_type;
-}
-
-static void
-eel_canvas_ellipse_class_init (EelCanvasEllipseClass *klass)
-{
- EelCanvasItemClass *item_class;
-
- item_class = (EelCanvasItemClass *) klass;
-
- item_class->draw = eel_canvas_ellipse_draw;
- item_class->point = eel_canvas_ellipse_point;
- item_class->update = eel_canvas_ellipse_update;
-}
-
-static void
-#if GTK_CHECK_VERSION(3,0,0)
-eel_canvas_ellipse_draw (EelCanvasItem *item, cairo_t *cr, cairo_region_t *region)
-#else
-eel_canvas_ellipse_draw (EelCanvasItem *item, GdkDrawable *drawable, GdkEventExpose *expose)
-#endif
-{
- EelCanvasRE *re;
- int x1, y1, x2, y2;
- double i2w_dx, i2w_dy;
-
- re = EEL_CANVAS_RE (item);
-
- /* Get canvas pixel coordinates */
-
- i2w_dx = 0.0;
- i2w_dy = 0.0;
- eel_canvas_item_i2w (item, &i2w_dx, &i2w_dy);
-
- eel_canvas_w2c (item->canvas,
- re->x1 + i2w_dx,
- re->y1 + i2w_dy,
- &x1, &y1);
- eel_canvas_w2c (item->canvas,
- re->x2 + i2w_dx,
- re->y2 + i2w_dy,
- &x2, &y2);
-
-#if GTK_CHECK_VERSION(3,0,0)
- cairo_save (cr);
-#else
- cairo_t *cr = gdk_cairo_create (drawable);
- gdk_cairo_region (cr, expose->region);
- cairo_clip (cr);
-#endif
-
- cairo_save (cr);
- cairo_translate (cr, (x1 + x2) / 2., (y1 + y2) / 2.);
- cairo_scale (cr, (x2 - x1), (y2 - y1));
- cairo_arc (cr, 0, 0, 1, 0, 2 * G_PI);
- cairo_restore (cr);
-
- if (re->fill_set)
- {
-#if GTK_CHECK_VERSION(3,0,0)
- eel_canvas_set_source_color (cr, &re->fill_color);
-#else
- eel_canvas_set_source_color (cr, re->fill_color);
-#endif
- cairo_fill_preserve (cr);
- }
-
- if (re->outline_set)
- {
-#if GTK_CHECK_VERSION(3,0,0)
- eel_canvas_set_source_color (cr, &re->outline_color);
-#else
- eel_canvas_set_source_color (cr, re->outline_color);
-#endif
- if (re->width_pixels) {
- cairo_set_line_width (cr, (int) re->width);
- } else {
- cairo_set_line_width (cr, (int) (re->width * re->item.canvas->pixels_per_unit + 0.5));
- }
-
- cairo_stroke_preserve (cr);
- }
-
-#if GTK_CHECK_VERSION(3,0,0)
- cairo_restore (cr);
-#else
- cairo_destroy (cr);
-#endif
-}
-
-static double
-eel_canvas_ellipse_point (EelCanvasItem *item, double x, double y, int cx, int cy, EelCanvasItem **actual_item)
-{
- EelCanvasRE *re;
- double dx, dy;
- double scaled_dist;
- double outline_dist;
- double center_dist;
- double width;
- double a, b;
- double diamx, diamy;
-
- re = EEL_CANVAS_RE (item);
-
- *actual_item = item;
-
- if (re->outline_set)
- {
- if (re->width_pixels)
- width = re->width / item->canvas->pixels_per_unit;
- else
- width = re->width;
- }
- else
- width = 0.0;
-
- /* Compute the distance between the center of the ellipse and the point, with the ellipse
- * considered as being scaled to a circle.
- */
-
- dx = x - (re->x1 + re->x2) / 2.0;
- dy = y - (re->y1 + re->y2) / 2.0;
- center_dist = sqrt (dx * dx + dy * dy);
-
- a = dx / ((re->x2 + width - re->x1) / 2.0);
- b = dy / ((re->y2 + width - re->y1) / 2.0);
- scaled_dist = sqrt (a * a + b * b);
-
- /* If the scaled distance is greater than 1, then we are outside. Compute the distance from
- * the point to the edge of the circle, then scale back to the original un-scaled coordinate
- * system.
- */
-
- if (scaled_dist > 1.0)
- return (center_dist / scaled_dist) * (scaled_dist - 1.0);
-
- /* We are inside the outer edge of the ellipse. If it is filled, then we are "inside".
- * Otherwise, do the same computation as above, but also check whether we are inside the
- * outline.
- */
-
- if (re->fill_set)
- return 0.0;
-
- if (scaled_dist > EEL_CANVAS_EPSILON)
- outline_dist = (center_dist / scaled_dist) * (1.0 - scaled_dist) - width;
- else
- {
- /* Handle very small distance */
-
- diamx = re->x2 - re->x1;
- diamy = re->y2 - re->y1;
-
- if (diamx < diamy)
- outline_dist = (diamx - width) / 2.0;
- else
- outline_dist = (diamy - width) / 2.0;
- }
-
- if (outline_dist < 0.0)
- return 0.0;
-
- return outline_dist;
-}
-
-static void
-eel_canvas_ellipse_update (EelCanvasItem *item, double i2w_dx, double i2w_dy, gint flags)
-{
- EelCanvasRE *re;
- double x0, y0, x1, y1;
-
-#ifdef VERBOSE
- g_print ("eel_canvas_sllipse_update item %x\n", item);
-#endif
-
- eel_canvas_re_update_shared (item, i2w_dx, i2w_dy, flags);
- re = EEL_CANVAS_RE (item);
-
- get_bounds (re, &x0, &y0, &x1, &y1);
- eel_canvas_update_bbox (item, x0, y0, x1, y1);
-}
-
static int
rect_empty (const Rect *src)
{