[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
gEDA-cvs: gaf.git: branch: master updated (1.5.1-20081221-172-g700d5c0)
The branch, master has been updated
via 700d5c08aa33009128491007ff4d3f6e91ce0489 (commit)
from 02fa8f658d315796df7c6ab8790e5310e8548d37 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
=========
Summary
=========
libgeda/configure.ac.in | 2 +-
libgeda/include/Makefile.am | 20 ++++++++++----------
libgeda/include/{ => libgeda}/colors.h | 0
libgeda/include/{ => libgeda}/defines.h | 0
libgeda/include/{ => libgeda}/funcs.h | 0
libgeda/include/{ => libgeda}/geda_list.h | 0
libgeda/include/{ => libgeda}/globals.h | 0
libgeda/include/{ => libgeda}/libgeda.h | 0
libgeda/include/{ => libgeda}/o_types.h | 0
libgeda/include/{ => libgeda}/papersizes.h | 0
libgeda/include/{ => libgeda}/prototype.h | 0
libgeda/include/{ => libgeda}/struct.h | 0
libgeda/src/Makefile.am | 2 +-
13 files changed, 12 insertions(+), 12 deletions(-)
rename libgeda/include/{ => libgeda}/colors.h (100%)
rename libgeda/include/{ => libgeda}/defines.h (100%)
rename libgeda/include/{ => libgeda}/funcs.h (100%)
rename libgeda/include/{ => libgeda}/geda_list.h (100%)
rename libgeda/include/{ => libgeda}/globals.h (100%)
rename libgeda/include/{ => libgeda}/libgeda.h (100%)
rename libgeda/include/{ => libgeda}/o_types.h (100%)
rename libgeda/include/{ => libgeda}/papersizes.h (100%)
rename libgeda/include/{ => libgeda}/prototype.h (100%)
rename libgeda/include/{ => libgeda}/struct.h (100%)
=================
Commit Messages
=================
commit 700d5c08aa33009128491007ff4d3f6e91ce0489
Author: Peter Clifton <pcjc2@xxxxxxxxx>
Date: Sat Jan 10 22:54:09 2009 +0000
libgeda: Move include files to be compatible with non-installed build
By placing public libgeda include files in a directory libgeda/*, it is
possible to point the rest of the suite's builds to include that directly.
:100644 100644 4ae3413... c2e8443... M libgeda/configure.ac.in
:100644 100644 000b9ee... 8f5a078... M libgeda/include/Makefile.am
:100644 000000 4338412... 0000000... D libgeda/include/colors.h
:100644 000000 581cfe4... 0000000... D libgeda/include/defines.h
:100644 000000 b6b2fbd... 0000000... D libgeda/include/funcs.h
:100644 000000 78a3d1c... 0000000... D libgeda/include/geda_list.h
:100644 000000 963bda8... 0000000... D libgeda/include/globals.h
:100644 000000 a7483ed... 0000000... D libgeda/include/libgeda.h
:000000 100644 0000000... 4338412... A libgeda/include/libgeda/colors.h
:000000 100644 0000000... 581cfe4... A libgeda/include/libgeda/defines.h
:000000 100644 0000000... b6b2fbd... A libgeda/include/libgeda/funcs.h
:000000 100644 0000000... 78a3d1c... A libgeda/include/libgeda/geda_list.h
:000000 100644 0000000... 963bda8... A libgeda/include/libgeda/globals.h
:000000 100644 0000000... a7483ed... A libgeda/include/libgeda/libgeda.h
:000000 100644 0000000... 0ff2e4f... A libgeda/include/libgeda/o_types.h
:000000 100644 0000000... 919149c... A libgeda/include/libgeda/papersizes.h
:000000 100644 0000000... d1d2a8f... A libgeda/include/libgeda/prototype.h
:000000 100644 0000000... b29634a... A libgeda/include/libgeda/struct.h
:100644 000000 0ff2e4f... 0000000... D libgeda/include/o_types.h
:100644 000000 919149c... 0000000... D libgeda/include/papersizes.h
:100644 000000 d1d2a8f... 0000000... D libgeda/include/prototype.h
:100644 000000 b29634a... 0000000... D libgeda/include/struct.h
:100644 100644 5b04947... 7c4bf99... M libgeda/src/Makefile.am
=========
Changes
=========
commit 700d5c08aa33009128491007ff4d3f6e91ce0489
Author: Peter Clifton <pcjc2@xxxxxxxxx>
Date: Sat Jan 10 22:54:09 2009 +0000
libgeda: Move include files to be compatible with non-installed build
By placing public libgeda include files in a directory libgeda/*, it is
possible to point the rest of the suite's builds to include that directly.
diff --git a/libgeda/configure.ac.in b/libgeda/configure.ac.in
index 4ae3413..c2e8443 100644
--- a/libgeda/configure.ac.in
+++ b/libgeda/configure.ac.in
@@ -1,6 +1,6 @@
# Process this file with autoconf to produce a configure script.
AC_INIT
-AC_CONFIG_SRCDIR([include/libgeda.h])
+AC_CONFIG_SRCDIR([src/libgeda.c])
AC_PREREQ(2.54)
PACKAGE=libgeda
diff --git a/libgeda/include/Makefile.am b/libgeda/include/Makefile.am
index 000b9ee..8f5a078 100644
--- a/libgeda/include/Makefile.am
+++ b/libgeda/include/Makefile.am
@@ -2,16 +2,16 @@
libgedaincludedir = $(includedir)/libgeda
libgedainclude_HEADERS = \
- colors.h \
- defines.h \
- funcs.h \
- geda_list.h \
- globals.h \
- libgeda.h \
- o_types.h \
- papersizes.h \
- prototype.h \
- struct.h
+ libgeda/colors.h \
+ libgeda/defines.h \
+ libgeda/funcs.h \
+ libgeda/geda_list.h \
+ libgeda/globals.h \
+ libgeda/libgeda.h \
+ libgeda/o_types.h \
+ libgeda/papersizes.h \
+ libgeda/prototype.h \
+ libgeda/struct.h
noinst_HEADERS = \
gettext_priv.h \
diff --git a/libgeda/include/colors.h b/libgeda/include/colors.h
deleted file mode 100644
index 4338412..0000000
--- a/libgeda/include/colors.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* gEDA - GPL Electronic Design Automation
- * libgeda - gEDA's Library
- * Copyright (C) 1998-2004 Ales V. Hvezda
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/*! \file colors.h
- * \brief define some constants for the colors
- */
-
-#ifndef _COLORS_H_INCL
-#define _COLORS_H_INCL
-
-#define BACKGROUND_COLOR 0
-#define PIN_COLOR 1
-#define NET_ENDPOINT_COLOR 2
-#define GRAPHIC_COLOR 3
-#define NET_COLOR 4
-#define ATTRIBUTE_COLOR 5
-#define LOGIC_BUBBLE_COLOR 6
-#define DOTS_GRID_COLOR 7
-#define DETACHED_ATTRIBUTE_COLOR 8
-#define TEXT_COLOR 9
-#define BUS_COLOR 10
-#define SELECT_COLOR 11
-#define BOUNDINGBOX_COLOR 12
-#define ZOOM_BOX_COLOR 13
-#define STROKE_COLOR 14
-#define LOCK_COLOR 15
-#define OUTPUT_BACKGROUND_COLOR 16
-#define FREESTYLE1_COLOR 17
-#define FREESTYLE2_COLOR 18
-#define FREESTYLE3_COLOR 19
-#define FREESTYLE4_COLOR 20
-#define JUNCTION_COLOR 21
-#define MESH_GRID_MAJOR_COLOR 22
-#define MESH_GRID_MINOR_COLOR 23
-
-#define OVERRIDE_NET_COLOR 4
-#define OVERRIDE_PIN_COLOR 1
-#define OVERRIDE_BUS_COLOR 10
-
-#define DEFAULT_COLOR 3
-
-#endif
diff --git a/libgeda/include/defines.h b/libgeda/include/defines.h
deleted file mode 100644
index 581cfe4..0000000
--- a/libgeda/include/defines.h
+++ /dev/null
@@ -1,254 +0,0 @@
-/* gEDA - GPL Electronic Design Automation
- * libgeda - gEDA's Library
- * Copyright (C) 1998-2004 Ales V. Hvezda
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/*! \file defines.h
- * \brief global libgeda definitions
- */
-
-#ifndef _DEFINES_H_INCL
-#define _DEFINES_H_INCL
-
-/* Current schematic/symbol file format */
-#define FILEFORMAT_VERSION 2
-
-/* release version which had file format changes */
-/* New file format changes after 20030921 use the above version */
-/* and not these #defines anymore. */
-#define VERSION_20000220 20000220
-#define VERSION_20000704 20000704
-#define VERSION_20020825 20020825
-#define VERSION_20030921 20030921
-/* 20030921 wasn't a real version, just a MinGW test version, but it is */
-/* out there */
-
-/* Set this string to something interesting to create a custom */
-/* version of gEDA/gaf. This string is prepended to all messages that */
-/* output the program's version output. You would set this if you are */
-/* creating a specific custom version of gEDA/gaf. */
-/* For example, if you set this string to "FIX-", the resulting output is: */
-/* FIX-1.0.0.20060906. */
-#define PREPEND_VERSION_STRING ""
-
-/* for color mechanism used in gschem */
-#define MAX_COLORS 25
-
-/* X's obsession with *64 */
-#define FULL_CIRCLE 360*64
-
-/* for show_name_value in st_objects */
-#define SHOW_NAME_VALUE 0
-#define SHOW_VALUE 1
-#define SHOW_NAME 2
-#define LEAVE_NAME_VALUE_ALONE -1
-
-/* for visibility in st_objects */
-#define INVISIBLE 0
-#define VISIBLE 1
-#define LEAVE_VISIBILITY_ALONE -1
-
-/* For pin and net styles */
-#define THIN 0
-#define THICK 1
-
-/* various thicknesses (in mils) */
-#define LINE_WIDTH 10
-#define NET_WIDTH 10
-#define PIN_WIDTH_NET 10
-#define BUS_WIDTH 30
-#define PIN_WIDTH_BUS 30
-
-/* various visual cue sizes (in mils) */
-#define CUE_BOX_SIZE 30
-#define JUNCTION_CUE_SIZE_NET 50
-#define JUNCTION_CUE_SIZE_BUS 30
-#define PIN_CUE_SIZE_NET 30
-#define PIN_CUE_SIZE_BUS 50
-
-/* For text location on component not found graphics */
-#define NOT_FOUND_TEXT_X 100
-#define NOT_FOUND_TEXT_Y 100
-
-#undef max
-#define max(a,b) ((a) > (b) ? (a) : (b))
-
-#undef min
-#define min(a,b) ((a) < (b) ? (a) : (b))
-
-/* for s_clib_getfilename() */
-#define OPEN_DIR 0
-#define READ_DIR 1
-#define CLOSE_DIR 2
-#define SET_COUNT 3
-
-/* for s_slib_search() */
-#define SLIB_SEARCH_START 0
-#define SLIB_SEARCH_NEXT 1
-#define SLIB_SEARCH_DONE 2
-
-/* for text alignment */
-/* 2 -- 5 -- 8 */
-/* | | | */
-/* 1 -- 4 -- 7 */
-/* | | | */
-/* 0 -- 3 -- 6 */
-#define LOWER_LEFT 0
-#define MIDDLE_LEFT 1
-#define UPPER_LEFT 2
-#define LOWER_MIDDLE 3
-#define MIDDLE_MIDDLE 4
-#define UPPER_MIDDLE 5
-#define LOWER_RIGHT 6
-#define MIDDLE_RIGHT 7
-#define UPPER_RIGHT 8
-
-/* one character string used to calculate tab's width */
-/* Warning: it MUST be a string. */
-#define TAB_CHAR_MODEL "b"
-
-/* multi text line spacing (multipled times character height) */
-#define LINE_SPACING 2.0
-
-/* The conn modes for type */
-#define CONN_NULL 0
-#define CONN_ENDPOINT 1
-#define CONN_MIDPOINT 2
-
-/* used by world_tiles to set the size of the array */
-#define MAX_TILES_X 10
-#define MAX_TILES_Y 10
-
-/* used for undo_savestate flag */
-#define UNDO_ALL 0
-#define UNDO_VIEWPORT_ONLY 1
-
-/* These are for where status information goes */
-#define LOG_WINDOW 0
-#define STDOUT_TTY 1
-#define BOTH_LOGWIN_STDOUT 2
-
-/* list copying flags */
-#define NORMAL_FLAG 0
-#define SELECTION_FLAG 1
-
-/* hierarchy loading flags */
-#define HIERARCHY_NORMAL_LOAD 0
-#define HIERARCHY_FORCE_LOAD 1
-
-/* hierarchy traversing flags */
-#define HIERARCHY_NODUPS (1<<0)
-#define HIERARCHY_POSTORDER (1<<1)
-#define HIERARCHY_INNERLOOP (1<<7)
-
-#define MILS_PER_INCH 1000
-
-/* for text_output */
-#define VECTOR_FONTS 0
-#define PS_FONTS 1
-
-/* for print dialog box */
-#define EXTENTS 0
-#define WINDOW 1
-#define EXTENTS_NOMARGINS 2
-
-/* for output-capstyle */
-#define BUTT_CAP 0
-#define ROUND_CAP 1
-#define SQUARE_CAP 2
-
-/* for print dialog box */
-#define LANDSCAPE 0
-#define PORTRAIT 1
-
-/* for type to s_cue_output_all */
-#define POSTSCRIPT 0
-#define PNG 1
-
-/* for o_net_orientation */
-#define NEITHER 0
-#define HORIZONTAL 1
-#define VERTICAL 2
-#define HORIZONTAL_ABOVE 3
-#define HORIZONTAL_BELOW 4
-#define VERTICAL_LEFT 5
-#define VERTICAL_RIGHT 6
-
-/* for pin_type */
-#define PIN_TYPE_NET 0
-#define PIN_TYPE_BUS 1
-
-/* gnetlist: hierarchy_*_order */
-#define APPEND 0
-#define PREPEND 1
-
-/* gnetlist: netlist_mode */
-#define gEDA 0
-#define SPICE 1
-#define TANGO 2
-
-/* gnetlist: net-naming-priority */
-#define NETATTRIB_ATTRIBUTE 0
-#define NETNAME_ATTRIBUTE 1
-
-/* gschcheck: Error types */
-#define NO_ERR 0
-#define FLOAT_NET 1
-#define FLOAT_PIN 2
-#define DUP_NET_NAME 4
-
-/* Max level of symlinks */
-#define MAX_LINK_LEVEL 256
-
-#if defined(__MINGW32__) && !defined(M_PI)
-#define M_PI 3.14159265358979323846
-#endif
-
-/* Logs a normal message. */
-#define s_log_message g_message
-
-/* Backup filename creation string */
-#define AUTOSAVE_BACKUP_FILENAME_STRING "#%s#"
-
-/* These permission bits are absent on MinGW */
-#ifndef S_IWGRP
-# define S_IWGRP 0
-#endif
-#ifndef S_IWOTH
-# define S_IWOTH 0
-#endif
-#ifndef S_IXGRP
-# define S_IXGRP 0
-#endif
-#ifndef S_IXOTH
-# define S_IXOTH 0
-#endif
-#ifndef S_IRWXG
-# define S_IRWXG 0
-#endif
-
-
-/* Used by the rc loading mechanism */
-#define RETURN_G_RC_MODE(rc, var, size) \
- return g_rc_mode_general(mode, \
- (rc), \
- &(var), \
- mode_table, \
- size)
-
-
-#endif /* !_DEFINES_H_INCL */
diff --git a/libgeda/include/funcs.h b/libgeda/include/funcs.h
deleted file mode 100644
index b6b2fbd..0000000
--- a/libgeda/include/funcs.h
+++ /dev/null
@@ -1,17 +0,0 @@
-extern void (*arc_draw_func)();
-extern void (*box_draw_func)();
-extern void (*picture_draw_func)();
-extern void (*circle_draw_func)();
-extern void (*complex_draw_func)();
-extern void (*line_draw_func)();
-extern void (*net_draw_func)();
-extern void (*bus_draw_func)();
-extern void (*text_draw_func)();
-extern void (*pin_draw_func)();
-extern void (*path_draw_func)();
-extern void (*select_func)();
-extern void (*x_log_update_func)();
-/* load_newer_backup_func is called if an autosave backup file is found
- when loading a new schematic. It should ask the user what to do, and
- return TRUE if the backup file should be loaded, or FALSE otherwise */
-extern int (*load_newer_backup_func)();
diff --git a/libgeda/include/geda_list.h b/libgeda/include/geda_list.h
deleted file mode 100644
index 78a3d1c..0000000
--- a/libgeda/include/geda_list.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* gEDA - GPL Electronic Design Automation
- * gschem - gEDA Schematic Capture
- * Copyright (C) 1998-2004 Ales V. Hvezda
- * Copyright (C) 2007-2008 Peter Clifton
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#ifndef __GEDA_LIST_H__
-#define __GEDA_LIST_H__
-
-#define GEDA_TYPE_LIST (geda_list_get_type())
-#define GEDA_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEDA_TYPE_LIST, GedaList))
-#define GEDA_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GEDA_TYPE_LIST, GedaListClass))
-#define GEDA_IS_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEDA_TYPE_LIST))
-#define GEDA_IS_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GEDA_TYPE_LIST))
-#define GEDA_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GEDA_TYPE_LIST, GedaListClass))
-
-
-typedef struct _GedaList GedaList;
-typedef struct _GedaListClass GedaListClass;
-
-struct _GedaList {
- GObject parent;
- GList *glist;
-};
-
-struct _GedaListClass {
- GObjectClass parent;
-};
-
-GType geda_list_get_type (void);
-
-/* It would be nice to add const qualifiers to some of these, but GLib
- * is buggy in this respect, and doesn't have const where necessary. */
-GedaList *geda_list_new( void );
-void geda_list_add( GedaList *list, gpointer item );
-void geda_list_add_glist( GedaList *list, GList *items );
-void geda_list_remove( GedaList *list, gpointer item );
-/*void geda_list_remove_glist( GedaList *list, GList *items ); */ /* Undemanded as yet */
-void geda_list_remove_all( GedaList *list );
-
-/*const GList *geda_list_get_glist( GedaList *list ); */
-#define geda_list_get_glist(list) (list->glist)
-
-#endif /* __GEDA_LIST_H__ */
-
diff --git a/libgeda/include/globals.h b/libgeda/include/globals.h
deleted file mode 100644
index 963bda8..0000000
--- a/libgeda/include/globals.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* gEDA - GPL Electronic Design Automation
- * libgeda - gEDA's library
- * Copyright (C) 1998-2004 Ales V. Hvezda
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/*! \file globals.h
- * \brief global libgeda variables
- */
-
-#ifndef _GLOBALS_H_INCL
-#define _GLOBALS_H_INCL
-
-extern int do_logging;
-extern int logging_dest;
-
-/* Size of a tab in characters */
-extern int tab_in_chars;
-
-#endif
diff --git a/libgeda/include/libgeda.h b/libgeda/include/libgeda.h
deleted file mode 100644
index a7483ed..0000000
--- a/libgeda/include/libgeda.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* gEDA - GPL Electronic Design Automation
- * libgeda - gEDA's Library
- * Copyright (C) 1998-2004 Ales V. Hvezda
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef LIBGEDA_H
-#define LIBGEDA_H
-
-#include <glib.h>
-
-#include <stdio.h>
-#include <libguile.h>
-#include <gdk-pixbuf/gdk-pixbuf.h>
-
-#include <libgeda/defines.h>
-#include <libgeda/struct.h>
-#include <libgeda/globals.h>
-#include <libgeda/o_types.h>
-#include <libgeda/funcs.h>
-#include <libgeda/colors.h>
-#include <libgeda/papersizes.h>
-#include <libgeda/prototype.h>
-#include <libgeda/geda_list.h>
-
-#endif
diff --git a/libgeda/include/libgeda/colors.h b/libgeda/include/libgeda/colors.h
new file mode 100644
index 0000000..4338412
--- /dev/null
+++ b/libgeda/include/libgeda/colors.h
@@ -0,0 +1,58 @@
+/* gEDA - GPL Electronic Design Automation
+ * libgeda - gEDA's Library
+ * Copyright (C) 1998-2004 Ales V. Hvezda
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/*! \file colors.h
+ * \brief define some constants for the colors
+ */
+
+#ifndef _COLORS_H_INCL
+#define _COLORS_H_INCL
+
+#define BACKGROUND_COLOR 0
+#define PIN_COLOR 1
+#define NET_ENDPOINT_COLOR 2
+#define GRAPHIC_COLOR 3
+#define NET_COLOR 4
+#define ATTRIBUTE_COLOR 5
+#define LOGIC_BUBBLE_COLOR 6
+#define DOTS_GRID_COLOR 7
+#define DETACHED_ATTRIBUTE_COLOR 8
+#define TEXT_COLOR 9
+#define BUS_COLOR 10
+#define SELECT_COLOR 11
+#define BOUNDINGBOX_COLOR 12
+#define ZOOM_BOX_COLOR 13
+#define STROKE_COLOR 14
+#define LOCK_COLOR 15
+#define OUTPUT_BACKGROUND_COLOR 16
+#define FREESTYLE1_COLOR 17
+#define FREESTYLE2_COLOR 18
+#define FREESTYLE3_COLOR 19
+#define FREESTYLE4_COLOR 20
+#define JUNCTION_COLOR 21
+#define MESH_GRID_MAJOR_COLOR 22
+#define MESH_GRID_MINOR_COLOR 23
+
+#define OVERRIDE_NET_COLOR 4
+#define OVERRIDE_PIN_COLOR 1
+#define OVERRIDE_BUS_COLOR 10
+
+#define DEFAULT_COLOR 3
+
+#endif
diff --git a/libgeda/include/libgeda/defines.h b/libgeda/include/libgeda/defines.h
new file mode 100644
index 0000000..581cfe4
--- /dev/null
+++ b/libgeda/include/libgeda/defines.h
@@ -0,0 +1,254 @@
+/* gEDA - GPL Electronic Design Automation
+ * libgeda - gEDA's Library
+ * Copyright (C) 1998-2004 Ales V. Hvezda
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/*! \file defines.h
+ * \brief global libgeda definitions
+ */
+
+#ifndef _DEFINES_H_INCL
+#define _DEFINES_H_INCL
+
+/* Current schematic/symbol file format */
+#define FILEFORMAT_VERSION 2
+
+/* release version which had file format changes */
+/* New file format changes after 20030921 use the above version */
+/* and not these #defines anymore. */
+#define VERSION_20000220 20000220
+#define VERSION_20000704 20000704
+#define VERSION_20020825 20020825
+#define VERSION_20030921 20030921
+/* 20030921 wasn't a real version, just a MinGW test version, but it is */
+/* out there */
+
+/* Set this string to something interesting to create a custom */
+/* version of gEDA/gaf. This string is prepended to all messages that */
+/* output the program's version output. You would set this if you are */
+/* creating a specific custom version of gEDA/gaf. */
+/* For example, if you set this string to "FIX-", the resulting output is: */
+/* FIX-1.0.0.20060906. */
+#define PREPEND_VERSION_STRING ""
+
+/* for color mechanism used in gschem */
+#define MAX_COLORS 25
+
+/* X's obsession with *64 */
+#define FULL_CIRCLE 360*64
+
+/* for show_name_value in st_objects */
+#define SHOW_NAME_VALUE 0
+#define SHOW_VALUE 1
+#define SHOW_NAME 2
+#define LEAVE_NAME_VALUE_ALONE -1
+
+/* for visibility in st_objects */
+#define INVISIBLE 0
+#define VISIBLE 1
+#define LEAVE_VISIBILITY_ALONE -1
+
+/* For pin and net styles */
+#define THIN 0
+#define THICK 1
+
+/* various thicknesses (in mils) */
+#define LINE_WIDTH 10
+#define NET_WIDTH 10
+#define PIN_WIDTH_NET 10
+#define BUS_WIDTH 30
+#define PIN_WIDTH_BUS 30
+
+/* various visual cue sizes (in mils) */
+#define CUE_BOX_SIZE 30
+#define JUNCTION_CUE_SIZE_NET 50
+#define JUNCTION_CUE_SIZE_BUS 30
+#define PIN_CUE_SIZE_NET 30
+#define PIN_CUE_SIZE_BUS 50
+
+/* For text location on component not found graphics */
+#define NOT_FOUND_TEXT_X 100
+#define NOT_FOUND_TEXT_Y 100
+
+#undef max
+#define max(a,b) ((a) > (b) ? (a) : (b))
+
+#undef min
+#define min(a,b) ((a) < (b) ? (a) : (b))
+
+/* for s_clib_getfilename() */
+#define OPEN_DIR 0
+#define READ_DIR 1
+#define CLOSE_DIR 2
+#define SET_COUNT 3
+
+/* for s_slib_search() */
+#define SLIB_SEARCH_START 0
+#define SLIB_SEARCH_NEXT 1
+#define SLIB_SEARCH_DONE 2
+
+/* for text alignment */
+/* 2 -- 5 -- 8 */
+/* | | | */
+/* 1 -- 4 -- 7 */
+/* | | | */
+/* 0 -- 3 -- 6 */
+#define LOWER_LEFT 0
+#define MIDDLE_LEFT 1
+#define UPPER_LEFT 2
+#define LOWER_MIDDLE 3
+#define MIDDLE_MIDDLE 4
+#define UPPER_MIDDLE 5
+#define LOWER_RIGHT 6
+#define MIDDLE_RIGHT 7
+#define UPPER_RIGHT 8
+
+/* one character string used to calculate tab's width */
+/* Warning: it MUST be a string. */
+#define TAB_CHAR_MODEL "b"
+
+/* multi text line spacing (multipled times character height) */
+#define LINE_SPACING 2.0
+
+/* The conn modes for type */
+#define CONN_NULL 0
+#define CONN_ENDPOINT 1
+#define CONN_MIDPOINT 2
+
+/* used by world_tiles to set the size of the array */
+#define MAX_TILES_X 10
+#define MAX_TILES_Y 10
+
+/* used for undo_savestate flag */
+#define UNDO_ALL 0
+#define UNDO_VIEWPORT_ONLY 1
+
+/* These are for where status information goes */
+#define LOG_WINDOW 0
+#define STDOUT_TTY 1
+#define BOTH_LOGWIN_STDOUT 2
+
+/* list copying flags */
+#define NORMAL_FLAG 0
+#define SELECTION_FLAG 1
+
+/* hierarchy loading flags */
+#define HIERARCHY_NORMAL_LOAD 0
+#define HIERARCHY_FORCE_LOAD 1
+
+/* hierarchy traversing flags */
+#define HIERARCHY_NODUPS (1<<0)
+#define HIERARCHY_POSTORDER (1<<1)
+#define HIERARCHY_INNERLOOP (1<<7)
+
+#define MILS_PER_INCH 1000
+
+/* for text_output */
+#define VECTOR_FONTS 0
+#define PS_FONTS 1
+
+/* for print dialog box */
+#define EXTENTS 0
+#define WINDOW 1
+#define EXTENTS_NOMARGINS 2
+
+/* for output-capstyle */
+#define BUTT_CAP 0
+#define ROUND_CAP 1
+#define SQUARE_CAP 2
+
+/* for print dialog box */
+#define LANDSCAPE 0
+#define PORTRAIT 1
+
+/* for type to s_cue_output_all */
+#define POSTSCRIPT 0
+#define PNG 1
+
+/* for o_net_orientation */
+#define NEITHER 0
+#define HORIZONTAL 1
+#define VERTICAL 2
+#define HORIZONTAL_ABOVE 3
+#define HORIZONTAL_BELOW 4
+#define VERTICAL_LEFT 5
+#define VERTICAL_RIGHT 6
+
+/* for pin_type */
+#define PIN_TYPE_NET 0
+#define PIN_TYPE_BUS 1
+
+/* gnetlist: hierarchy_*_order */
+#define APPEND 0
+#define PREPEND 1
+
+/* gnetlist: netlist_mode */
+#define gEDA 0
+#define SPICE 1
+#define TANGO 2
+
+/* gnetlist: net-naming-priority */
+#define NETATTRIB_ATTRIBUTE 0
+#define NETNAME_ATTRIBUTE 1
+
+/* gschcheck: Error types */
+#define NO_ERR 0
+#define FLOAT_NET 1
+#define FLOAT_PIN 2
+#define DUP_NET_NAME 4
+
+/* Max level of symlinks */
+#define MAX_LINK_LEVEL 256
+
+#if defined(__MINGW32__) && !defined(M_PI)
+#define M_PI 3.14159265358979323846
+#endif
+
+/* Logs a normal message. */
+#define s_log_message g_message
+
+/* Backup filename creation string */
+#define AUTOSAVE_BACKUP_FILENAME_STRING "#%s#"
+
+/* These permission bits are absent on MinGW */
+#ifndef S_IWGRP
+# define S_IWGRP 0
+#endif
+#ifndef S_IWOTH
+# define S_IWOTH 0
+#endif
+#ifndef S_IXGRP
+# define S_IXGRP 0
+#endif
+#ifndef S_IXOTH
+# define S_IXOTH 0
+#endif
+#ifndef S_IRWXG
+# define S_IRWXG 0
+#endif
+
+
+/* Used by the rc loading mechanism */
+#define RETURN_G_RC_MODE(rc, var, size) \
+ return g_rc_mode_general(mode, \
+ (rc), \
+ &(var), \
+ mode_table, \
+ size)
+
+
+#endif /* !_DEFINES_H_INCL */
diff --git a/libgeda/include/libgeda/funcs.h b/libgeda/include/libgeda/funcs.h
new file mode 100644
index 0000000..b6b2fbd
--- /dev/null
+++ b/libgeda/include/libgeda/funcs.h
@@ -0,0 +1,17 @@
+extern void (*arc_draw_func)();
+extern void (*box_draw_func)();
+extern void (*picture_draw_func)();
+extern void (*circle_draw_func)();
+extern void (*complex_draw_func)();
+extern void (*line_draw_func)();
+extern void (*net_draw_func)();
+extern void (*bus_draw_func)();
+extern void (*text_draw_func)();
+extern void (*pin_draw_func)();
+extern void (*path_draw_func)();
+extern void (*select_func)();
+extern void (*x_log_update_func)();
+/* load_newer_backup_func is called if an autosave backup file is found
+ when loading a new schematic. It should ask the user what to do, and
+ return TRUE if the backup file should be loaded, or FALSE otherwise */
+extern int (*load_newer_backup_func)();
diff --git a/libgeda/include/libgeda/geda_list.h b/libgeda/include/libgeda/geda_list.h
new file mode 100644
index 0000000..78a3d1c
--- /dev/null
+++ b/libgeda/include/libgeda/geda_list.h
@@ -0,0 +1,60 @@
+/* gEDA - GPL Electronic Design Automation
+ * gschem - gEDA Schematic Capture
+ * Copyright (C) 1998-2004 Ales V. Hvezda
+ * Copyright (C) 2007-2008 Peter Clifton
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+
+#ifndef __GEDA_LIST_H__
+#define __GEDA_LIST_H__
+
+#define GEDA_TYPE_LIST (geda_list_get_type())
+#define GEDA_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEDA_TYPE_LIST, GedaList))
+#define GEDA_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GEDA_TYPE_LIST, GedaListClass))
+#define GEDA_IS_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEDA_TYPE_LIST))
+#define GEDA_IS_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GEDA_TYPE_LIST))
+#define GEDA_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GEDA_TYPE_LIST, GedaListClass))
+
+
+typedef struct _GedaList GedaList;
+typedef struct _GedaListClass GedaListClass;
+
+struct _GedaList {
+ GObject parent;
+ GList *glist;
+};
+
+struct _GedaListClass {
+ GObjectClass parent;
+};
+
+GType geda_list_get_type (void);
+
+/* It would be nice to add const qualifiers to some of these, but GLib
+ * is buggy in this respect, and doesn't have const where necessary. */
+GedaList *geda_list_new( void );
+void geda_list_add( GedaList *list, gpointer item );
+void geda_list_add_glist( GedaList *list, GList *items );
+void geda_list_remove( GedaList *list, gpointer item );
+/*void geda_list_remove_glist( GedaList *list, GList *items ); */ /* Undemanded as yet */
+void geda_list_remove_all( GedaList *list );
+
+/*const GList *geda_list_get_glist( GedaList *list ); */
+#define geda_list_get_glist(list) (list->glist)
+
+#endif /* __GEDA_LIST_H__ */
+
diff --git a/libgeda/include/libgeda/globals.h b/libgeda/include/libgeda/globals.h
new file mode 100644
index 0000000..963bda8
--- /dev/null
+++ b/libgeda/include/libgeda/globals.h
@@ -0,0 +1,33 @@
+/* gEDA - GPL Electronic Design Automation
+ * libgeda - gEDA's library
+ * Copyright (C) 1998-2004 Ales V. Hvezda
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/*! \file globals.h
+ * \brief global libgeda variables
+ */
+
+#ifndef _GLOBALS_H_INCL
+#define _GLOBALS_H_INCL
+
+extern int do_logging;
+extern int logging_dest;
+
+/* Size of a tab in characters */
+extern int tab_in_chars;
+
+#endif
diff --git a/libgeda/include/libgeda/libgeda.h b/libgeda/include/libgeda/libgeda.h
new file mode 100644
index 0000000..a7483ed
--- /dev/null
+++ b/libgeda/include/libgeda/libgeda.h
@@ -0,0 +1,39 @@
+/* gEDA - GPL Electronic Design Automation
+ * libgeda - gEDA's Library
+ * Copyright (C) 1998-2004 Ales V. Hvezda
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef LIBGEDA_H
+#define LIBGEDA_H
+
+#include <glib.h>
+
+#include <stdio.h>
+#include <libguile.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+
+#include <libgeda/defines.h>
+#include <libgeda/struct.h>
+#include <libgeda/globals.h>
+#include <libgeda/o_types.h>
+#include <libgeda/funcs.h>
+#include <libgeda/colors.h>
+#include <libgeda/papersizes.h>
+#include <libgeda/prototype.h>
+#include <libgeda/geda_list.h>
+
+#endif
diff --git a/libgeda/include/libgeda/o_types.h b/libgeda/include/libgeda/o_types.h
new file mode 100644
index 0000000..0ff2e4f
--- /dev/null
+++ b/libgeda/include/libgeda/o_types.h
@@ -0,0 +1,54 @@
+/* gEDA - GPL Electronic Design Automation
+ * libgeda - gEDA's Library
+ * Copyright (C) 1998-2004 Ales V. Hvezda
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef _O_TYPES_H_INCL
+#define _O_TYPES_H_INCL
+
+/* Object types */
+/* Object types are also available in scheme */
+/* If there is any addition, add them also in g_register.c
+ (function g_register_libgeda_vars) */
+#define OBJ_LINE 'L'
+#define OBJ_PATH 'H'
+#define OBJ_BOX 'B'
+#define OBJ_PICTURE 'G'
+#define OBJ_CIRCLE 'V'
+#define OBJ_NET 'N'
+#define OBJ_BUS 'U'
+#define OBJ_COMPLEX 'C'
+#define OBJ_TEXT 'T'
+#define OBJ_PIN 'P'
+#define OBJ_ARC 'A'
+#define OBJ_PLACEHOLDER 'X' /* added 1.19.2005 by SDB to prevent
+ * deletion of unfound symbol files */
+
+
+#define STARTATTACH_ATTR '{'
+#define ENDATTACH_ATTR '}'
+#define START_EMBEDDED '['
+#define END_EMBEDDED ']'
+
+/* font stuff */
+#define INFO_FONT 'F'
+#define VERSION_CHAR 'v'
+
+/* misc stuff */
+#define COMMENT '#'
+
+#endif
diff --git a/libgeda/include/libgeda/papersizes.h b/libgeda/include/libgeda/papersizes.h
new file mode 100644
index 0000000..919149c
--- /dev/null
+++ b/libgeda/include/libgeda/papersizes.h
@@ -0,0 +1,38 @@
+/* gEDA - GPL Electronic Design Automation
+ * gschem - gEDA Schematic Capture
+ * Copyright (C) 1998-2004 Ales V. Hvezda
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ */
+
+/* this file is no longer used */
+
+#define MILS_PER 1000
+#define BORDER 1000
+/* if you change this one you must recalc correction factors */
+/* perhaps we will do this in the code ! */
+
+/* To calculate the correction factor for each: */
+/* if calcaspect < required_aspect : */
+/* Width_correction = (width+border) - (height+border)*1.3333 */
+/* else */
+/* Height_correction = ((width+border)/1.3333) - (height+border) */
+
+
+#define WIDTH_A 11*MILS_PER+BORDER+667
+#define HEIGHT_A 8.5*MILS_PER+BORDER
+
+#define WIDTH_B 17*MILS_PER+BORDER
+#define HEIGHT_B 11*MILS_PER+BORDER+1500
+
+#define WIDTH_C 22*MILS_PER+BORDER+1000
+#define HEIGHT_C 17*MILS_PER+BORDER
+
+#define WIDTH_D 34*MILS_PER+BORDER
+#define HEIGHT_D 22*MILS_PER+BORDER+3250
+
+#define WIDTH_E 44*MILS_PER+BORDER+1667
+#define HEIGHT_E 34*MILS_PER+BORDER
+
diff --git a/libgeda/include/libgeda/prototype.h b/libgeda/include/libgeda/prototype.h
new file mode 100644
index 0000000..d1d2a8f
--- /dev/null
+++ b/libgeda/include/libgeda/prototype.h
@@ -0,0 +1,476 @@
+
+/* a_basic.c */
+const gchar *o_file_format_header();
+gchar *o_save_buffer(TOPLEVEL *toplevel);
+int o_save(TOPLEVEL *toplevel, const char *filename);
+GList *o_read_buffer(TOPLEVEL *toplevel, GList *object_list, char *buffer, const int size, const char *name);
+GList *o_read(TOPLEVEL *toplevel, GList *object_list, char *filename, GError **err);
+void o_scale(TOPLEVEL *toplevel, GList *list, int x_scale, int y_scale);
+
+/* f_basic.c */
+gchar *f_get_autosave_filename (const gchar *filename);
+gboolean f_has_active_autosave (const gchar *filename, GError **err);
+int f_open(TOPLEVEL *toplevel, const gchar *filename, GError **err);
+int f_open_flags(TOPLEVEL *toplevel, const gchar *filename,
+ const gint flags, GError **err);
+void f_close(TOPLEVEL *toplevel);
+void f_save_close(TOPLEVEL *toplevel, char *filename);
+int f_save(TOPLEVEL *toplevel, const char *filename);
+gchar *f_normalize_filename (const gchar *filename, GError **error);
+char *follow_symlinks (const gchar *filename, GError **error);
+
+/* f_print.c */
+int f_print_file (TOPLEVEL *toplevel, const char *filename);
+int f_print_command (TOPLEVEL *toplevel, const char *command);
+int f_print_stream(TOPLEVEL *toplevel, FILE *fp);
+void f_print_set_type(TOPLEVEL *toplevel, int type);
+
+/* g_basic.c */
+SCM g_scm_eval_protected (SCM exp, SCM module_or_state);
+SCM g_scm_eval_string_protected (SCM str);
+SCM g_scm_c_eval_string_protected (const gchar *str);
+int g_read_file(const gchar *filename);
+
+/* g_rc.c */
+SCM g_rc_mode_general(SCM scmmode, const char *rc_name, int *mode_var,
+ const vstbl_entry *table, int table_size);
+gint g_rc_parse_general(TOPLEVEL *toplevel,
+ const gchar *fname,
+ const gchar *ok_msg, const gchar *err_msg);
+const char *g_rc_parse_path(void);
+gint g_rc_parse_system_rc(TOPLEVEL *toplevel, const gchar *rcname);
+gint g_rc_parse_home_rc(TOPLEVEL *toplevel, const gchar *rcname);
+gint g_rc_parse_local_rc(TOPLEVEL *toplevel, const gchar *rcname);
+void g_rc_parse(TOPLEVEL *toplevel, const gchar* rcname,
+ const gchar* specified_rc_filename);
+gint g_rc_parse_specified_rc(TOPLEVEL *toplevel, const gchar *rcfilename);
+
+/* g_smob.c */
+SCM g_make_attrib_smob(TOPLEVEL *curr_w, OBJECT *curr_attr);
+SCM g_set_attrib_value_internal(SCM attrib_smob, SCM scm_value, TOPLEVEL **world, OBJECT **o_attrib, char *new_string[]);
+gboolean g_get_data_from_object_smob(SCM object_smob, TOPLEVEL **toplevel,
+ OBJECT **object);
+SCM g_make_object_smob(TOPLEVEL *curr_w, OBJECT *object);
+SCM g_get_object_attributes(SCM object_smob);
+SCM g_make_page_smob(TOPLEVEL *curr_w, PAGE *page);
+gboolean g_get_data_from_page_smob(SCM object_smob, TOPLEVEL **toplevel,
+ PAGE **object);
+
+/* i_vars.c */
+void i_vars_libgeda_set(TOPLEVEL *toplevel);
+void i_vars_libgeda_freenames();
+
+/* gdk-pixbuf-hacks.c */
+GdkPixbuf *gdk_pixbuf_rotate (GdkPixbuf *pixbuf, guint angle);
+void gdk_pixbuf_add (GdkPixbuf *pixbuf, int offset_x, int offset_y, GdkPixbuf *pixbuf_to_add);
+GdkPixbuf *gdk_pixbuf_mirror_flip(GdkPixbuf *src, gint mirror, gint flip);
+
+/* libgeda.c */
+void libgeda_init(void);
+
+/* m_basic.c */
+void set_window(TOPLEVEL *toplevel, PAGE *page, int xmin, int xmax, int ymin, int ymax);
+void rotate_point(int x, int y, int angle, int *newx, int *newy);
+void rotate_point_90(int x, int y, int angle, int *newx, int *newy);
+void PAPERSIZEtoWORLD(int width, int height, int border, int *right, int *bottom);
+
+/* m_hatch.c */
+void m_hatch_box(BOX *box, gint angle, gint pitch, GArray *lines);
+void m_hatch_circle(CIRCLE *circle, gint angle, gint pitch, GArray *lines);
+void m_hatch_path(PATH *path, gint angle, gint pitch, GArray *lines);
+
+/* m_polygon.c */
+void m_polygon_append_bezier(GArray *points, BEZIER *bezier, int segments);
+void m_polygon_append_point(GArray *points, int x, int y);
+
+
+/* o_arc_basic.c */
+OBJECT *o_arc_new(TOPLEVEL *toplevel, char type, int color, int x, int y, int radius, int start_angle, int end_angle);
+OBJECT *o_arc_copy(TOPLEVEL *toplevel, OBJECT *o_current);
+void o_arc_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
+void o_arc_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
+void o_arc_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
+void o_arc_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
+
+/* o_attrib.c */
+OBJECT *o_attrib_search(GList *list, OBJECT *item);
+void o_attrib_add(TOPLEVEL *toplevel, OBJECT *object, OBJECT *item);
+void o_attrib_free(TOPLEVEL *toplevel, OBJECT *current);
+gboolean o_attrib_is_attached (TOPLEVEL *toplevel, OBJECT *attrib, OBJECT *object);
+void o_attrib_attach(TOPLEVEL *toplevel, OBJECT *attrib, OBJECT *object, int set_color);
+void o_attrib_attach_list(TOPLEVEL *toplevel, GList *attr_list, OBJECT *object, int set_color);
+void o_attrib_free_all(TOPLEVEL *toplevel, GList *list);
+void o_attrib_print(GList *attributes);
+void o_attrib_remove(GList **list, OBJECT *remove);
+gboolean o_attrib_get_name_value (const gchar *string, gchar **name_ptr, gchar **value_ptr);
+void o_attrib_set_color(TOPLEVEL *toplevel, GList *attributes);
+char *o_attrib_search_name(const GList *list, char *name, int counter);
+OBJECT *o_attrib_search_string_list(GList *list, char *string);
+char *o_attrib_search_string_partial(OBJECT *object, char *search_for, int counter);
+OBJECT *o_attrib_search_string_single(OBJECT *object, char *search_for);
+OBJECT *o_attrib_search_attrib_value(GList *list, char *value, char *name, int counter);
+char *o_attrib_search_attrib_name(GList *list, char *name, int counter);
+char *o_attrib_search_toplevel(const GList *list, char *name, int counter);
+char *o_attrib_search_name_single(OBJECT *object, char *name, OBJECT **return_found);
+char *o_attrib_search_name_single_count(OBJECT *object, char *name, int counter);
+char *o_attrib_search_slot(OBJECT *object, OBJECT **return_found);
+char *o_attrib_search_numslots(OBJECT *object, OBJECT **return_found);
+char *o_attrib_search_default_slot(OBJECT *object);
+OBJECT *o_attrib_search_pinseq(GList *list, int pin_number);
+char *o_attrib_search_slotdef(OBJECT *object, int slotnumber);
+char *o_attrib_search_component(OBJECT *object, char *name);
+void o_attrib_slot_update(TOPLEVEL *toplevel, OBJECT *object);
+void o_attrib_slot_copy(TOPLEVEL *toplevel, OBJECT *original, OBJECT *target);
+char *o_attrib_search_toplevel_all(GedaPageList *page_list, char *name);
+OBJECT **o_attrib_return_attribs(OBJECT *object);
+void o_attrib_free_returned(OBJECT **found_objects);
+
+/* o_basic.c */
+int inside_region(int xmin, int ymin, int xmax, int ymax, int x, int y);
+void o_recalc_single_object(TOPLEVEL *toplevel, OBJECT *o_current);
+void o_recalc_object_glist(TOPLEVEL *toplevel, GList *object_glist);
+void o_set_line_options(TOPLEVEL *toplevel, OBJECT *o_current, OBJECT_END end, OBJECT_TYPE type, int width, int length, int space);
+gboolean o_get_line_options(OBJECT *object, OBJECT_END *end, OBJECT_TYPE *type, int *width, int *length, int *space);
+void o_set_fill_options(TOPLEVEL *toplevel, OBJECT *o_current, OBJECT_FILLING type, int width, int pitch1, int angle1, int pitch2, int angle2);
+gboolean o_get_fill_options(OBJECT *object, OBJECT_FILLING *type, int *width, int *pitch1, int *angle1, int *pitch2, int *angle2);
+gboolean o_get_position(TOPLEVEL *toplevel, gint *x, gint *y, OBJECT *object);
+void o_translate_world (TOPLEVEL *toplevel, gint dx, gint dy, OBJECT *object);
+void o_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
+void o_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
+double o_shortest_distance(OBJECT *object, int x, int y);
+
+/* o_box_basic.c */
+OBJECT *o_box_new(TOPLEVEL *toplevel, char type, int color, int x1, int y1, int x2, int y2);
+OBJECT *o_box_copy(TOPLEVEL *toplevel, OBJECT *o_current);
+void o_box_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
+void o_box_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
+void o_box_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
+void o_box_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
+
+/* o_bus_basic.c */
+OBJECT *o_bus_new(TOPLEVEL *toplevel, char type, int color, int x1, int y1, int x2, int y2, int bus_ripper_direction);
+void o_bus_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
+OBJECT *o_bus_copy(TOPLEVEL *toplevel, OBJECT *o_current);
+void o_bus_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
+void o_bus_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
+int o_bus_orientation(OBJECT *object);
+void o_bus_consolidate_lowlevel(OBJECT *object, OBJECT *del_object, int orient);
+int o_bus_consolidate_segments(TOPLEVEL *toplevel, OBJECT *object);
+void o_bus_consolidate(TOPLEVEL *toplevel);
+void o_bus_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
+
+/* o_circle_basic.c */
+int dist(int x1, int y1, int x2, int y2);
+OBJECT *o_circle_new(TOPLEVEL *toplevel, char type, int color, int x, int y, int radius);
+OBJECT *o_circle_copy(TOPLEVEL *toplevel, OBJECT *o_current);
+void o_circle_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
+void o_circle_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
+void o_circle_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
+void o_circle_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
+
+/* o_complex_basic.c */
+int world_get_single_object_bounds(TOPLEVEL *toplevel, OBJECT *o_current,
+ int *rleft, int *rtop,
+ int *rright, int *rbottom);
+int world_get_object_glist_bounds(TOPLEVEL *toplevel, const GList *o_list,
+ int *left, int *top,
+ int *right, int *bottom);
+int o_complex_is_embedded(OBJECT *o_current);
+GList *o_complex_get_toplevel_attribs (TOPLEVEL *toplevel, const GList *obj_list);
+GList *o_complex_get_promotable (TOPLEVEL *toplevel, OBJECT *object, int detach);
+GList *o_complex_promote_attribs (TOPLEVEL *toplevel, OBJECT *object);
+void o_complex_remove_promotable_attribs (TOPLEVEL *toplevel, OBJECT *object);
+OBJECT *o_complex_new(TOPLEVEL *toplevel, char type, int color, int x, int y, int angle, int mirror, const CLibSymbol *clib_sym, const gchar *basename, int selectable);
+OBJECT *o_complex_new_embedded(TOPLEVEL *toplevel, char type, int color, int x, int y, int angle, int mirror, const gchar *basename, int selectable);
+void o_complex_set_filename(TOPLEVEL *toplevel, const char *basename);
+void o_complex_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
+OBJECT *o_complex_copy(TOPLEVEL *toplevel, OBJECT *o_current);
+OBJECT *o_complex_copy_embedded(TOPLEVEL *toplevel, OBJECT *o_current);
+void o_complex_set_color(GList *prim_objs, int color);
+void o_complex_set_color_single(OBJECT *o_current, int color);
+void o_complex_set_color_save(GList *list, int color);
+void o_complex_unset_color(GList *list);
+void o_complex_unset_color_single(OBJECT *o_current);
+void o_complex_set_saved_color_only(GList *list, int color);
+OBJECT *o_complex_return_nth_pin(GList *list, int counter);
+void o_complex_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
+void o_complex_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
+OBJECT *o_complex_return_pin_object(OBJECT *object, char *pin);
+int o_complex_count_pins(OBJECT *object);
+void o_complex_check_symversion(TOPLEVEL* toplevel, OBJECT* object);
+
+/* o_embed.c */
+void o_embed(TOPLEVEL *toplevel, OBJECT *o_current);
+void o_unembed(TOPLEVEL *toplevel, OBJECT *o_current);
+
+/* o_line_basic.c */
+OBJECT *o_line_new(TOPLEVEL *toplevel, char type, int color, int x1, int y1, int x2, int y2);
+OBJECT *o_line_copy(TOPLEVEL *toplevel, OBJECT *o_current);
+void o_line_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
+void o_line_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
+void o_line_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
+void o_line_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
+void o_line_scale_world(TOPLEVEL *toplevel, int x_scale, int y_scale, OBJECT *object);
+double o_line_length(OBJECT *object);
+
+/* o_list.c */
+OBJECT *o_object_copy(TOPLEVEL *toplevel, OBJECT *selected, int flag);
+GList *o_glist_copy_all(TOPLEVEL *toplevel, const GList *src_list, GList *dest_list, int flag);
+void o_glist_translate_world(TOPLEVEL *toplevel, int dx, int dy, const GList *list);
+void o_glist_rotate_world(TOPLEVEL *toplevel, int x, int y, int angle, const GList *list);
+void o_glist_mirror_world(TOPLEVEL *toplevel, int x, int y, const GList *list);
+
+/* o_net_basic.c */
+OBJECT *o_net_new(TOPLEVEL *toplevel, char type, int color, int x1, int y1, int x2, int y2);
+void o_net_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
+OBJECT *o_net_copy(TOPLEVEL *toplevel, OBJECT *o_current);
+void o_net_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
+void o_net_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
+int o_net_orientation(OBJECT *object);
+void o_net_consolidate_lowlevel(OBJECT *object, OBJECT *del_object, int orient);
+int o_net_consolidate_nomidpoint(OBJECT *object, int x, int y);
+int o_net_consolidate_segments(TOPLEVEL *toplevel, OBJECT *object);
+void o_net_consolidate(TOPLEVEL *toplevel);
+void o_net_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
+
+/* o_path_basic.c */
+OBJECT *o_path_new(TOPLEVEL *toplevel, char type, int color, const char *path_string);
+OBJECT *o_path_copy(TOPLEVEL *toplevel, OBJECT *o_current);
+void o_path_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
+void o_path_translate_world(TOPLEVEL *toplevel, int x, int y, OBJECT *object);
+void o_path_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
+void o_path_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
+
+/* o_picture.c */
+OBJECT *o_picture_new(TOPLEVEL *toplevel, GdkPixbuf *pixbuf,
+ gchar *file_content, gsize file_length, char *filename,
+ double ratio, char type,
+ int x1, int y1, int x2, int y2, int angle, char mirrored,
+ char embedded);
+void o_picture_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
+void o_picture_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle,OBJECT *object);
+void o_picture_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
+void o_picture_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
+OBJECT *o_picture_copy(TOPLEVEL *toplevel, OBJECT *o_current);
+guint8 *o_picture_rgb_data(GdkPixbuf *image);
+guint8 *o_picture_mask_data(GdkPixbuf *image);
+void o_picture_embed(TOPLEVEL *toplevel, OBJECT *object);
+void o_picture_unembed(TOPLEVEL *toplevel, OBJECT *object);
+GdkPixbuf *o_picture_pixbuf_from_buffer (gchar *file_content, gsize file_length, GError **err);
+
+/* o_pin_basic.c */
+OBJECT *o_pin_new(TOPLEVEL *toplevel, char type, int color, int x1, int y1, int x2, int y2, int pin_type, int whichend);
+void o_pin_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
+OBJECT *o_pin_copy(TOPLEVEL *toplevel, OBJECT *o_current);
+void o_pin_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
+void o_pin_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
+void o_pin_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
+void o_pin_update_whichend(TOPLEVEL *toplevel, GList *object_list, int num_pins);
+void o_pin_set_type(OBJECT *o_current, int pin_type);
+/* o_selection.c */
+SELECTION *o_selection_new( void );
+void o_selection_add(SELECTION *selection, OBJECT *o_selected);
+void o_selection_print_all(const SELECTION *selection);
+void o_selection_remove(SELECTION *selection, OBJECT *o_selected);
+void o_selection_select(OBJECT *object, int color); /* DEPRECATED */
+void o_selection_unselect(OBJECT *object); /* DEPRECATED */
+
+/* o_text_basic.c */
+void o_text_init(void);
+void o_text_print_set(void);
+GList *o_text_load_font(TOPLEVEL *toplevel, gunichar needed_char);
+int o_text_num_lines(const char *string);
+int o_text_height(const char *string, int size);
+int o_text_width(TOPLEVEL *toplevel, char *string, int size);
+GList *o_text_create_string(TOPLEVEL *toplevel, char *string, int size, int color, int x, int y, int alignment, int angle);
+OBJECT *o_text_new(TOPLEVEL *toplevel, char type, int color, int x, int y, int alignment, int angle, const char *string, int size, int visibility, int show_name_value);
+void o_text_set_info_font(char buf[]);
+void o_text_recreate(TOPLEVEL *toplevel, OBJECT *o_current);
+void o_text_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *o_current);
+OBJECT *o_text_copy(TOPLEVEL *toplevel, OBJECT *o_current);
+void o_text_freeallfonts(TOPLEVEL *toplevel);
+void o_text_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
+void o_text_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
+void o_text_set_string(TOPLEVEL *toplevel, OBJECT *obj, const gchar *new_string);
+const gchar *o_text_get_string(TOPLEVEL *toplevel, OBJECT *obj);
+void o_text_set_rendered_bounds_func (TOPLEVEL *toplevel, RenderedBoundsFunc func, void *user_data);
+/* s_attrib.c */
+int s_attrib_add_entry(char *new_attrib);
+void s_attrib_print(void);
+int s_attrib_uniq(char *name);
+void s_attrib_free(void);
+void s_attrib_init(void);
+char *s_attrib_get(int counter);
+
+/* s_basic.c */
+void error_if_called(void);
+void exit_if_null(void *ptr);
+OBJECT *s_basic_init_object(OBJECT *new_node, int type, char const *name);
+OBJECT *s_basic_new_object(int type, char const *prefix);
+void print_struct_forw(GList *list);
+void print_struct(OBJECT *ptr);
+void s_delete_object(TOPLEVEL *toplevel, OBJECT *o_current);
+void s_delete_object_glist(TOPLEVEL *toplevel, GList *list);
+char *remove_nl(char *string);
+char *remove_last_nl(char *string);
+gchar *s_expand_env_variables (const gchar *string);
+
+/* s_clib.c */
+void s_clib_free (void);
+GList *s_clib_get_sources (const gboolean sorted);
+const CLibSource *s_clib_get_source_by_name (const gchar *name);
+void s_clib_refresh ();
+const CLibSource *s_clib_add_directory (const gchar *directory,
+ const gchar *name);
+const CLibSource *s_clib_add_command (const gchar *list_cmd,
+ const gchar *get_cmd,
+ const gchar *name);
+const CLibSource *s_clib_add_scm (SCM listfunc, SCM getfunc,
+ const gchar *name);
+const gchar *s_clib_source_get_name (const CLibSource *source);
+GList *s_clib_source_get_symbols (const CLibSource *source);
+const gchar *s_clib_symbol_get_name (const CLibSymbol *symbol);
+gchar *s_clib_symbol_get_filename (const CLibSymbol *symbol);
+const CLibSource *s_clib_symbol_get_source (const CLibSymbol *symbol);
+gchar *s_clib_symbol_get_data (const CLibSymbol *symbol);
+GList *s_clib_search (const gchar *pattern, const CLibSearchMode mode);
+void s_clib_flush_search_cache ();
+void s_clib_flush_symbol_cache ();
+const CLibSymbol *s_clib_get_symbol_by_name (const gchar *name);
+gchar *s_clib_symbol_get_data_by_name (const gchar *name);
+GList *s_toplevel_get_symbols (const TOPLEVEL *toplevel);
+
+/* s_color.c */
+void s_color_map_defaults (COLOR *map);
+gboolean s_color_rgba_decode (const gchar *rgba,
+ guchar *r, guchar *g, guchar *b, guchar *a);
+gchar *s_color_rgba_encode (guint8 r, guint8 g, guint8 b, guint8 a);
+SCM s_color_map_to_scm (const COLOR *map);
+void s_color_map_from_scm (COLOR *map, SCM lst, const char *scheme_proc_name);
+
+/* s_conn.c */
+CONN *s_conn_return_new(OBJECT *other_object, int type, int x, int y, int whichone, int other_whichone);
+int s_conn_uniq(GList *conn_list, CONN *input_conn);
+int s_conn_remove_other(TOPLEVEL *toplevel, OBJECT *other_object, OBJECT *to_remove);
+void s_conn_remove_object(TOPLEVEL *toplevel, OBJECT *to_remove);
+OBJECT *s_conn_check_midpoint(OBJECT *o_current, int x, int y);
+void s_conn_update_object(TOPLEVEL *toplevel, OBJECT *object);
+void s_conn_print(GList *conn_list);
+int s_conn_net_search(OBJECT* new_net, int whichone, GList * conn_list);
+GList *s_conn_return_others(GList *input_list, OBJECT *object);
+
+/* s_cue.c */
+void s_cue_postscript_fillbox(TOPLEVEL *toplevel, FILE *fp, int x, int y);
+void s_cue_postscript_junction (TOPLEVEL *toplevel, FILE *fp, int x, int y, int bus_involved);
+void s_cue_output_all(TOPLEVEL *toplevel, const GList *obj_list, FILE *fp, int type);
+void s_cue_output_lowlevel(TOPLEVEL *toplevel, OBJECT *object, int whichone, FILE *fp, int output_type);
+void s_cue_output_lowlevel_midpoints(TOPLEVEL *toplevel, OBJECT *object, FILE *fp, int output_type);
+void s_cue_output_single(TOPLEVEL *toplevel, OBJECT *object, FILE *fp, int type);
+
+/* s_hierarchy.c */
+int s_hierarchy_down_schematic_single(TOPLEVEL *toplevel, const gchar *filename, PAGE *parent, int page_control, int flag);
+void s_hierarchy_down_symbol (TOPLEVEL *toplevel, const CLibSymbol *symbol, PAGE *parent);
+PAGE *s_hierarchy_find_up_page(GedaPageList *page_list, PAGE *current_page);
+GList* s_hierarchy_traversepages(TOPLEVEL *toplevel, gint flags);
+gint s_hierarchy_print_page(PAGE *p_current, void * data);
+PAGE *s_hierarchy_find_prev_page(GedaPageList *page_list, PAGE *current_page);
+PAGE *s_hierarchy_find_next_page(GedaPageList *page_list, PAGE *current_page);
+
+/* s_log.c */
+void s_log_init (const gchar *filename);
+void s_log_close (void);
+gchar *s_log_read (void);
+
+/* s_menu.c */
+int s_menu_return_num(void);
+SCM s_menu_return_entry(int index, char **menu_name);
+int s_menu_add_entry(char *new_menu, SCM menu_items);
+void s_menu_print(void);
+void s_menu_free(void);
+void s_menu_init(void);
+
+/* s_page.c */
+PAGE *s_page_new (TOPLEVEL *toplevel, const gchar *filename);
+void s_page_delete (TOPLEVEL *toplevel, PAGE *page);
+void s_page_delete_list(TOPLEVEL *toplevel);
+void s_page_goto (TOPLEVEL *toplevel, PAGE *p_new);
+PAGE *s_page_search (TOPLEVEL *toplevel, const gchar *filename);
+PAGE *s_page_search_by_page_id (GedaPageList *list, int pid);
+void s_page_print_all (TOPLEVEL *toplevel);
+gint s_page_save_all (TOPLEVEL *toplevel);
+gboolean s_page_check_changed (GedaPageList *list);
+void s_page_clear_changed (GedaPageList *list);
+void s_page_autosave_init(TOPLEVEL *toplevel);
+gint s_page_autosave (TOPLEVEL *toplevel);
+void s_page_append (PAGE *page, OBJECT *object);
+void s_page_append_list (PAGE *page, GList *obj_list);
+void s_page_remove (PAGE *page, OBJECT *object);
+void s_page_delete_objects (TOPLEVEL *toplevel, PAGE *page);
+const GList *s_page_objects (PAGE *page);
+GList *s_page_objects_in_region (TOPLEVEL *toplevel, PAGE *page, int min_x, int min_y, int max_x, int max_y);
+GList *s_page_objects_in_regions (TOPLEVEL *toplevel, PAGE *page, BOX *rects, int n_rects);
+
+/* s_papersizes.c */
+int s_papersizes_add_entry(char *new_papersize, int width, int height);
+void s_papersizes_print(void);
+int s_papersizes_uniq(char *name);
+void s_papersizes_free(void);
+void s_papersizes_init(void);
+char *s_papersizes_get(int counter);
+void s_papersizes_get_size(char *string, int *width, int *height);
+
+/* s_path.c */
+PATH *s_path_parse (const char *path_str);
+char *s_path_string_from_path (const PATH *path);
+
+/* s_project.c */
+TOPLEVEL *s_toplevel_new (void);
+void s_toplevel_delete (TOPLEVEL *toplevel);
+
+/* s_slib.c */
+int s_slib_add_entry(char *new_path);
+int s_slib_search_for_dirname(char *dir_name);
+char *s_slib_search_dirs(const char *basename);
+char *s_slib_search_lowlevel(const char *basename);
+char *s_slib_getbasename(const char *rawname);
+char *s_slib_search(const char *filename, int flag);
+char *s_slib_search_single(const char *filename);
+void s_slib_free(void);
+void s_slib_init(void);
+char *s_slib_getdir(int index);
+char *s_slib_getfiles(char *directory, int flag);
+void s_slib_print(void);
+int s_slib_uniq(char *path);
+void s_slib_print_dirs(void);
+
+/* s_stretch.c */
+GList *s_stretch_add(GList *list, OBJECT *object, CONN *connection, int whichone);
+GList *s_stretch_remove(GList *list, OBJECT *object);
+void s_stretch_print_all(GList *list);
+void s_stretch_destroy_all(GList *list);
+
+/* s_tile.c */
+void s_tile_init(TOPLEVEL *toplevel, PAGE *p_current);
+void s_tile_add_object(TOPLEVEL *toplevel, OBJECT *object);
+void s_tile_remove_object(OBJECT *object);
+void s_tile_update_object(TOPLEVEL *toplevel, OBJECT *object);
+GList *s_tile_get_objectlists(TOPLEVEL *toplevel, int world_x1, int world_y1, int world_x2, int world_y2);
+void s_tile_print(TOPLEVEL *toplevel);
+void s_tile_free_all(PAGE *p_current);
+
+/* s_undo.c */
+UNDO *s_undo_return_tail(UNDO *head);
+UNDO *s_undo_return_head(UNDO *tail);
+UNDO *s_undo_new_head(void);
+void s_undo_destroy_head(UNDO *u_head);
+UNDO *s_undo_add(UNDO *head, int type, char *filename, GList *object_list, int left, int top, int right, int bottom, int page_control, int up);
+void s_undo_print_all(UNDO *head);
+void s_undo_destroy_all(TOPLEVEL *toplevel, UNDO *head);
+void s_undo_remove(TOPLEVEL *toplevel, UNDO *head, UNDO *u_tos);
+void s_undo_remove_rest(TOPLEVEL *toplevel, UNDO *head);
+int s_undo_levels(UNDO *head);
+void s_undo_init(PAGE *p_current);
+void s_undo_free_all(TOPLEVEL *toplevel, PAGE *p_current);
+
+/* u_basic.c */
+char *u_basic_breakup_string(char *string, char delimiter, int count);
diff --git a/libgeda/include/libgeda/struct.h b/libgeda/include/libgeda/struct.h
new file mode 100644
index 0000000..b29634a
--- /dev/null
+++ b/libgeda/include/libgeda/struct.h
@@ -0,0 +1,692 @@
+/* gEDA - GPL Electronic Design Automation
+ * libgeda - gEDA's Library
+ * Copyright (C) 1998-2004 Ales V. Hvezda
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef STRUCT_H
+#define STRUCT_H
+
+#include <glib.h> /* Include needed to make GList work. */
+
+/* Wrappers around a new list mechanism */
+typedef struct _GedaList SELECTION;
+typedef struct _GedaList GedaPageList;
+
+/* gschem structures (gschem) */
+typedef struct st_complex COMPLEX;
+typedef struct st_line LINE;
+typedef struct st_path_section PATH_SECTION;
+typedef struct st_path PATH;
+typedef struct st_circle CIRCLE;
+typedef struct st_arc ARC;
+typedef struct st_box BOX;
+typedef struct st_picture PICTURE;
+typedef struct st_text TEXT;
+typedef struct st_point sPOINT;
+typedef struct st_transform TRANSFORM;
+typedef struct st_bezier BEZIER;
+
+typedef struct st_object OBJECT;
+typedef struct st_page PAGE;
+typedef struct st_toplevel TOPLEVEL;
+typedef struct st_color COLOR;
+typedef struct st_undo UNDO;
+typedef struct st_tile TILE;
+typedef struct st_bounds BOUNDS;
+
+typedef struct st_conn CONN;
+typedef struct st_bus_ripper BUS_RIPPER;
+
+/* Used when you move objects and you want the nets/pins to stretch */
+typedef struct st_stretch STRETCH;
+
+/* netlist structures (gnetlist) */
+typedef struct st_netlist NETLIST;
+typedef struct st_cpinlist CPINLIST;
+typedef struct st_net NET;
+
+/* sch check structures (gschcheck) */
+typedef struct st_schcheck SCHCHECK;
+typedef struct st_chkerrs CHKERRS;
+
+/* Managed text buffers */
+typedef struct _TextBuffer TextBuffer;
+
+/* Component library objects */
+typedef struct _CLibSource CLibSource;
+typedef struct _CLibSymbol CLibSymbol;
+
+/* Component library search modes */
+typedef enum { CLIB_EXACT=0, CLIB_GLOB } CLibSearchMode;
+
+/* f_open behaviour flags. See documentation for f_open_flags() in
+ f_basic.c. */
+typedef enum { F_OPEN_RC = 1,
+ F_OPEN_CHECK_BACKUP = 2,
+ F_OPEN_RESTORE_CWD = 4,
+} FOpenFlags;
+
+/*! \brief line end style for an open line of an object */
+typedef enum {END_NONE, END_SQUARE, END_ROUND} OBJECT_END;
+
+/*! \brief line style of lines, rect, circles, arcs */
+typedef enum {TYPE_SOLID, TYPE_DOTTED, TYPE_DASHED, TYPE_CENTER, TYPE_PHANTOM, TYPE_ERASE} OBJECT_TYPE;
+
+/*! \brief fill style of objects like cirle, rect, path */
+typedef enum {FILLING_HOLLOW, FILLING_FILL, FILLING_MESH, FILLING_HATCH, FILLING_VOID} OBJECT_FILLING;
+
+struct st_line {
+ int x[2];
+ int y[2];
+};
+
+struct st_point {
+ gint x;
+ gint y;
+};
+
+#define LINE_END1 0
+#define LINE_END2 1
+
+typedef enum {
+ PATH_MOVETO,
+ PATH_MOVETO_OPEN,
+ PATH_CURVETO,
+ PATH_LINETO,
+ PATH_END
+} PATH_CODE;
+
+struct st_path_section {
+ PATH_CODE code;
+ int x1;
+ int y1;
+ int x2;
+ int y2;
+ int x3;
+ int y3;
+};
+
+struct st_path {
+ PATH_SECTION *sections; /* Bezier path segments */
+ int num_sections; /* Number with data */
+ int num_sections_max; /* Number allocated */
+};
+
+struct st_arc {
+ int x, y; /* world */
+
+ int width;
+ int height;
+
+ int start_angle;
+ int end_angle;
+};
+
+#define ARC_CENTER 0
+#define ARC_RADIUS 1
+#define ARC_START_ANGLE 2
+#define ARC_END_ANGLE 3
+
+struct st_bezier {
+ int x[4];
+ int y[4];
+};
+
+struct st_box {
+ /* upper is considered the origin */
+ int upper_x, upper_y; /* world */
+ int lower_x, lower_y;
+
+};
+
+#define BOX_UPPER_LEFT 0
+#define BOX_LOWER_RIGHT 1
+#define BOX_UPPER_RIGHT 2
+#define BOX_LOWER_LEFT 3
+
+struct st_picture {
+ GdkPixbuf *original_picture;
+ GdkPixbuf *displayed_picture;
+ gchar *file_content;
+ gsize file_length;
+
+ double ratio;
+ char *filename;
+ int angle;
+ char mirrored;
+ char embedded;
+
+ /* upper is considered the origin */
+ int upper_x, upper_y; /* world */
+ int lower_x, lower_y;
+
+};
+
+#define PICTURE_UPPER_LEFT 0
+#define PICTURE_LOWER_RIGHT 1
+#define PICTURE_UPPER_RIGHT 2
+#define PICTURE_LOWER_LEFT 3
+
+
+struct st_text {
+ int x, y; /* world origin */
+
+ char *string; /* text stuff */
+ char *disp_string;
+ int length;
+ int size;
+ int alignment;
+ int displayed_width;
+ int displayed_height;
+ int angle;
+
+ GList *prim_objs;
+};
+
+struct st_complex {
+ int x, y; /* world origin */
+
+ int angle; /* orientation, only multiples
+ * of 90 degrees allowed */
+ /* in degrees */
+ int mirror;
+
+ GList *prim_objs; /* Primitive objects */
+ /* objects which make up the */
+ /* complex */
+};
+
+struct st_circle {
+ int center_x, center_y; /* world */
+ int radius;
+};
+
+#define CIRCLE_CENTER 0
+#define CIRCLE_RADIUS 1
+
+struct st_object {
+ int type; /* Basic information */
+ int sid;
+ char *name;
+
+ int w_top; /* Bounding box information */
+ int w_left; /* in world coords */
+ int w_right;
+ int w_bottom;
+ gboolean w_bounds_valid;
+
+ COMPLEX *complex;
+ LINE *line;
+ CIRCLE *circle;
+ ARC *arc;
+ BOX *box;
+ TEXT *text;
+ PICTURE *picture;
+ PATH *path;
+
+ GList *tiles; /* tiles */
+
+ GList *conn_list; /* List of connections */
+ /* to and from this object */
+
+ /* every graphical primitive have more or less the same options. */
+ /* depending on its nature a primitive is concerned with one or more */
+ /* of these fields. If not, value must be ignored. */
+ OBJECT_END line_end;
+ OBJECT_TYPE line_type;
+ int line_width;
+ int line_space;
+ int line_length;
+
+ OBJECT_FILLING fill_type;
+ int fill_width;
+ int fill_angle1, fill_pitch1;
+ int fill_angle2, fill_pitch2;
+
+ gboolean complex_embedded; /* is embedded component? */
+ gchar *complex_basename; /* Component Library Symbol name */
+ OBJECT *complex_parent; /* Complex parent object pointer */
+ /* used only in complex head nodes */
+
+ /* unused for now */
+ void (*action_func)(); /* Execute function */
+
+ void (*sel_func)(); /* Selected function */
+ void (*draw_func)(); /* Draw function */
+
+ int color; /* Which color */
+ int saved_color; /* Saved color */
+ int dont_redraw; /* Flag to skip redrawing */
+ int selected; /* object selected flag */
+ int locked_color; /* Locked color (used to save */
+ /* the object's real color */
+ /* when the object is locked) */
+
+ /* controls which direction bus rippers go */
+ /* it is either 0 for un-inited, */
+ /* 1 for right, -1 for left (horizontal bus) */
+ /* 1 for up, -1 for down (vertial bus) */
+ int bus_ripper_direction; /* only valid on buses */
+
+
+ int font_text_size; /* used only with fonts defs */
+ GList *font_prim_objs; /* used only with fonts defs */
+
+ int whichend; /* for pins only, either 0 or 1 */
+ int pin_type; /* for pins only, either NET or BUS */
+
+ GList *attribs; /* attribute stuff */
+ int show_name_value;
+ int visibility;
+ OBJECT *attached_to; /* when object is an attribute */
+ OBJECT *copied_to; /* used when copying attributes */
+
+};
+
+
+/*! \brief Structure for connections between OBJECTs
+ *
+ * The st_conn structure contains a single connection
+ * to another object.
+ * The connection system in s_conn.c uses this struct
+ */
+struct st_conn {
+ /*! \brief The "other" object connected to this one */
+ OBJECT *other_object;
+ /*! \brief type of connection. Always in reference to how the "other"
+ object is connected to the current one */
+ int type;
+ /*! \brief x coord of the connection position */
+ int x;
+ /*! \brief y coord of the connection position */
+ int y;
+ /*! \brief which endpoint of the current object caused this connection */
+ int whichone;
+ /*! \brief which endpoint of the "other" object caused this connection */
+ int other_whichone;
+};
+
+/* this structure is used in gschem to add rippers when drawing nets */
+/* it is never stored in any object, it is only temporary */
+struct st_bus_ripper
+{
+ int x[2];
+ int y[2];
+};
+
+struct st_stretch
+{
+ OBJECT *object;
+ CONN *connection;
+
+ int whichone;
+};
+
+struct st_bounds {
+ gint min_x;
+ gint min_y;
+ gint max_x;
+ gint max_y;
+};
+
+/** A structure to store a 2D affine transform.
+ *
+ * The transforms get stored in a 3x3 matrix. Code assumes the bottom row to
+ * remain constant at [0 0 1].
+ */
+struct st_transform {
+ gdouble m[2][3]; /* m[row][column] */
+};
+
+struct st_undo {
+
+ /* one of these is used, depending on if you are doing in-memory */
+ /* or file based undo state saving */
+ char *filename;
+ GList *object_list;
+
+ /* either UNDO_ALL or UNDO_VIEWPORT_ONLY */
+ int type;
+
+ /* viewport information */
+ int left, top, right, bottom;
+
+ /* up and down the hierarchy */
+ int up;
+ /* used to control which pages are viewable when moving around */
+ int page_control;
+
+ UNDO *prev;
+ UNDO *next;
+};
+
+
+/*! \brief structure to split a page into tiles
+ *
+ * This structure is used to track objects that are inside
+ * a smaller TILE of o a page.
+ * See s_tile.c for further informations.
+ */
+struct st_tile {
+ GList *objects;
+
+ int top, left, right, bottom;
+};
+
+struct st_page {
+
+ int pid;
+
+ GList *_object_list;
+ SELECTION *selection_list; /* new selection mechanism */
+ GList *place_list;
+ OBJECT *object_lastplace; /* the last found item */
+ GList *stretch_list;
+
+ char *page_filename;
+ int CHANGED; /* changed flag */
+ /*int zoom_factor; no longer used*/
+ int left, right, top, bottom; /* World coord limits */
+ double coord_aspectratio; /* Real worldcoords ratio (?) */
+
+ float to_screen_x_constant;
+ float to_screen_y_constant;
+
+ float to_world_x_constant;
+ float to_world_y_constant;
+
+ TILE world_tiles[MAX_TILES_X][MAX_TILES_Y];
+
+ /* Undo/Redo Stacks and pointers */
+ /* needs to go into page mechanism actually */
+ UNDO *undo_bottom;
+ UNDO *undo_current;
+ UNDO *undo_tos; /* Top Of Stack */
+
+ /* up and down the hierarchy */
+ /* this holds the pid of the parent page */
+ int up;
+ /* int down; not needed */
+
+ /* used to control which pages are viewable when moving around */
+ int page_control;
+
+ /* backup variables */
+ GTimeVal last_load_or_save_time;
+ char saved_since_first_loaded;
+ gint ops_since_last_backup;
+ gchar do_autosave_backup;
+
+ /* Function which asks the user wether to load a newer backup file */
+ int (*load_newer_backup_func)();
+
+};
+
+/*! \brief different kind of snapping mechanisms used in TOPLEVEL */
+typedef enum {SNAP_OFF, SNAP_GRID, SNAP_RESNAP, SNAP_STATE_COUNT} SNAP_STATE;
+
+/*! \brief Type of callback function for calculating text bounds */
+typedef int(*RenderedBoundsFunc)(void *, OBJECT *, int *, int *, int *, int *);
+
+struct st_toplevel {
+
+ /* have to decided on component list stuff */
+ /* if it should go in here or not */
+ /* leave outside for now */
+
+ GList *RC_list; /* List of RC files which have been read in. */
+
+ char *untitled_name; /* untitled sch basename */
+ char *font_directory; /* path of the vector fonts */
+ char *scheme_directory; /* path of the scheme scripts */
+ char *bitmap_directory; /* path of the bitmaps */
+
+ int init_left, init_right; /* Starting values for above */
+ int init_top, init_bottom;
+
+ int width, height; /* height, width of window */
+
+ /*! \brief whether and how to snap to the current grid */
+ SNAP_STATE snap;
+
+ int override_color; /* used in doing selections */
+
+ int last_ps_color; /* used in print code */
+
+ int DONT_REDRAW; /* misc flags */
+ int ADDING_SEL;
+
+ /* page system */
+ PAGE *page_current;
+ GedaPageList *pages;
+
+ /* show_hidden_text is used to control which text is hidden in gschem */
+ int show_hidden_text;
+
+ GList* major_changed_refdes; /* A list of all refdes's that have */
+ /* major symbol version changes */
+
+ /* backup variables */
+ int auto_save_interval;
+ gint auto_save_timeout;
+
+ /* used by math funcs for the snapping */
+ int snap_size;
+
+ /* BLOCK SET IN GSCHEM, BUT USED IN LIBGEDA - NEEDS A RETHINK */
+ int background_color;
+ int override_net_color;
+ int override_bus_color;
+ int override_pin_color;
+ int pin_style;
+ int net_style;
+ int bus_style;
+ int line_style;
+ /* END BLOCK - ALTHOUGH THERE ARE MORE CASES! */
+
+ /* controls whether objects are clipped */
+ int object_clipping;
+
+ /* controls how text is printed (vector / PS font) */
+ int text_output;
+
+ /* either landscape or portrait */
+ int print_orientation;
+
+ /* either TRUE or FALSE (color or no color) */
+ int image_color;
+
+ /* either TRUE or FALSE (color or no color) */
+ int print_color;
+
+ /* color used color ouput for background */
+ int print_color_background;
+
+ /* setpagedevice orientation option enable (TRUE or FALSE) */
+ int setpagedevice_orientation;
+
+ /* setpagedevice pagesize option enable (TRUE or FALSE) */
+ int setpagedevice_pagesize;
+
+ /* The name of the prolog file to paste into the Postscript output */
+ char *postscript_prolog;
+
+ /* Use this as a scaling factor for the output font */
+ float postscript_font_scale;
+
+ /* controls if the net consolidation code is used */
+ int net_consolidate;
+
+ /*controls if attribute promotion happens */
+ int attribute_promotion;
+
+ /* controls if invisible attribs are promoted */
+ int promote_invisible;
+
+ /* controls if invisible attribs are kept and not deleted */
+ int keep_invisible;
+
+ /* either window or limits */
+ int print_output_type;
+
+ /* BUTT, ROUND, SQUARE caps */
+ int print_output_capstyle;
+
+ /* landscape printing only */
+ int paper_width, paper_height;
+
+ /* filename of the bus ripper component if set above */
+ char *bus_ripper_symname;
+
+ /* controls if the whole bounding box is used in the auto whichend code */
+ int force_boundingbox;
+
+ /* controls the threshold (in lines of text) when the multi-line text */
+ /* output font is forced to vector */
+ int print_vector_threshold;
+
+ /* List of attributes to always promote */
+ GList *always_promote_attributes;
+
+ /* gnetlist specific */
+ int net_naming_priority;
+ int hierarchy_traversal;
+ int hierarchy_uref_mangle;
+ int hierarchy_netname_mangle;
+ int hierarchy_netattrib_mangle;
+ char *hierarchy_uref_separator;
+ char *hierarchy_netname_separator;
+ char *hierarchy_netattrib_separator;
+ int hierarchy_netattrib_order;
+ int hierarchy_netname_order;
+ int hierarchy_uref_order;
+ char *unnamed_netname;
+ char *unnamed_busname;
+
+ /* Callback function for calculating text bounds */
+ RenderedBoundsFunc rendered_text_bounds_func;
+ void *rendered_text_bounds_data;
+};
+
+/* structures below are for gnetlist */
+
+/* for every component in the object database */
+struct st_netlist {
+
+ int nlid;
+
+ char *component_uref;
+
+ OBJECT *object_ptr;
+
+ CPINLIST *cpins;
+
+ char *hierarchy_tag;
+ int composite_component;
+
+ NETLIST *prev;
+ NETLIST *next;
+};
+
+
+/* for every pin on a component */
+struct st_cpinlist {
+ int plid;
+ int type; /* PIN_TYPE_NET or PIN_TYPE_BUS */
+
+ char *pin_number;
+ char *net_name; /* this is resolved at very end */
+ char *pin_label;
+
+ NET *nets;
+
+ CPINLIST *prev;
+ CPINLIST *next;
+};
+
+/* the net run connected to a pin */
+struct st_net {
+
+ int nid;
+
+ int net_name_has_priority;
+ char *net_name;
+ char *pin_label;
+
+ char *connected_to; /* new to replace above */
+
+ NET *prev;
+ NET *next;
+};
+
+/* By Jamil Khatib */
+/* typedef struct st_chkerrs CHKERRS; */
+
+/* Schem check struct */
+struct st_schcheck {
+ int no_errors; /* No of Errors */
+ int no_warnings; /* No of Warinings */
+
+ CHKERRS * sheet_errs;
+
+ CHKERRS *float_nets; /* Header of the list of floating nets */
+ int net_errs; /* No of floating nets */
+
+ OBJECT *float_pins; /* Header of List of floating pins*/
+ int pin_errs; /* No of floating pins */
+
+ int net_names; /* No of mismatched net names */
+};
+
+
+struct st_chkerrs{
+
+ OBJECT * err_obj;
+ CHKERRS * next;
+
+};
+
+
+
+struct st_color {
+ guint8 r, g, b, a;
+ gboolean enabled;
+};
+
+
+struct st_attrib_smob {
+ TOPLEVEL *world; /* We need this when updating schematic */
+ OBJECT *attribute;
+};
+
+struct st_object_smob {
+ TOPLEVEL *world; /* We need this when updating schematic */
+ OBJECT *object;
+};
+
+struct st_page_smob {
+ TOPLEVEL *world; /* We need this when updating schematic */
+ PAGE *page;
+};
+
+/* used by the rc loading mechanisms */
+typedef struct {
+ int m_val;
+ char *m_str;
+} vstbl_entry;
+
+#endif
diff --git a/libgeda/include/o_types.h b/libgeda/include/o_types.h
deleted file mode 100644
index 0ff2e4f..0000000
--- a/libgeda/include/o_types.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* gEDA - GPL Electronic Design Automation
- * libgeda - gEDA's Library
- * Copyright (C) 1998-2004 Ales V. Hvezda
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef _O_TYPES_H_INCL
-#define _O_TYPES_H_INCL
-
-/* Object types */
-/* Object types are also available in scheme */
-/* If there is any addition, add them also in g_register.c
- (function g_register_libgeda_vars) */
-#define OBJ_LINE 'L'
-#define OBJ_PATH 'H'
-#define OBJ_BOX 'B'
-#define OBJ_PICTURE 'G'
-#define OBJ_CIRCLE 'V'
-#define OBJ_NET 'N'
-#define OBJ_BUS 'U'
-#define OBJ_COMPLEX 'C'
-#define OBJ_TEXT 'T'
-#define OBJ_PIN 'P'
-#define OBJ_ARC 'A'
-#define OBJ_PLACEHOLDER 'X' /* added 1.19.2005 by SDB to prevent
- * deletion of unfound symbol files */
-
-
-#define STARTATTACH_ATTR '{'
-#define ENDATTACH_ATTR '}'
-#define START_EMBEDDED '['
-#define END_EMBEDDED ']'
-
-/* font stuff */
-#define INFO_FONT 'F'
-#define VERSION_CHAR 'v'
-
-/* misc stuff */
-#define COMMENT '#'
-
-#endif
diff --git a/libgeda/include/papersizes.h b/libgeda/include/papersizes.h
deleted file mode 100644
index 919149c..0000000
--- a/libgeda/include/papersizes.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* gEDA - GPL Electronic Design Automation
- * gschem - gEDA Schematic Capture
- * Copyright (C) 1998-2004 Ales V. Hvezda
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- */
-
-/* this file is no longer used */
-
-#define MILS_PER 1000
-#define BORDER 1000
-/* if you change this one you must recalc correction factors */
-/* perhaps we will do this in the code ! */
-
-/* To calculate the correction factor for each: */
-/* if calcaspect < required_aspect : */
-/* Width_correction = (width+border) - (height+border)*1.3333 */
-/* else */
-/* Height_correction = ((width+border)/1.3333) - (height+border) */
-
-
-#define WIDTH_A 11*MILS_PER+BORDER+667
-#define HEIGHT_A 8.5*MILS_PER+BORDER
-
-#define WIDTH_B 17*MILS_PER+BORDER
-#define HEIGHT_B 11*MILS_PER+BORDER+1500
-
-#define WIDTH_C 22*MILS_PER+BORDER+1000
-#define HEIGHT_C 17*MILS_PER+BORDER
-
-#define WIDTH_D 34*MILS_PER+BORDER
-#define HEIGHT_D 22*MILS_PER+BORDER+3250
-
-#define WIDTH_E 44*MILS_PER+BORDER+1667
-#define HEIGHT_E 34*MILS_PER+BORDER
-
diff --git a/libgeda/include/prototype.h b/libgeda/include/prototype.h
deleted file mode 100644
index d1d2a8f..0000000
--- a/libgeda/include/prototype.h
+++ /dev/null
@@ -1,476 +0,0 @@
-
-/* a_basic.c */
-const gchar *o_file_format_header();
-gchar *o_save_buffer(TOPLEVEL *toplevel);
-int o_save(TOPLEVEL *toplevel, const char *filename);
-GList *o_read_buffer(TOPLEVEL *toplevel, GList *object_list, char *buffer, const int size, const char *name);
-GList *o_read(TOPLEVEL *toplevel, GList *object_list, char *filename, GError **err);
-void o_scale(TOPLEVEL *toplevel, GList *list, int x_scale, int y_scale);
-
-/* f_basic.c */
-gchar *f_get_autosave_filename (const gchar *filename);
-gboolean f_has_active_autosave (const gchar *filename, GError **err);
-int f_open(TOPLEVEL *toplevel, const gchar *filename, GError **err);
-int f_open_flags(TOPLEVEL *toplevel, const gchar *filename,
- const gint flags, GError **err);
-void f_close(TOPLEVEL *toplevel);
-void f_save_close(TOPLEVEL *toplevel, char *filename);
-int f_save(TOPLEVEL *toplevel, const char *filename);
-gchar *f_normalize_filename (const gchar *filename, GError **error);
-char *follow_symlinks (const gchar *filename, GError **error);
-
-/* f_print.c */
-int f_print_file (TOPLEVEL *toplevel, const char *filename);
-int f_print_command (TOPLEVEL *toplevel, const char *command);
-int f_print_stream(TOPLEVEL *toplevel, FILE *fp);
-void f_print_set_type(TOPLEVEL *toplevel, int type);
-
-/* g_basic.c */
-SCM g_scm_eval_protected (SCM exp, SCM module_or_state);
-SCM g_scm_eval_string_protected (SCM str);
-SCM g_scm_c_eval_string_protected (const gchar *str);
-int g_read_file(const gchar *filename);
-
-/* g_rc.c */
-SCM g_rc_mode_general(SCM scmmode, const char *rc_name, int *mode_var,
- const vstbl_entry *table, int table_size);
-gint g_rc_parse_general(TOPLEVEL *toplevel,
- const gchar *fname,
- const gchar *ok_msg, const gchar *err_msg);
-const char *g_rc_parse_path(void);
-gint g_rc_parse_system_rc(TOPLEVEL *toplevel, const gchar *rcname);
-gint g_rc_parse_home_rc(TOPLEVEL *toplevel, const gchar *rcname);
-gint g_rc_parse_local_rc(TOPLEVEL *toplevel, const gchar *rcname);
-void g_rc_parse(TOPLEVEL *toplevel, const gchar* rcname,
- const gchar* specified_rc_filename);
-gint g_rc_parse_specified_rc(TOPLEVEL *toplevel, const gchar *rcfilename);
-
-/* g_smob.c */
-SCM g_make_attrib_smob(TOPLEVEL *curr_w, OBJECT *curr_attr);
-SCM g_set_attrib_value_internal(SCM attrib_smob, SCM scm_value, TOPLEVEL **world, OBJECT **o_attrib, char *new_string[]);
-gboolean g_get_data_from_object_smob(SCM object_smob, TOPLEVEL **toplevel,
- OBJECT **object);
-SCM g_make_object_smob(TOPLEVEL *curr_w, OBJECT *object);
-SCM g_get_object_attributes(SCM object_smob);
-SCM g_make_page_smob(TOPLEVEL *curr_w, PAGE *page);
-gboolean g_get_data_from_page_smob(SCM object_smob, TOPLEVEL **toplevel,
- PAGE **object);
-
-/* i_vars.c */
-void i_vars_libgeda_set(TOPLEVEL *toplevel);
-void i_vars_libgeda_freenames();
-
-/* gdk-pixbuf-hacks.c */
-GdkPixbuf *gdk_pixbuf_rotate (GdkPixbuf *pixbuf, guint angle);
-void gdk_pixbuf_add (GdkPixbuf *pixbuf, int offset_x, int offset_y, GdkPixbuf *pixbuf_to_add);
-GdkPixbuf *gdk_pixbuf_mirror_flip(GdkPixbuf *src, gint mirror, gint flip);
-
-/* libgeda.c */
-void libgeda_init(void);
-
-/* m_basic.c */
-void set_window(TOPLEVEL *toplevel, PAGE *page, int xmin, int xmax, int ymin, int ymax);
-void rotate_point(int x, int y, int angle, int *newx, int *newy);
-void rotate_point_90(int x, int y, int angle, int *newx, int *newy);
-void PAPERSIZEtoWORLD(int width, int height, int border, int *right, int *bottom);
-
-/* m_hatch.c */
-void m_hatch_box(BOX *box, gint angle, gint pitch, GArray *lines);
-void m_hatch_circle(CIRCLE *circle, gint angle, gint pitch, GArray *lines);
-void m_hatch_path(PATH *path, gint angle, gint pitch, GArray *lines);
-
-/* m_polygon.c */
-void m_polygon_append_bezier(GArray *points, BEZIER *bezier, int segments);
-void m_polygon_append_point(GArray *points, int x, int y);
-
-
-/* o_arc_basic.c */
-OBJECT *o_arc_new(TOPLEVEL *toplevel, char type, int color, int x, int y, int radius, int start_angle, int end_angle);
-OBJECT *o_arc_copy(TOPLEVEL *toplevel, OBJECT *o_current);
-void o_arc_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
-void o_arc_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
-void o_arc_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
-void o_arc_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
-
-/* o_attrib.c */
-OBJECT *o_attrib_search(GList *list, OBJECT *item);
-void o_attrib_add(TOPLEVEL *toplevel, OBJECT *object, OBJECT *item);
-void o_attrib_free(TOPLEVEL *toplevel, OBJECT *current);
-gboolean o_attrib_is_attached (TOPLEVEL *toplevel, OBJECT *attrib, OBJECT *object);
-void o_attrib_attach(TOPLEVEL *toplevel, OBJECT *attrib, OBJECT *object, int set_color);
-void o_attrib_attach_list(TOPLEVEL *toplevel, GList *attr_list, OBJECT *object, int set_color);
-void o_attrib_free_all(TOPLEVEL *toplevel, GList *list);
-void o_attrib_print(GList *attributes);
-void o_attrib_remove(GList **list, OBJECT *remove);
-gboolean o_attrib_get_name_value (const gchar *string, gchar **name_ptr, gchar **value_ptr);
-void o_attrib_set_color(TOPLEVEL *toplevel, GList *attributes);
-char *o_attrib_search_name(const GList *list, char *name, int counter);
-OBJECT *o_attrib_search_string_list(GList *list, char *string);
-char *o_attrib_search_string_partial(OBJECT *object, char *search_for, int counter);
-OBJECT *o_attrib_search_string_single(OBJECT *object, char *search_for);
-OBJECT *o_attrib_search_attrib_value(GList *list, char *value, char *name, int counter);
-char *o_attrib_search_attrib_name(GList *list, char *name, int counter);
-char *o_attrib_search_toplevel(const GList *list, char *name, int counter);
-char *o_attrib_search_name_single(OBJECT *object, char *name, OBJECT **return_found);
-char *o_attrib_search_name_single_count(OBJECT *object, char *name, int counter);
-char *o_attrib_search_slot(OBJECT *object, OBJECT **return_found);
-char *o_attrib_search_numslots(OBJECT *object, OBJECT **return_found);
-char *o_attrib_search_default_slot(OBJECT *object);
-OBJECT *o_attrib_search_pinseq(GList *list, int pin_number);
-char *o_attrib_search_slotdef(OBJECT *object, int slotnumber);
-char *o_attrib_search_component(OBJECT *object, char *name);
-void o_attrib_slot_update(TOPLEVEL *toplevel, OBJECT *object);
-void o_attrib_slot_copy(TOPLEVEL *toplevel, OBJECT *original, OBJECT *target);
-char *o_attrib_search_toplevel_all(GedaPageList *page_list, char *name);
-OBJECT **o_attrib_return_attribs(OBJECT *object);
-void o_attrib_free_returned(OBJECT **found_objects);
-
-/* o_basic.c */
-int inside_region(int xmin, int ymin, int xmax, int ymax, int x, int y);
-void o_recalc_single_object(TOPLEVEL *toplevel, OBJECT *o_current);
-void o_recalc_object_glist(TOPLEVEL *toplevel, GList *object_glist);
-void o_set_line_options(TOPLEVEL *toplevel, OBJECT *o_current, OBJECT_END end, OBJECT_TYPE type, int width, int length, int space);
-gboolean o_get_line_options(OBJECT *object, OBJECT_END *end, OBJECT_TYPE *type, int *width, int *length, int *space);
-void o_set_fill_options(TOPLEVEL *toplevel, OBJECT *o_current, OBJECT_FILLING type, int width, int pitch1, int angle1, int pitch2, int angle2);
-gboolean o_get_fill_options(OBJECT *object, OBJECT_FILLING *type, int *width, int *pitch1, int *angle1, int *pitch2, int *angle2);
-gboolean o_get_position(TOPLEVEL *toplevel, gint *x, gint *y, OBJECT *object);
-void o_translate_world (TOPLEVEL *toplevel, gint dx, gint dy, OBJECT *object);
-void o_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
-void o_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
-double o_shortest_distance(OBJECT *object, int x, int y);
-
-/* o_box_basic.c */
-OBJECT *o_box_new(TOPLEVEL *toplevel, char type, int color, int x1, int y1, int x2, int y2);
-OBJECT *o_box_copy(TOPLEVEL *toplevel, OBJECT *o_current);
-void o_box_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
-void o_box_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
-void o_box_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
-void o_box_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
-
-/* o_bus_basic.c */
-OBJECT *o_bus_new(TOPLEVEL *toplevel, char type, int color, int x1, int y1, int x2, int y2, int bus_ripper_direction);
-void o_bus_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
-OBJECT *o_bus_copy(TOPLEVEL *toplevel, OBJECT *o_current);
-void o_bus_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
-void o_bus_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
-int o_bus_orientation(OBJECT *object);
-void o_bus_consolidate_lowlevel(OBJECT *object, OBJECT *del_object, int orient);
-int o_bus_consolidate_segments(TOPLEVEL *toplevel, OBJECT *object);
-void o_bus_consolidate(TOPLEVEL *toplevel);
-void o_bus_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
-
-/* o_circle_basic.c */
-int dist(int x1, int y1, int x2, int y2);
-OBJECT *o_circle_new(TOPLEVEL *toplevel, char type, int color, int x, int y, int radius);
-OBJECT *o_circle_copy(TOPLEVEL *toplevel, OBJECT *o_current);
-void o_circle_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
-void o_circle_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
-void o_circle_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
-void o_circle_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
-
-/* o_complex_basic.c */
-int world_get_single_object_bounds(TOPLEVEL *toplevel, OBJECT *o_current,
- int *rleft, int *rtop,
- int *rright, int *rbottom);
-int world_get_object_glist_bounds(TOPLEVEL *toplevel, const GList *o_list,
- int *left, int *top,
- int *right, int *bottom);
-int o_complex_is_embedded(OBJECT *o_current);
-GList *o_complex_get_toplevel_attribs (TOPLEVEL *toplevel, const GList *obj_list);
-GList *o_complex_get_promotable (TOPLEVEL *toplevel, OBJECT *object, int detach);
-GList *o_complex_promote_attribs (TOPLEVEL *toplevel, OBJECT *object);
-void o_complex_remove_promotable_attribs (TOPLEVEL *toplevel, OBJECT *object);
-OBJECT *o_complex_new(TOPLEVEL *toplevel, char type, int color, int x, int y, int angle, int mirror, const CLibSymbol *clib_sym, const gchar *basename, int selectable);
-OBJECT *o_complex_new_embedded(TOPLEVEL *toplevel, char type, int color, int x, int y, int angle, int mirror, const gchar *basename, int selectable);
-void o_complex_set_filename(TOPLEVEL *toplevel, const char *basename);
-void o_complex_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
-OBJECT *o_complex_copy(TOPLEVEL *toplevel, OBJECT *o_current);
-OBJECT *o_complex_copy_embedded(TOPLEVEL *toplevel, OBJECT *o_current);
-void o_complex_set_color(GList *prim_objs, int color);
-void o_complex_set_color_single(OBJECT *o_current, int color);
-void o_complex_set_color_save(GList *list, int color);
-void o_complex_unset_color(GList *list);
-void o_complex_unset_color_single(OBJECT *o_current);
-void o_complex_set_saved_color_only(GList *list, int color);
-OBJECT *o_complex_return_nth_pin(GList *list, int counter);
-void o_complex_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
-void o_complex_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
-OBJECT *o_complex_return_pin_object(OBJECT *object, char *pin);
-int o_complex_count_pins(OBJECT *object);
-void o_complex_check_symversion(TOPLEVEL* toplevel, OBJECT* object);
-
-/* o_embed.c */
-void o_embed(TOPLEVEL *toplevel, OBJECT *o_current);
-void o_unembed(TOPLEVEL *toplevel, OBJECT *o_current);
-
-/* o_line_basic.c */
-OBJECT *o_line_new(TOPLEVEL *toplevel, char type, int color, int x1, int y1, int x2, int y2);
-OBJECT *o_line_copy(TOPLEVEL *toplevel, OBJECT *o_current);
-void o_line_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
-void o_line_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
-void o_line_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
-void o_line_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
-void o_line_scale_world(TOPLEVEL *toplevel, int x_scale, int y_scale, OBJECT *object);
-double o_line_length(OBJECT *object);
-
-/* o_list.c */
-OBJECT *o_object_copy(TOPLEVEL *toplevel, OBJECT *selected, int flag);
-GList *o_glist_copy_all(TOPLEVEL *toplevel, const GList *src_list, GList *dest_list, int flag);
-void o_glist_translate_world(TOPLEVEL *toplevel, int dx, int dy, const GList *list);
-void o_glist_rotate_world(TOPLEVEL *toplevel, int x, int y, int angle, const GList *list);
-void o_glist_mirror_world(TOPLEVEL *toplevel, int x, int y, const GList *list);
-
-/* o_net_basic.c */
-OBJECT *o_net_new(TOPLEVEL *toplevel, char type, int color, int x1, int y1, int x2, int y2);
-void o_net_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
-OBJECT *o_net_copy(TOPLEVEL *toplevel, OBJECT *o_current);
-void o_net_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
-void o_net_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
-int o_net_orientation(OBJECT *object);
-void o_net_consolidate_lowlevel(OBJECT *object, OBJECT *del_object, int orient);
-int o_net_consolidate_nomidpoint(OBJECT *object, int x, int y);
-int o_net_consolidate_segments(TOPLEVEL *toplevel, OBJECT *object);
-void o_net_consolidate(TOPLEVEL *toplevel);
-void o_net_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
-
-/* o_path_basic.c */
-OBJECT *o_path_new(TOPLEVEL *toplevel, char type, int color, const char *path_string);
-OBJECT *o_path_copy(TOPLEVEL *toplevel, OBJECT *o_current);
-void o_path_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
-void o_path_translate_world(TOPLEVEL *toplevel, int x, int y, OBJECT *object);
-void o_path_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
-void o_path_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
-
-/* o_picture.c */
-OBJECT *o_picture_new(TOPLEVEL *toplevel, GdkPixbuf *pixbuf,
- gchar *file_content, gsize file_length, char *filename,
- double ratio, char type,
- int x1, int y1, int x2, int y2, int angle, char mirrored,
- char embedded);
-void o_picture_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
-void o_picture_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle,OBJECT *object);
-void o_picture_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
-void o_picture_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
-OBJECT *o_picture_copy(TOPLEVEL *toplevel, OBJECT *o_current);
-guint8 *o_picture_rgb_data(GdkPixbuf *image);
-guint8 *o_picture_mask_data(GdkPixbuf *image);
-void o_picture_embed(TOPLEVEL *toplevel, OBJECT *object);
-void o_picture_unembed(TOPLEVEL *toplevel, OBJECT *object);
-GdkPixbuf *o_picture_pixbuf_from_buffer (gchar *file_content, gsize file_length, GError **err);
-
-/* o_pin_basic.c */
-OBJECT *o_pin_new(TOPLEVEL *toplevel, char type, int color, int x1, int y1, int x2, int y2, int pin_type, int whichend);
-void o_pin_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
-OBJECT *o_pin_copy(TOPLEVEL *toplevel, OBJECT *o_current);
-void o_pin_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
-void o_pin_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
-void o_pin_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
-void o_pin_update_whichend(TOPLEVEL *toplevel, GList *object_list, int num_pins);
-void o_pin_set_type(OBJECT *o_current, int pin_type);
-/* o_selection.c */
-SELECTION *o_selection_new( void );
-void o_selection_add(SELECTION *selection, OBJECT *o_selected);
-void o_selection_print_all(const SELECTION *selection);
-void o_selection_remove(SELECTION *selection, OBJECT *o_selected);
-void o_selection_select(OBJECT *object, int color); /* DEPRECATED */
-void o_selection_unselect(OBJECT *object); /* DEPRECATED */
-
-/* o_text_basic.c */
-void o_text_init(void);
-void o_text_print_set(void);
-GList *o_text_load_font(TOPLEVEL *toplevel, gunichar needed_char);
-int o_text_num_lines(const char *string);
-int o_text_height(const char *string, int size);
-int o_text_width(TOPLEVEL *toplevel, char *string, int size);
-GList *o_text_create_string(TOPLEVEL *toplevel, char *string, int size, int color, int x, int y, int alignment, int angle);
-OBJECT *o_text_new(TOPLEVEL *toplevel, char type, int color, int x, int y, int alignment, int angle, const char *string, int size, int visibility, int show_name_value);
-void o_text_set_info_font(char buf[]);
-void o_text_recreate(TOPLEVEL *toplevel, OBJECT *o_current);
-void o_text_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *o_current);
-OBJECT *o_text_copy(TOPLEVEL *toplevel, OBJECT *o_current);
-void o_text_freeallfonts(TOPLEVEL *toplevel);
-void o_text_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
-void o_text_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
-void o_text_set_string(TOPLEVEL *toplevel, OBJECT *obj, const gchar *new_string);
-const gchar *o_text_get_string(TOPLEVEL *toplevel, OBJECT *obj);
-void o_text_set_rendered_bounds_func (TOPLEVEL *toplevel, RenderedBoundsFunc func, void *user_data);
-/* s_attrib.c */
-int s_attrib_add_entry(char *new_attrib);
-void s_attrib_print(void);
-int s_attrib_uniq(char *name);
-void s_attrib_free(void);
-void s_attrib_init(void);
-char *s_attrib_get(int counter);
-
-/* s_basic.c */
-void error_if_called(void);
-void exit_if_null(void *ptr);
-OBJECT *s_basic_init_object(OBJECT *new_node, int type, char const *name);
-OBJECT *s_basic_new_object(int type, char const *prefix);
-void print_struct_forw(GList *list);
-void print_struct(OBJECT *ptr);
-void s_delete_object(TOPLEVEL *toplevel, OBJECT *o_current);
-void s_delete_object_glist(TOPLEVEL *toplevel, GList *list);
-char *remove_nl(char *string);
-char *remove_last_nl(char *string);
-gchar *s_expand_env_variables (const gchar *string);
-
-/* s_clib.c */
-void s_clib_free (void);
-GList *s_clib_get_sources (const gboolean sorted);
-const CLibSource *s_clib_get_source_by_name (const gchar *name);
-void s_clib_refresh ();
-const CLibSource *s_clib_add_directory (const gchar *directory,
- const gchar *name);
-const CLibSource *s_clib_add_command (const gchar *list_cmd,
- const gchar *get_cmd,
- const gchar *name);
-const CLibSource *s_clib_add_scm (SCM listfunc, SCM getfunc,
- const gchar *name);
-const gchar *s_clib_source_get_name (const CLibSource *source);
-GList *s_clib_source_get_symbols (const CLibSource *source);
-const gchar *s_clib_symbol_get_name (const CLibSymbol *symbol);
-gchar *s_clib_symbol_get_filename (const CLibSymbol *symbol);
-const CLibSource *s_clib_symbol_get_source (const CLibSymbol *symbol);
-gchar *s_clib_symbol_get_data (const CLibSymbol *symbol);
-GList *s_clib_search (const gchar *pattern, const CLibSearchMode mode);
-void s_clib_flush_search_cache ();
-void s_clib_flush_symbol_cache ();
-const CLibSymbol *s_clib_get_symbol_by_name (const gchar *name);
-gchar *s_clib_symbol_get_data_by_name (const gchar *name);
-GList *s_toplevel_get_symbols (const TOPLEVEL *toplevel);
-
-/* s_color.c */
-void s_color_map_defaults (COLOR *map);
-gboolean s_color_rgba_decode (const gchar *rgba,
- guchar *r, guchar *g, guchar *b, guchar *a);
-gchar *s_color_rgba_encode (guint8 r, guint8 g, guint8 b, guint8 a);
-SCM s_color_map_to_scm (const COLOR *map);
-void s_color_map_from_scm (COLOR *map, SCM lst, const char *scheme_proc_name);
-
-/* s_conn.c */
-CONN *s_conn_return_new(OBJECT *other_object, int type, int x, int y, int whichone, int other_whichone);
-int s_conn_uniq(GList *conn_list, CONN *input_conn);
-int s_conn_remove_other(TOPLEVEL *toplevel, OBJECT *other_object, OBJECT *to_remove);
-void s_conn_remove_object(TOPLEVEL *toplevel, OBJECT *to_remove);
-OBJECT *s_conn_check_midpoint(OBJECT *o_current, int x, int y);
-void s_conn_update_object(TOPLEVEL *toplevel, OBJECT *object);
-void s_conn_print(GList *conn_list);
-int s_conn_net_search(OBJECT* new_net, int whichone, GList * conn_list);
-GList *s_conn_return_others(GList *input_list, OBJECT *object);
-
-/* s_cue.c */
-void s_cue_postscript_fillbox(TOPLEVEL *toplevel, FILE *fp, int x, int y);
-void s_cue_postscript_junction (TOPLEVEL *toplevel, FILE *fp, int x, int y, int bus_involved);
-void s_cue_output_all(TOPLEVEL *toplevel, const GList *obj_list, FILE *fp, int type);
-void s_cue_output_lowlevel(TOPLEVEL *toplevel, OBJECT *object, int whichone, FILE *fp, int output_type);
-void s_cue_output_lowlevel_midpoints(TOPLEVEL *toplevel, OBJECT *object, FILE *fp, int output_type);
-void s_cue_output_single(TOPLEVEL *toplevel, OBJECT *object, FILE *fp, int type);
-
-/* s_hierarchy.c */
-int s_hierarchy_down_schematic_single(TOPLEVEL *toplevel, const gchar *filename, PAGE *parent, int page_control, int flag);
-void s_hierarchy_down_symbol (TOPLEVEL *toplevel, const CLibSymbol *symbol, PAGE *parent);
-PAGE *s_hierarchy_find_up_page(GedaPageList *page_list, PAGE *current_page);
-GList* s_hierarchy_traversepages(TOPLEVEL *toplevel, gint flags);
-gint s_hierarchy_print_page(PAGE *p_current, void * data);
-PAGE *s_hierarchy_find_prev_page(GedaPageList *page_list, PAGE *current_page);
-PAGE *s_hierarchy_find_next_page(GedaPageList *page_list, PAGE *current_page);
-
-/* s_log.c */
-void s_log_init (const gchar *filename);
-void s_log_close (void);
-gchar *s_log_read (void);
-
-/* s_menu.c */
-int s_menu_return_num(void);
-SCM s_menu_return_entry(int index, char **menu_name);
-int s_menu_add_entry(char *new_menu, SCM menu_items);
-void s_menu_print(void);
-void s_menu_free(void);
-void s_menu_init(void);
-
-/* s_page.c */
-PAGE *s_page_new (TOPLEVEL *toplevel, const gchar *filename);
-void s_page_delete (TOPLEVEL *toplevel, PAGE *page);
-void s_page_delete_list(TOPLEVEL *toplevel);
-void s_page_goto (TOPLEVEL *toplevel, PAGE *p_new);
-PAGE *s_page_search (TOPLEVEL *toplevel, const gchar *filename);
-PAGE *s_page_search_by_page_id (GedaPageList *list, int pid);
-void s_page_print_all (TOPLEVEL *toplevel);
-gint s_page_save_all (TOPLEVEL *toplevel);
-gboolean s_page_check_changed (GedaPageList *list);
-void s_page_clear_changed (GedaPageList *list);
-void s_page_autosave_init(TOPLEVEL *toplevel);
-gint s_page_autosave (TOPLEVEL *toplevel);
-void s_page_append (PAGE *page, OBJECT *object);
-void s_page_append_list (PAGE *page, GList *obj_list);
-void s_page_remove (PAGE *page, OBJECT *object);
-void s_page_delete_objects (TOPLEVEL *toplevel, PAGE *page);
-const GList *s_page_objects (PAGE *page);
-GList *s_page_objects_in_region (TOPLEVEL *toplevel, PAGE *page, int min_x, int min_y, int max_x, int max_y);
-GList *s_page_objects_in_regions (TOPLEVEL *toplevel, PAGE *page, BOX *rects, int n_rects);
-
-/* s_papersizes.c */
-int s_papersizes_add_entry(char *new_papersize, int width, int height);
-void s_papersizes_print(void);
-int s_papersizes_uniq(char *name);
-void s_papersizes_free(void);
-void s_papersizes_init(void);
-char *s_papersizes_get(int counter);
-void s_papersizes_get_size(char *string, int *width, int *height);
-
-/* s_path.c */
-PATH *s_path_parse (const char *path_str);
-char *s_path_string_from_path (const PATH *path);
-
-/* s_project.c */
-TOPLEVEL *s_toplevel_new (void);
-void s_toplevel_delete (TOPLEVEL *toplevel);
-
-/* s_slib.c */
-int s_slib_add_entry(char *new_path);
-int s_slib_search_for_dirname(char *dir_name);
-char *s_slib_search_dirs(const char *basename);
-char *s_slib_search_lowlevel(const char *basename);
-char *s_slib_getbasename(const char *rawname);
-char *s_slib_search(const char *filename, int flag);
-char *s_slib_search_single(const char *filename);
-void s_slib_free(void);
-void s_slib_init(void);
-char *s_slib_getdir(int index);
-char *s_slib_getfiles(char *directory, int flag);
-void s_slib_print(void);
-int s_slib_uniq(char *path);
-void s_slib_print_dirs(void);
-
-/* s_stretch.c */
-GList *s_stretch_add(GList *list, OBJECT *object, CONN *connection, int whichone);
-GList *s_stretch_remove(GList *list, OBJECT *object);
-void s_stretch_print_all(GList *list);
-void s_stretch_destroy_all(GList *list);
-
-/* s_tile.c */
-void s_tile_init(TOPLEVEL *toplevel, PAGE *p_current);
-void s_tile_add_object(TOPLEVEL *toplevel, OBJECT *object);
-void s_tile_remove_object(OBJECT *object);
-void s_tile_update_object(TOPLEVEL *toplevel, OBJECT *object);
-GList *s_tile_get_objectlists(TOPLEVEL *toplevel, int world_x1, int world_y1, int world_x2, int world_y2);
-void s_tile_print(TOPLEVEL *toplevel);
-void s_tile_free_all(PAGE *p_current);
-
-/* s_undo.c */
-UNDO *s_undo_return_tail(UNDO *head);
-UNDO *s_undo_return_head(UNDO *tail);
-UNDO *s_undo_new_head(void);
-void s_undo_destroy_head(UNDO *u_head);
-UNDO *s_undo_add(UNDO *head, int type, char *filename, GList *object_list, int left, int top, int right, int bottom, int page_control, int up);
-void s_undo_print_all(UNDO *head);
-void s_undo_destroy_all(TOPLEVEL *toplevel, UNDO *head);
-void s_undo_remove(TOPLEVEL *toplevel, UNDO *head, UNDO *u_tos);
-void s_undo_remove_rest(TOPLEVEL *toplevel, UNDO *head);
-int s_undo_levels(UNDO *head);
-void s_undo_init(PAGE *p_current);
-void s_undo_free_all(TOPLEVEL *toplevel, PAGE *p_current);
-
-/* u_basic.c */
-char *u_basic_breakup_string(char *string, char delimiter, int count);
diff --git a/libgeda/include/struct.h b/libgeda/include/struct.h
deleted file mode 100644
index b29634a..0000000
--- a/libgeda/include/struct.h
+++ /dev/null
@@ -1,692 +0,0 @@
-/* gEDA - GPL Electronic Design Automation
- * libgeda - gEDA's Library
- * Copyright (C) 1998-2004 Ales V. Hvezda
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef STRUCT_H
-#define STRUCT_H
-
-#include <glib.h> /* Include needed to make GList work. */
-
-/* Wrappers around a new list mechanism */
-typedef struct _GedaList SELECTION;
-typedef struct _GedaList GedaPageList;
-
-/* gschem structures (gschem) */
-typedef struct st_complex COMPLEX;
-typedef struct st_line LINE;
-typedef struct st_path_section PATH_SECTION;
-typedef struct st_path PATH;
-typedef struct st_circle CIRCLE;
-typedef struct st_arc ARC;
-typedef struct st_box BOX;
-typedef struct st_picture PICTURE;
-typedef struct st_text TEXT;
-typedef struct st_point sPOINT;
-typedef struct st_transform TRANSFORM;
-typedef struct st_bezier BEZIER;
-
-typedef struct st_object OBJECT;
-typedef struct st_page PAGE;
-typedef struct st_toplevel TOPLEVEL;
-typedef struct st_color COLOR;
-typedef struct st_undo UNDO;
-typedef struct st_tile TILE;
-typedef struct st_bounds BOUNDS;
-
-typedef struct st_conn CONN;
-typedef struct st_bus_ripper BUS_RIPPER;
-
-/* Used when you move objects and you want the nets/pins to stretch */
-typedef struct st_stretch STRETCH;
-
-/* netlist structures (gnetlist) */
-typedef struct st_netlist NETLIST;
-typedef struct st_cpinlist CPINLIST;
-typedef struct st_net NET;
-
-/* sch check structures (gschcheck) */
-typedef struct st_schcheck SCHCHECK;
-typedef struct st_chkerrs CHKERRS;
-
-/* Managed text buffers */
-typedef struct _TextBuffer TextBuffer;
-
-/* Component library objects */
-typedef struct _CLibSource CLibSource;
-typedef struct _CLibSymbol CLibSymbol;
-
-/* Component library search modes */
-typedef enum { CLIB_EXACT=0, CLIB_GLOB } CLibSearchMode;
-
-/* f_open behaviour flags. See documentation for f_open_flags() in
- f_basic.c. */
-typedef enum { F_OPEN_RC = 1,
- F_OPEN_CHECK_BACKUP = 2,
- F_OPEN_RESTORE_CWD = 4,
-} FOpenFlags;
-
-/*! \brief line end style for an open line of an object */
-typedef enum {END_NONE, END_SQUARE, END_ROUND} OBJECT_END;
-
-/*! \brief line style of lines, rect, circles, arcs */
-typedef enum {TYPE_SOLID, TYPE_DOTTED, TYPE_DASHED, TYPE_CENTER, TYPE_PHANTOM, TYPE_ERASE} OBJECT_TYPE;
-
-/*! \brief fill style of objects like cirle, rect, path */
-typedef enum {FILLING_HOLLOW, FILLING_FILL, FILLING_MESH, FILLING_HATCH, FILLING_VOID} OBJECT_FILLING;
-
-struct st_line {
- int x[2];
- int y[2];
-};
-
-struct st_point {
- gint x;
- gint y;
-};
-
-#define LINE_END1 0
-#define LINE_END2 1
-
-typedef enum {
- PATH_MOVETO,
- PATH_MOVETO_OPEN,
- PATH_CURVETO,
- PATH_LINETO,
- PATH_END
-} PATH_CODE;
-
-struct st_path_section {
- PATH_CODE code;
- int x1;
- int y1;
- int x2;
- int y2;
- int x3;
- int y3;
-};
-
-struct st_path {
- PATH_SECTION *sections; /* Bezier path segments */
- int num_sections; /* Number with data */
- int num_sections_max; /* Number allocated */
-};
-
-struct st_arc {
- int x, y; /* world */
-
- int width;
- int height;
-
- int start_angle;
- int end_angle;
-};
-
-#define ARC_CENTER 0
-#define ARC_RADIUS 1
-#define ARC_START_ANGLE 2
-#define ARC_END_ANGLE 3
-
-struct st_bezier {
- int x[4];
- int y[4];
-};
-
-struct st_box {
- /* upper is considered the origin */
- int upper_x, upper_y; /* world */
- int lower_x, lower_y;
-
-};
-
-#define BOX_UPPER_LEFT 0
-#define BOX_LOWER_RIGHT 1
-#define BOX_UPPER_RIGHT 2
-#define BOX_LOWER_LEFT 3
-
-struct st_picture {
- GdkPixbuf *original_picture;
- GdkPixbuf *displayed_picture;
- gchar *file_content;
- gsize file_length;
-
- double ratio;
- char *filename;
- int angle;
- char mirrored;
- char embedded;
-
- /* upper is considered the origin */
- int upper_x, upper_y; /* world */
- int lower_x, lower_y;
-
-};
-
-#define PICTURE_UPPER_LEFT 0
-#define PICTURE_LOWER_RIGHT 1
-#define PICTURE_UPPER_RIGHT 2
-#define PICTURE_LOWER_LEFT 3
-
-
-struct st_text {
- int x, y; /* world origin */
-
- char *string; /* text stuff */
- char *disp_string;
- int length;
- int size;
- int alignment;
- int displayed_width;
- int displayed_height;
- int angle;
-
- GList *prim_objs;
-};
-
-struct st_complex {
- int x, y; /* world origin */
-
- int angle; /* orientation, only multiples
- * of 90 degrees allowed */
- /* in degrees */
- int mirror;
-
- GList *prim_objs; /* Primitive objects */
- /* objects which make up the */
- /* complex */
-};
-
-struct st_circle {
- int center_x, center_y; /* world */
- int radius;
-};
-
-#define CIRCLE_CENTER 0
-#define CIRCLE_RADIUS 1
-
-struct st_object {
- int type; /* Basic information */
- int sid;
- char *name;
-
- int w_top; /* Bounding box information */
- int w_left; /* in world coords */
- int w_right;
- int w_bottom;
- gboolean w_bounds_valid;
-
- COMPLEX *complex;
- LINE *line;
- CIRCLE *circle;
- ARC *arc;
- BOX *box;
- TEXT *text;
- PICTURE *picture;
- PATH *path;
-
- GList *tiles; /* tiles */
-
- GList *conn_list; /* List of connections */
- /* to and from this object */
-
- /* every graphical primitive have more or less the same options. */
- /* depending on its nature a primitive is concerned with one or more */
- /* of these fields. If not, value must be ignored. */
- OBJECT_END line_end;
- OBJECT_TYPE line_type;
- int line_width;
- int line_space;
- int line_length;
-
- OBJECT_FILLING fill_type;
- int fill_width;
- int fill_angle1, fill_pitch1;
- int fill_angle2, fill_pitch2;
-
- gboolean complex_embedded; /* is embedded component? */
- gchar *complex_basename; /* Component Library Symbol name */
- OBJECT *complex_parent; /* Complex parent object pointer */
- /* used only in complex head nodes */
-
- /* unused for now */
- void (*action_func)(); /* Execute function */
-
- void (*sel_func)(); /* Selected function */
- void (*draw_func)(); /* Draw function */
-
- int color; /* Which color */
- int saved_color; /* Saved color */
- int dont_redraw; /* Flag to skip redrawing */
- int selected; /* object selected flag */
- int locked_color; /* Locked color (used to save */
- /* the object's real color */
- /* when the object is locked) */
-
- /* controls which direction bus rippers go */
- /* it is either 0 for un-inited, */
- /* 1 for right, -1 for left (horizontal bus) */
- /* 1 for up, -1 for down (vertial bus) */
- int bus_ripper_direction; /* only valid on buses */
-
-
- int font_text_size; /* used only with fonts defs */
- GList *font_prim_objs; /* used only with fonts defs */
-
- int whichend; /* for pins only, either 0 or 1 */
- int pin_type; /* for pins only, either NET or BUS */
-
- GList *attribs; /* attribute stuff */
- int show_name_value;
- int visibility;
- OBJECT *attached_to; /* when object is an attribute */
- OBJECT *copied_to; /* used when copying attributes */
-
-};
-
-
-/*! \brief Structure for connections between OBJECTs
- *
- * The st_conn structure contains a single connection
- * to another object.
- * The connection system in s_conn.c uses this struct
- */
-struct st_conn {
- /*! \brief The "other" object connected to this one */
- OBJECT *other_object;
- /*! \brief type of connection. Always in reference to how the "other"
- object is connected to the current one */
- int type;
- /*! \brief x coord of the connection position */
- int x;
- /*! \brief y coord of the connection position */
- int y;
- /*! \brief which endpoint of the current object caused this connection */
- int whichone;
- /*! \brief which endpoint of the "other" object caused this connection */
- int other_whichone;
-};
-
-/* this structure is used in gschem to add rippers when drawing nets */
-/* it is never stored in any object, it is only temporary */
-struct st_bus_ripper
-{
- int x[2];
- int y[2];
-};
-
-struct st_stretch
-{
- OBJECT *object;
- CONN *connection;
-
- int whichone;
-};
-
-struct st_bounds {
- gint min_x;
- gint min_y;
- gint max_x;
- gint max_y;
-};
-
-/** A structure to store a 2D affine transform.
- *
- * The transforms get stored in a 3x3 matrix. Code assumes the bottom row to
- * remain constant at [0 0 1].
- */
-struct st_transform {
- gdouble m[2][3]; /* m[row][column] */
-};
-
-struct st_undo {
-
- /* one of these is used, depending on if you are doing in-memory */
- /* or file based undo state saving */
- char *filename;
- GList *object_list;
-
- /* either UNDO_ALL or UNDO_VIEWPORT_ONLY */
- int type;
-
- /* viewport information */
- int left, top, right, bottom;
-
- /* up and down the hierarchy */
- int up;
- /* used to control which pages are viewable when moving around */
- int page_control;
-
- UNDO *prev;
- UNDO *next;
-};
-
-
-/*! \brief structure to split a page into tiles
- *
- * This structure is used to track objects that are inside
- * a smaller TILE of o a page.
- * See s_tile.c for further informations.
- */
-struct st_tile {
- GList *objects;
-
- int top, left, right, bottom;
-};
-
-struct st_page {
-
- int pid;
-
- GList *_object_list;
- SELECTION *selection_list; /* new selection mechanism */
- GList *place_list;
- OBJECT *object_lastplace; /* the last found item */
- GList *stretch_list;
-
- char *page_filename;
- int CHANGED; /* changed flag */
- /*int zoom_factor; no longer used*/
- int left, right, top, bottom; /* World coord limits */
- double coord_aspectratio; /* Real worldcoords ratio (?) */
-
- float to_screen_x_constant;
- float to_screen_y_constant;
-
- float to_world_x_constant;
- float to_world_y_constant;
-
- TILE world_tiles[MAX_TILES_X][MAX_TILES_Y];
-
- /* Undo/Redo Stacks and pointers */
- /* needs to go into page mechanism actually */
- UNDO *undo_bottom;
- UNDO *undo_current;
- UNDO *undo_tos; /* Top Of Stack */
-
- /* up and down the hierarchy */
- /* this holds the pid of the parent page */
- int up;
- /* int down; not needed */
-
- /* used to control which pages are viewable when moving around */
- int page_control;
-
- /* backup variables */
- GTimeVal last_load_or_save_time;
- char saved_since_first_loaded;
- gint ops_since_last_backup;
- gchar do_autosave_backup;
-
- /* Function which asks the user wether to load a newer backup file */
- int (*load_newer_backup_func)();
-
-};
-
-/*! \brief different kind of snapping mechanisms used in TOPLEVEL */
-typedef enum {SNAP_OFF, SNAP_GRID, SNAP_RESNAP, SNAP_STATE_COUNT} SNAP_STATE;
-
-/*! \brief Type of callback function for calculating text bounds */
-typedef int(*RenderedBoundsFunc)(void *, OBJECT *, int *, int *, int *, int *);
-
-struct st_toplevel {
-
- /* have to decided on component list stuff */
- /* if it should go in here or not */
- /* leave outside for now */
-
- GList *RC_list; /* List of RC files which have been read in. */
-
- char *untitled_name; /* untitled sch basename */
- char *font_directory; /* path of the vector fonts */
- char *scheme_directory; /* path of the scheme scripts */
- char *bitmap_directory; /* path of the bitmaps */
-
- int init_left, init_right; /* Starting values for above */
- int init_top, init_bottom;
-
- int width, height; /* height, width of window */
-
- /*! \brief whether and how to snap to the current grid */
- SNAP_STATE snap;
-
- int override_color; /* used in doing selections */
-
- int last_ps_color; /* used in print code */
-
- int DONT_REDRAW; /* misc flags */
- int ADDING_SEL;
-
- /* page system */
- PAGE *page_current;
- GedaPageList *pages;
-
- /* show_hidden_text is used to control which text is hidden in gschem */
- int show_hidden_text;
-
- GList* major_changed_refdes; /* A list of all refdes's that have */
- /* major symbol version changes */
-
- /* backup variables */
- int auto_save_interval;
- gint auto_save_timeout;
-
- /* used by math funcs for the snapping */
- int snap_size;
-
- /* BLOCK SET IN GSCHEM, BUT USED IN LIBGEDA - NEEDS A RETHINK */
- int background_color;
- int override_net_color;
- int override_bus_color;
- int override_pin_color;
- int pin_style;
- int net_style;
- int bus_style;
- int line_style;
- /* END BLOCK - ALTHOUGH THERE ARE MORE CASES! */
-
- /* controls whether objects are clipped */
- int object_clipping;
-
- /* controls how text is printed (vector / PS font) */
- int text_output;
-
- /* either landscape or portrait */
- int print_orientation;
-
- /* either TRUE or FALSE (color or no color) */
- int image_color;
-
- /* either TRUE or FALSE (color or no color) */
- int print_color;
-
- /* color used color ouput for background */
- int print_color_background;
-
- /* setpagedevice orientation option enable (TRUE or FALSE) */
- int setpagedevice_orientation;
-
- /* setpagedevice pagesize option enable (TRUE or FALSE) */
- int setpagedevice_pagesize;
-
- /* The name of the prolog file to paste into the Postscript output */
- char *postscript_prolog;
-
- /* Use this as a scaling factor for the output font */
- float postscript_font_scale;
-
- /* controls if the net consolidation code is used */
- int net_consolidate;
-
- /*controls if attribute promotion happens */
- int attribute_promotion;
-
- /* controls if invisible attribs are promoted */
- int promote_invisible;
-
- /* controls if invisible attribs are kept and not deleted */
- int keep_invisible;
-
- /* either window or limits */
- int print_output_type;
-
- /* BUTT, ROUND, SQUARE caps */
- int print_output_capstyle;
-
- /* landscape printing only */
- int paper_width, paper_height;
-
- /* filename of the bus ripper component if set above */
- char *bus_ripper_symname;
-
- /* controls if the whole bounding box is used in the auto whichend code */
- int force_boundingbox;
-
- /* controls the threshold (in lines of text) when the multi-line text */
- /* output font is forced to vector */
- int print_vector_threshold;
-
- /* List of attributes to always promote */
- GList *always_promote_attributes;
-
- /* gnetlist specific */
- int net_naming_priority;
- int hierarchy_traversal;
- int hierarchy_uref_mangle;
- int hierarchy_netname_mangle;
- int hierarchy_netattrib_mangle;
- char *hierarchy_uref_separator;
- char *hierarchy_netname_separator;
- char *hierarchy_netattrib_separator;
- int hierarchy_netattrib_order;
- int hierarchy_netname_order;
- int hierarchy_uref_order;
- char *unnamed_netname;
- char *unnamed_busname;
-
- /* Callback function for calculating text bounds */
- RenderedBoundsFunc rendered_text_bounds_func;
- void *rendered_text_bounds_data;
-};
-
-/* structures below are for gnetlist */
-
-/* for every component in the object database */
-struct st_netlist {
-
- int nlid;
-
- char *component_uref;
-
- OBJECT *object_ptr;
-
- CPINLIST *cpins;
-
- char *hierarchy_tag;
- int composite_component;
-
- NETLIST *prev;
- NETLIST *next;
-};
-
-
-/* for every pin on a component */
-struct st_cpinlist {
- int plid;
- int type; /* PIN_TYPE_NET or PIN_TYPE_BUS */
-
- char *pin_number;
- char *net_name; /* this is resolved at very end */
- char *pin_label;
-
- NET *nets;
-
- CPINLIST *prev;
- CPINLIST *next;
-};
-
-/* the net run connected to a pin */
-struct st_net {
-
- int nid;
-
- int net_name_has_priority;
- char *net_name;
- char *pin_label;
-
- char *connected_to; /* new to replace above */
-
- NET *prev;
- NET *next;
-};
-
-/* By Jamil Khatib */
-/* typedef struct st_chkerrs CHKERRS; */
-
-/* Schem check struct */
-struct st_schcheck {
- int no_errors; /* No of Errors */
- int no_warnings; /* No of Warinings */
-
- CHKERRS * sheet_errs;
-
- CHKERRS *float_nets; /* Header of the list of floating nets */
- int net_errs; /* No of floating nets */
-
- OBJECT *float_pins; /* Header of List of floating pins*/
- int pin_errs; /* No of floating pins */
-
- int net_names; /* No of mismatched net names */
-};
-
-
-struct st_chkerrs{
-
- OBJECT * err_obj;
- CHKERRS * next;
-
-};
-
-
-
-struct st_color {
- guint8 r, g, b, a;
- gboolean enabled;
-};
-
-
-struct st_attrib_smob {
- TOPLEVEL *world; /* We need this when updating schematic */
- OBJECT *attribute;
-};
-
-struct st_object_smob {
- TOPLEVEL *world; /* We need this when updating schematic */
- OBJECT *object;
-};
-
-struct st_page_smob {
- TOPLEVEL *world; /* We need this when updating schematic */
- PAGE *page;
-};
-
-/* used by the rc loading mechanisms */
-typedef struct {
- int m_val;
- char *m_str;
-} vstbl_entry;
-
-#endif
diff --git a/libgeda/src/Makefile.am b/libgeda/src/Makefile.am
index 5b04947..7c4bf99 100644
--- a/libgeda/src/Makefile.am
+++ b/libgeda/src/Makefile.am
@@ -69,7 +69,7 @@ libgeda_la_SOURCES = \
s_undo.c \
u_basic.c
-INCLUDES = -I$(top_srcdir)/include @LIBGEDA_CFLAGS@
+INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir)/include/libgeda @LIBGEDA_CFLAGS@
DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
libgeda_la_LDFLAGS = @LIBTOOL_FLAGS@ @LIBGEDA_LDFLAGS@
LIBTOOL=@LIBTOOL@ --silent
_______________________________________________
geda-cvs mailing list
geda-cvs@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-cvs