Code

fdb137e2722dd0e7fa744769b9d8d30b74e7ebf7
[inkscape.git] / src / display / gnome-canvas-acetate.cpp
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 "display-forward.h"
18 #include "gnome-canvas-acetate.h"
20 static void sp_canvas_acetate_class_init (SPCanvasAcetateClass *klass);
21 static void sp_canvas_acetate_init (SPCanvasAcetate *acetate);
22 static void sp_canvas_acetate_destroy (GtkObject *object);
24 static void sp_canvas_acetate_update (SPCanvasItem *item, Geom::Matrix const &affine, unsigned int flags);
25 static double sp_canvas_acetate_point (SPCanvasItem *item, Geom::Point p, SPCanvasItem **actual_item);
27 static SPCanvasItemClass *parent_class;
29 GtkType
30 sp_canvas_acetate_get_type (void)
31 {
32         static GtkType acetate_type = 0;
33         if (!acetate_type) {
34                 GtkTypeInfo acetate_info = {
35                         (gchar *)"SPCanvasAcetate",
36                         sizeof (SPCanvasAcetate),
37                         sizeof (SPCanvasAcetateClass),
38                         (GtkClassInitFunc) sp_canvas_acetate_class_init,
39                         (GtkObjectInitFunc) sp_canvas_acetate_init,
40                         NULL, NULL, NULL
41                 };
42                 acetate_type = gtk_type_unique (sp_canvas_item_get_type (), &acetate_info);
43         }
44         return acetate_type;
45 }
47 static void
48 sp_canvas_acetate_class_init (SPCanvasAcetateClass *klass)
49 {
50         GtkObjectClass *object_class;
51         SPCanvasItemClass *item_class;
53         object_class = (GtkObjectClass *) klass;
54         item_class = (SPCanvasItemClass *) klass;
56         parent_class = (SPCanvasItemClass*)gtk_type_class (sp_canvas_item_get_type ());
58         object_class->destroy = sp_canvas_acetate_destroy;
60         item_class->update = sp_canvas_acetate_update;
61         item_class->point = sp_canvas_acetate_point;
62 }
64 static void
65 sp_canvas_acetate_init (SPCanvasAcetate */*acetate*/)
66 {
67     /* Nothing here */
68 }
70 static void
71 sp_canvas_acetate_destroy (GtkObject *object)
72 {
73         SPCanvasAcetate *acetate;
75         g_return_if_fail (object != NULL);
76         g_return_if_fail (GNOME_IS_CANVAS_ACETATE (object));
78         acetate = SP_CANVAS_ACETATE (object);
80         if (GTK_OBJECT_CLASS (parent_class)->destroy)
81                 (* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
82 }
84 static void
85 sp_canvas_acetate_update( SPCanvasItem *item, Geom::Matrix const &/*affine*/, unsigned int /*flags*/ )
86 {
87     item->x1 = -G_MAXINT;
88     item->y1 = -G_MAXINT;
89     item->x2 = G_MAXINT;
90     item->y2 = G_MAXINT;
91 }
93 static double
94 sp_canvas_acetate_point( SPCanvasItem *item, Geom::Point /*p*/, SPCanvasItem **actual_item )
95 {
96     *actual_item = item;
98     return 0.0;
99 }