1 #ifndef __SP_CANVAS_ARENA_H__
2 #define __SP_CANVAS_ARENA_H__
4 /*
5 * RGBA display list system for inkscape
6 *
7 * Author:
8 * Lauris Kaplinski <lauris@kaplinski.com>
9 *
10 * Copyright (C) 2001-2002 Lauris Kaplinski
11 * Copyright (C) 2001 Ximian, Inc.
12 *
13 * Released under GNU GPL, read the file 'COPYING' for more information
14 */
16 struct SPCanvasArena;
17 struct SPCanvasArenaClass;
19 #define SP_TYPE_CANVAS_ARENA (sp_canvas_arena_get_type ())
20 #define SP_CANVAS_ARENA(obj) (GTK_CHECK_CAST ((obj), SP_TYPE_CANVAS_ARENA, SPCanvasArena))
21 #define SP_CANVAS_ARENA_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), SP_TYPE_CANVAS_ARENA, SPCanvasArenaClass))
22 #define SP_IS_CANVAS_ARENA(obj) (GTK_CHECK_TYPE ((obj), SP_TYPE_CANVAS_ARENA))
23 #define SP_IS_CANVAS_ARENA_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), SP_TYPE_CANVAS_ARENA))
25 #include "../display/sp-canvas.h"
26 #include "nr-arena-item.h"
28 struct SPCanvasArena {
29 SPCanvasItem item;
31 guint cursor : 1;
32 guint sticky : 1;
33 NR::Point c; // what is this?
35 NRArena *arena;
36 NRArenaItem *root;
37 NRGC gc;
39 NRArenaItem *active;
40 /* fixme: */
41 NRArenaItem *picked;
42 gdouble delta;
43 };
45 struct SPCanvasArenaClass {
46 SPCanvasItemClass parent_class;
48 gint (* arena_event) (SPCanvasArena *carena, NRArenaItem *item, GdkEvent *event);
49 };
51 GtkType sp_canvas_arena_get_type (void);
53 void sp_canvas_arena_set_pick_delta (SPCanvasArena *ca, gdouble delta);
54 void sp_canvas_arena_set_sticky (SPCanvasArena *ca, gboolean sticky);
56 void sp_canvas_arena_render_pixblock (SPCanvasArena *ca, NRPixBlock *pb);
58 #endif