1 #define __SP_CANVAS_ACETATE_C__
3 /*
4 * Infinite invisible canvas item
5 *
6 * Author:
7 * Federico Mena <federico@nuclecu.unam.mx>
8 * Raph Levien <raph@acm.org>
9 * Lauris Kaplinski <lauris@kaplinski.com>
10 *
11 * Copyright (C) 1998-1999 The Free Software Foundation
12 * Copyright (C) 2002 Lauris Kaplinski
13 *
14 * Released under GNU GPL, read the file 'COPYING' for more information
15 */
17 #include "gnome-canvas-acetate.h"
19 static void sp_canvas_acetate_class_init (SPCanvasAcetateClass *klass);
20 static void sp_canvas_acetate_init (SPCanvasAcetate *acetate);
21 static void sp_canvas_acetate_destroy (GtkObject *object);
23 static void sp_canvas_acetate_update (SPCanvasItem *item, Geom::Matrix const &affine, unsigned int flags);
24 static double sp_canvas_acetate_point (SPCanvasItem *item, Geom::Point p, SPCanvasItem **actual_item);
26 static SPCanvasItemClass *parent_class;
28 GtkType
29 sp_canvas_acetate_get_type (void)
30 {
31 static GtkType acetate_type = 0;
32 if (!acetate_type) {
33 GtkTypeInfo acetate_info = {
34 (gchar *)"SPCanvasAcetate",
35 sizeof (SPCanvasAcetate),
36 sizeof (SPCanvasAcetateClass),
37 (GtkClassInitFunc) sp_canvas_acetate_class_init,
38 (GtkObjectInitFunc) sp_canvas_acetate_init,
39 NULL, NULL, NULL
40 };
41 acetate_type = gtk_type_unique (sp_canvas_item_get_type (), &acetate_info);
42 }
43 return acetate_type;
44 }
46 static void
47 sp_canvas_acetate_class_init (SPCanvasAcetateClass *klass)
48 {
49 GtkObjectClass *object_class;
50 SPCanvasItemClass *item_class;
52 object_class = (GtkObjectClass *) klass;
53 item_class = (SPCanvasItemClass *) klass;
55 parent_class = (SPCanvasItemClass*)gtk_type_class (sp_canvas_item_get_type ());
57 object_class->destroy = sp_canvas_acetate_destroy;
59 item_class->update = sp_canvas_acetate_update;
60 item_class->point = sp_canvas_acetate_point;
61 }
63 static void
64 sp_canvas_acetate_init (SPCanvasAcetate */*acetate*/)
65 {
66 /* Nothing here */
67 }
69 static void
70 sp_canvas_acetate_destroy (GtkObject *object)
71 {
72 SPCanvasAcetate *acetate;
74 g_return_if_fail (object != NULL);
75 g_return_if_fail (GNOME_IS_CANVAS_ACETATE (object));
77 acetate = SP_CANVAS_ACETATE (object);
79 if (GTK_OBJECT_CLASS (parent_class)->destroy)
80 (* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
81 }
83 static void
84 sp_canvas_acetate_update( SPCanvasItem *item, Geom::Matrix const &/*affine*/, unsigned int /*flags*/ )
85 {
86 item->x1 = -G_MAXINT;
87 item->y1 = -G_MAXINT;
88 item->x2 = G_MAXINT;
89 item->y2 = G_MAXINT;
90 }
92 static double
93 sp_canvas_acetate_point( SPCanvasItem *item, Geom::Point /*p*/, SPCanvasItem **actual_item )
94 {
95 *actual_item = item;
97 return 0.0;
98 }