1 /*
2  * sheet-private.h
3  *
4  *
5  * Authors:
6  *  Richard Hult <rhult@hem.passagen.se>
7  *  Ricardo Markiewicz <rmarkie@fi.uba.ar>
8  *  Andres de Barbara <adebarbara@fi.uba.ar>
9  *  Marc Lorber <lorber.marc@wanadoo.fr>
10  *
11  * Web page: https://ahoi.io/project/oregano
12  *
13  * Copyright (C) 1999-2001  Richard Hult
14  * Copyright (C) 2003,2004  Ricardo Markiewicz
15  * Copyright (C) 2009-2012  Marc Lorber
16  *
17  * This program is free software; you can redistribute it and/or
18  * modify it under the terms of the GNU General Public License as
19  * published by the Free Software Foundation; either version 2 of the
20  * License, or (at your option) any later version.
21  *
22  * This program is distributed in the hope that it will be useful,
23  * but WITHOUT ANY WARRANTY; without even the implied warranty of
24  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
25  * General Public License for more details.
26  *
27  * You should have received a copy of the GNU General Public
28  * License along with this program; if not, write to the
29  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
30  * Boston, MA 02110-1301, USA.
31  */
32 
33 #ifndef __SHEET_PRIVATE_H
34 #define __SHEET_PRIVATE_H
35 
36 #include <gtk/gtk.h>
37 #include <goocanvas.h>
38 
39 #include "sheet.h"
40 #include "create-wire.h"
41 #include "rubberband.h"
42 
43 struct _SheetPriv
44 {
45 	// Keeps the current signal handler for wire creation
46 	int wire_handler_id;
47 	// Keeps the signal handler for floating objects.
48 	int float_handler_id;
49 
50 	double zoom;
51 	gulong width;
52 	gulong height;
53 
54 	GooCanvasGroup *selected_group;
55 	GooCanvasGroup *floating_group;
56 	GList *selected_objects;
57 	GList *floating_objects;
58 
59 	GList *items;
60 	RubberbandInfo *rubberband_info;
61 	GList *preserve_selection_items;
62 	GooCanvasClass *sheet_parent_class;
63 
64 	GHashTable *voltmeter_nodes;
65 
66 	CreateWireInfo *create_wire_info; // Wire context for each schematic
67 
68 	GHashTable *node_dots;
69 
70 	guint8 keyboard_grabbed : 1;
71 	guint8 pointer_grabbed : 1;
72 };
73 
74 #endif
75