summaryrefslogtreecommitdiffstats
path: root/src/display/gnome-canvas-acetate.cpp
blob: 1a58c4b19a9eb029d4fbe18c0f012b78e057d526 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#define __SP_CANVAS_ACETATE_C__

/*
 * Infinite invisible canvas item
 *
 * Author:
 *   Federico Mena <federico@nuclecu.unam.mx>
 *   Raph Levien <raph@acm.org>
 *   Lauris Kaplinski <lauris@kaplinski.com>
 *
 * Copyright (C) 1998-1999 The Free Software Foundation
 * Copyright (C) 2002 Lauris Kaplinski
 *
 * Released under GNU GPL, read the file 'COPYING' for more information
 */

#include "display-forward.h"
#include "gnome-canvas-acetate.h"

static void sp_canvas_acetate_class_init (SPCanvasAcetateClass *klass);
static void sp_canvas_acetate_init (SPCanvasAcetate *acetate);
static void sp_canvas_acetate_destroy (GtkObject *object);

static void sp_canvas_acetate_update (SPCanvasItem *item, NR::Matrix const &affine, unsigned int flags);
static double sp_canvas_acetate_point (SPCanvasItem *item, NR::Point p, SPCanvasItem **actual_item);

static SPCanvasItemClass *parent_class;

GtkType
sp_canvas_acetate_get_type (void)
{
	static GtkType acetate_type = 0;
	if (!acetate_type) {
		GtkTypeInfo acetate_info = {
			"SPCanvasAcetate",
			sizeof (SPCanvasAcetate),
			sizeof (SPCanvasAcetateClass),
			(GtkClassInitFunc) sp_canvas_acetate_class_init,
			(GtkObjectInitFunc) sp_canvas_acetate_init,
			NULL, NULL, NULL
		};
		acetate_type = gtk_type_unique (sp_canvas_item_get_type (), &acetate_info);
	}
	return acetate_type;
}

static void
sp_canvas_acetate_class_init (SPCanvasAcetateClass *klass)
{
	GtkObjectClass *object_class;
	SPCanvasItemClass *item_class;

	object_class = (GtkObjectClass *) klass;
	item_class = (SPCanvasItemClass *) klass;

	parent_class = (SPCanvasItemClass*)gtk_type_class (sp_canvas_item_get_type ());

	object_class->destroy = sp_canvas_acetate_destroy;

	item_class->update = sp_canvas_acetate_update;
	item_class->point = sp_canvas_acetate_point;
}

static void
sp_canvas_acetate_init (SPCanvasAcetate *acetate)
{
	/* Nothing here */
}

static void
sp_canvas_acetate_destroy (GtkObject *object)
{
	SPCanvasAcetate *acetate;

	g_return_if_fail (object != NULL);
	g_return_if_fail (GNOME_IS_CANVAS_ACETATE (object));

	acetate = SP_CANVAS_ACETATE (object);

	if (GTK_OBJECT_CLASS (parent_class)->destroy)
		(* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
}

static void
sp_canvas_acetate_update (SPCanvasItem *item, NR::Matrix const &affine, unsigned int flags)
{
	item->x1 = -G_MAXINT;
	item->y1 = -G_MAXINT;
	item->x2 = G_MAXINT;
	item->y2 = G_MAXINT;
}

static double
sp_canvas_acetate_point (SPCanvasItem *item, NR::Point p, SPCanvasItem **actual_item)
{
	*actual_item = item;

	return 0.0;
}