libgeda: Enable use from C++ programs.
[geda-gaf/peter-b.git] / libgeda / include / libgeda / prototype.h
blob9e9f0bcdb19a5b757c118cfc798e3254dc3d3166
1 G_BEGIN_DECLS
3 /* a_basic.c */
4 const gchar *o_file_format_header();
5 gchar *o_save_buffer (TOPLEVEL *toplevel, const GList *object_list);
6 int o_save (TOPLEVEL *toplevel, const GList *object_list, const char *filename, GError **err);
7 GList *o_read_buffer(TOPLEVEL *toplevel, GList *object_list, char *buffer, const int size, const char *name);
8 GList *o_read(TOPLEVEL *toplevel, GList *object_list, char *filename, GError **err);
9 void o_scale(TOPLEVEL *toplevel, GList *list, int x_scale, int y_scale);
11 /* f_basic.c */
12 gchar *f_get_autosave_filename (const gchar *filename);
13 gboolean f_has_active_autosave (const gchar *filename, GError **err);
14 int f_open(TOPLEVEL *toplevel, PAGE *page, const gchar *filename, GError **err);
15 int f_open_flags(TOPLEVEL *toplevel, PAGE *page, const gchar *filename,
16 const gint flags, GError **err);
17 void f_close(TOPLEVEL *toplevel);
18 int f_save(TOPLEVEL *toplevel, PAGE *page, const char *filename, GError **error);
19 gchar *f_normalize_filename (const gchar *filename, GError **error);
20 char *follow_symlinks (const gchar *filename, GError **error);
22 /* f_print.c */
23 int f_print_file (TOPLEVEL *toplevel, PAGE *page, const char *filename);
24 int f_print_command (TOPLEVEL *toplevel, PAGE *page, const char *command);
25 int f_print_stream(TOPLEVEL *toplevel, PAGE *page, FILE *fp);
26 void f_print_set_type(TOPLEVEL *toplevel, int type);
28 /* g_basic.c */
29 SCM g_scm_eval_protected (SCM exp, SCM module_or_state);
30 SCM g_scm_eval_string_protected (SCM str);
31 SCM g_scm_c_eval_string_protected (const gchar *str);
32 gboolean g_read_file(TOPLEVEL *toplevel, const gchar *filename, GError **err);
34 /* g_rc.c */
35 SCM g_rc_mode_general(SCM scmmode, const char *rc_name, int *mode_var,
36 const vstbl_entry *table, int table_size);
37 gboolean g_rc_parse_system (TOPLEVEL *toplevel, const gchar *rcname, GError **err);
38 gboolean g_rc_parse_user (TOPLEVEL *toplevel, const gchar *rcname, GError **err);
39 gboolean g_rc_parse_local (TOPLEVEL *toplevel, const gchar *rcname, const gchar *path, GError **err);
40 gboolean g_rc_parse_file (TOPLEVEL *toplevel, const gchar *rcfile, GError **err);
41 void g_rc_parse(TOPLEVEL *toplevel, const gchar* pname, const gchar* rcname, const gchar* rcfile);
42 void g_rc_parse_handler (TOPLEVEL *toplevel, const gchar *rcname, const gchar *rcfile, ConfigParseErrorFunc handler, void *user_data);
44 /* i_vars.c */
45 void i_vars_libgeda_set(TOPLEVEL *toplevel);
46 void i_vars_libgeda_freenames();
48 /* libgeda.c */
49 void libgeda_init(void);
51 /* m_basic.c */
52 void set_window(TOPLEVEL *toplevel, PAGE *page, int xmin, int xmax, int ymin, int ymax);
53 void rotate_point(int x, int y, int angle, int *newx, int *newy);
54 void rotate_point_90(int x, int y, int angle, int *newx, int *newy);
55 void PAPERSIZEtoWORLD(int width, int height, int border, int *right, int *bottom);
57 /* m_hatch.c */
58 void m_hatch_box(BOX *box, gint angle, gint pitch, GArray *lines);
59 void m_hatch_circle(CIRCLE *circle, gint angle, gint pitch, GArray *lines);
60 void m_hatch_path(PATH *path, gint angle, gint pitch, GArray *lines);
62 /* m_polygon.c */
63 void m_polygon_append_bezier(GArray *points, BEZIER *bezier, int segments);
64 void m_polygon_append_point(GArray *points, int x, int y);
67 /* o_arc_basic.c */
68 OBJECT *o_arc_new(TOPLEVEL *toplevel, char type, int color, int x, int y, int radius, int start_angle, int end_angle);
69 OBJECT *o_arc_copy(TOPLEVEL *toplevel, OBJECT *o_current);
70 void o_arc_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
71 void o_arc_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
72 void o_arc_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
73 void o_arc_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
75 /* o_attrib.c */
76 void o_attrib_add(TOPLEVEL *toplevel, OBJECT *object, OBJECT *item);
77 gboolean o_attrib_is_attached (TOPLEVEL *toplevel, OBJECT *attrib, OBJECT *object);
78 void o_attrib_attach(TOPLEVEL *toplevel, OBJECT *attrib, OBJECT *object, int set_color);
79 void o_attrib_attach_list(TOPLEVEL *toplevel, GList *attr_list, OBJECT *object, int set_color);
80 void o_attrib_detach_all(TOPLEVEL *toplevel, OBJECT *object);
81 void o_attrib_print(GList *attributes);
82 void o_attrib_remove(TOPLEVEL *toplevel, GList **list, OBJECT *remove);
83 gboolean o_attrib_string_get_name_value (const gchar *string, gchar **name_ptr, gchar **value_ptr);
84 gboolean o_attrib_get_name_value (OBJECT *attrib, gchar **name_ptr, gchar **value_ptr);
85 GList *o_attrib_find_floating_attribs (const GList *list);
86 char *o_attrib_search_floating_attribs_by_name (const GList *list, char *name, int counter);
87 char *o_attrib_search_attached_attribs_by_name (OBJECT *object, char *name, int counter);
88 char *o_attrib_search_inherited_attribs_by_name (OBJECT *object, char *name, int counter);
89 char *o_attrib_search_object_attribs_by_name (OBJECT *object, char *name, int counter);
90 GList *o_attrib_return_attribs(OBJECT *object);
91 int o_attrib_is_inherited(OBJECT *attrib);
93 /* o_basic.c */
94 int inside_region(int xmin, int ymin, int xmax, int ymax, int x, int y);
95 void o_recalc_single_object(TOPLEVEL *toplevel, OBJECT *o_current);
96 void o_recalc_object_glist(TOPLEVEL *toplevel, GList *object_glist);
97 void o_set_line_options(TOPLEVEL *toplevel, OBJECT *o_current, OBJECT_END end, OBJECT_TYPE type, int width, int length, int space);
98 gboolean o_get_line_options(OBJECT *object, OBJECT_END *end, OBJECT_TYPE *type, int *width, int *length, int *space);
99 void o_set_fill_options(TOPLEVEL *toplevel, OBJECT *o_current, OBJECT_FILLING type, int width, int pitch1, int angle1, int pitch2, int angle2);
100 gboolean o_get_fill_options(OBJECT *object, OBJECT_FILLING *type, int *width, int *pitch1, int *angle1, int *pitch2, int *angle2);
101 gboolean o_get_position(TOPLEVEL *toplevel, gint *x, gint *y, OBJECT *object);
102 void o_translate_world (TOPLEVEL *toplevel, gint dx, gint dy, OBJECT *object);
103 void o_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
104 void o_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
105 double o_shortest_distance(OBJECT *object, int x, int y);
106 void o_set_color(TOPLEVEL *toplevel, OBJECT *object, int color);
107 PAGE *o_get_page (TOPLEVEL *toplevel, OBJECT *object);
108 OBJECT *o_get_parent (TOPLEVEL *toplevel, OBJECT *object);
109 void o_add_change_notify(TOPLEVEL *toplevel, ChangeNotifyFunc pre_change_func, ChangeNotifyFunc change_func, void *user_data);
110 void o_remove_change_notify(TOPLEVEL *toplevel, ChangeNotifyFunc pre_change_func, ChangeNotifyFunc change_func, void *user_data);
111 gboolean o_is_visible (TOPLEVEL *toplevel, OBJECT *object);
112 void o_set_visibility (TOPLEVEL *toplevel, OBJECT *object, int visibility);
114 /* o_box_basic.c */
115 OBJECT *o_box_new(TOPLEVEL *toplevel, char type, int color, int x1, int y1, int x2, int y2);
116 OBJECT *o_box_copy(TOPLEVEL *toplevel, OBJECT *o_current);
117 void o_box_modify_all (TOPLEVEL *toplevel, OBJECT *object, int x1, int y1, int x2, int y2);
118 void o_box_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
119 void o_box_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
120 void o_box_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
121 void o_box_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
123 /* o_bus_basic.c */
124 OBJECT *o_bus_new(TOPLEVEL *toplevel, char type, int color, int x1, int y1, int x2, int y2, int bus_ripper_direction);
125 void o_bus_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
126 OBJECT *o_bus_copy(TOPLEVEL *toplevel, OBJECT *o_current);
127 void o_bus_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
128 void o_bus_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
129 int o_bus_orientation(OBJECT *object);
130 void o_bus_consolidate(TOPLEVEL *toplevel);
131 void o_bus_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
133 /* o_circle_basic.c */
134 int dist(int x1, int y1, int x2, int y2);
135 OBJECT *o_circle_new(TOPLEVEL *toplevel, char type, int color, int x, int y, int radius);
136 OBJECT *o_circle_copy(TOPLEVEL *toplevel, OBJECT *o_current);
137 void o_circle_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
138 void o_circle_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
139 void o_circle_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
140 void o_circle_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
142 /* o_complex_basic.c */
143 int world_get_single_object_bounds(TOPLEVEL *toplevel, OBJECT *o_current,
144 int *rleft, int *rtop,
145 int *rright, int *rbottom);
146 int world_get_object_glist_bounds(TOPLEVEL *toplevel, const GList *o_list,
147 int *left, int *top,
148 int *right, int *bottom);
149 int o_complex_is_embedded(OBJECT *o_current);
150 GList *o_complex_promote_attribs (TOPLEVEL *toplevel, OBJECT *object);
151 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);
152 OBJECT *o_complex_new_embedded(TOPLEVEL *toplevel, char type, int color, int x, int y, int angle, int mirror, const gchar *basename, int selectable);
153 void o_complex_set_filename(TOPLEVEL *toplevel, const char *basename);
154 void o_complex_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
155 OBJECT *o_complex_copy(TOPLEVEL *toplevel, OBJECT *o_current);
156 void o_complex_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
157 void o_complex_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
158 OBJECT *o_complex_find_pin_by_attribute(OBJECT *object, char *name, char *wanted_value);
159 void o_complex_check_symversion(TOPLEVEL* toplevel, OBJECT* object);
161 /* o_embed.c */
162 void o_embed(TOPLEVEL *toplevel, OBJECT *o_current);
163 void o_unembed(TOPLEVEL *toplevel, OBJECT *o_current);
165 /* o_line_basic.c */
166 OBJECT *o_line_new(TOPLEVEL *toplevel, char type, int color, int x1, int y1, int x2, int y2);
167 OBJECT *o_line_copy(TOPLEVEL *toplevel, OBJECT *o_current);
168 void o_line_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
169 void o_line_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
170 void o_line_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
171 void o_line_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
172 void o_line_scale_world(TOPLEVEL *toplevel, int x_scale, int y_scale, OBJECT *object);
173 double o_line_length(OBJECT *object);
175 /* o_list.c */
176 OBJECT *o_object_copy(TOPLEVEL *toplevel, OBJECT *selected);
177 GList *o_glist_copy_all(TOPLEVEL *toplevel, const GList *src_list, GList *dest_list);
178 void o_glist_translate_world(TOPLEVEL *toplevel, int dx, int dy, const GList *list);
179 void o_glist_rotate_world(TOPLEVEL *toplevel, int x, int y, int angle, const GList *list);
180 void o_glist_mirror_world(TOPLEVEL *toplevel, int x, int y, const GList *list);
181 void o_glist_set_color(TOPLEVEL *toplevel, const GList *list, int color);
183 /* o_net_basic.c */
184 OBJECT *o_net_new(TOPLEVEL *toplevel, char type, int color, int x1, int y1, int x2, int y2);
185 void o_net_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
186 OBJECT *o_net_copy(TOPLEVEL *toplevel, OBJECT *o_current);
187 void o_net_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
188 void o_net_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
189 int o_net_orientation(OBJECT *object);
190 void o_net_consolidate(TOPLEVEL *toplevel, PAGE *page);
191 void o_net_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
193 /* o_path_basic.c */
194 OBJECT *o_path_new(TOPLEVEL *toplevel, char type, int color, const char *path_string);
195 OBJECT *o_path_copy(TOPLEVEL *toplevel, OBJECT *o_current);
196 void o_path_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
197 void o_path_translate_world(TOPLEVEL *toplevel, int x, int y, OBJECT *object);
198 void o_path_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
199 void o_path_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
201 /* o_picture.c */
202 OBJECT *o_picture_new(TOPLEVEL *toplevel,
203 const gchar *file_content, gsize file_length,
204 const gchar *filename, char type,
205 int x1, int y1, int x2, int y2, int angle, int mirrored,
206 int embedded) G_GNUC_WARN_UNUSED_RESULT;
207 double o_picture_get_ratio (TOPLEVEL *toplevel, OBJECT *object);
208 void o_picture_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
209 void o_picture_modify_all (TOPLEVEL *toplevel, OBJECT *object, int x1, int y1, int x2, int y2);
210 void o_picture_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle,OBJECT *object);
211 void o_picture_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
212 void o_picture_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
213 OBJECT *o_picture_copy(TOPLEVEL *toplevel, OBJECT *o_current) G_GNUC_WARN_UNUSED_RESULT;
214 gboolean o_picture_is_embedded (TOPLEVEL *toplevel, OBJECT *object);
215 GdkPixbuf *o_picture_get_pixbuf (TOPLEVEL *toplevel, OBJECT *object) G_GNUC_WARN_UNUSED_RESULT;
216 const char *o_picture_get_data (TOPLEVEL *toplevel, OBJECT *object,
217 size_t *len);
218 gboolean o_picture_set_from_buffer (TOPLEVEL *toplevel, OBJECT *object,
219 const gchar *filename, const gchar *data,
220 size_t len, GError **error);
221 gboolean o_picture_set_from_file (TOPLEVEL *toplevel, OBJECT *object,
222 const gchar *filename, GError **error);
223 const gchar *o_picture_get_filename (TOPLEVEL *toplevel, OBJECT *object);
224 GdkPixbuf *o_picture_get_fallback_pixbuf (TOPLEVEL *toplevel) G_GNUC_WARN_UNUSED_RESULT;
226 /* o_pin_basic.c */
227 OBJECT *o_pin_new(TOPLEVEL *toplevel, char type, int color, int x1, int y1, int x2, int y2, int pin_type, int whichend);
228 void o_pin_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
229 OBJECT *o_pin_copy(TOPLEVEL *toplevel, OBJECT *o_current);
230 void o_pin_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
231 void o_pin_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
232 void o_pin_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
233 void o_pin_update_whichend(TOPLEVEL *toplevel, GList *object_list, int num_pins);
234 void o_pin_set_type(TOPLEVEL *toplevel, OBJECT *o_current, int pin_type);
235 /* o_selection.c */
236 SELECTION *o_selection_new( void );
237 void o_selection_add(TOPLEVEL *toplevel, SELECTION *selection, OBJECT *o_selected);
238 void o_selection_print_all(const SELECTION *selection);
239 void o_selection_remove(TOPLEVEL *toplevel, SELECTION *selection, OBJECT *o_selected);
240 void o_selection_select(TOPLEVEL *toplevel, OBJECT *object) G_GNUC_DEPRECATED;
241 void o_selection_unselect(TOPLEVEL *toplevel, OBJECT *object) G_GNUC_DEPRECATED;
243 /* o_text_basic.c */
244 int o_text_num_lines(const char *string);
245 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);
246 void o_text_recreate(TOPLEVEL *toplevel, OBJECT *o_current);
247 void o_text_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *o_current);
248 OBJECT *o_text_copy(TOPLEVEL *toplevel, OBJECT *o_current);
249 void o_text_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
250 void o_text_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
251 void o_text_set_string(TOPLEVEL *toplevel, OBJECT *obj, const gchar *new_string);
252 const gchar *o_text_get_string(TOPLEVEL *toplevel, OBJECT *obj);
253 void o_text_set_rendered_bounds_func (TOPLEVEL *toplevel, RenderedBoundsFunc func, void *user_data);
254 double o_text_get_font_size_in_points(TOPLEVEL *toplevel, OBJECT *object);
256 /* s_attrib.c */
257 int s_attrib_add_entry(char *new_attrib);
258 void s_attrib_print(void);
259 int s_attrib_uniq(char *name);
260 void s_attrib_free(void);
261 void s_attrib_init(void);
262 char *s_attrib_get(int counter);
264 /* s_basic.c */
265 OBJECT *s_basic_init_object(OBJECT *new_node, int type, char const *name);
266 OBJECT *s_basic_new_object(int type, char const *prefix);
267 void print_struct_forw(GList *list);
268 void print_struct(OBJECT *ptr);
269 void s_delete_object(TOPLEVEL *toplevel, OBJECT *o_current);
270 void s_delete_object_glist(TOPLEVEL *toplevel, GList *list);
271 void s_object_weak_ref (OBJECT *object, void (*notify_func)(void *, void *), void *user_data);
272 void s_object_weak_unref (OBJECT *object, void (*notify_func)(void *, void *), void *user_data);
273 void s_object_add_weak_ptr (OBJECT *object, void *weak_pointer_loc);
274 void s_object_remove_weak_ptr (OBJECT *object, void *weak_pointer_loc);
275 char *remove_nl(char *string);
276 char *remove_last_nl(char *string);
277 gchar *s_expand_env_variables (const gchar *string);
278 const char *s_path_sys_data ();
279 const char *s_path_sys_config ();
280 const char *s_path_user_config ();
282 /* s_clib.c */
283 void s_clib_free (void);
284 GList *s_clib_get_sources (const gboolean sorted);
285 const CLibSource *s_clib_get_source_by_name (const gchar *name);
286 void s_clib_refresh ();
287 const CLibSource *s_clib_add_directory (const gchar *directory,
288 const gchar *name);
289 const CLibSource *s_clib_add_command (const gchar *list_cmd,
290 const gchar *get_cmd,
291 const gchar *name);
292 const CLibSource *s_clib_add_scm (SCM listfunc, SCM getfunc,
293 const gchar *name);
294 const gchar *s_clib_source_get_name (const CLibSource *source);
295 GList *s_clib_source_get_symbols (const CLibSource *source);
296 const gchar *s_clib_symbol_get_name (const CLibSymbol *symbol);
297 gchar *s_clib_symbol_get_filename (const CLibSymbol *symbol);
298 const CLibSource *s_clib_symbol_get_source (const CLibSymbol *symbol);
299 gchar *s_clib_symbol_get_data (const CLibSymbol *symbol);
300 GList *s_clib_search (const gchar *pattern, const CLibSearchMode mode);
301 void s_clib_flush_search_cache ();
302 void s_clib_flush_symbol_cache ();
303 void s_clib_symbol_invalidate_data (const CLibSymbol *symbol);
304 const CLibSymbol *s_clib_get_symbol_by_name (const gchar *name);
305 gchar *s_clib_symbol_get_data_by_name (const gchar *name);
306 GList *s_toplevel_get_symbols (const TOPLEVEL *toplevel);
308 /* s_color.c */
309 void s_color_map_defaults (COLOR *map);
310 gboolean s_color_rgba_decode (const gchar *rgba,
311 guchar *r, guchar *g, guchar *b, guchar *a);
312 gchar *s_color_rgba_encode (guint8 r, guint8 g, guint8 b, guint8 a);
313 SCM s_color_map_to_scm (const COLOR *map);
314 void s_color_map_from_scm (COLOR *map, SCM lst, const char *scheme_proc_name);
316 /* s_conn.c */
317 void s_conn_remove_object(TOPLEVEL *toplevel, OBJECT *to_remove);
318 void s_conn_update_object(TOPLEVEL *toplevel, OBJECT *object);
319 int s_conn_net_search(OBJECT* new_net, int whichone, GList * conn_list);
320 GList *s_conn_return_others(GList *input_list, OBJECT *object);
322 /* s_cue.c */
323 void s_cue_postscript_fillbox(TOPLEVEL *toplevel, FILE *fp, int x, int y);
324 void s_cue_postscript_junction (TOPLEVEL *toplevel, FILE *fp, int x, int y, int bus_involved);
325 void s_cue_output_all(TOPLEVEL *toplevel, const GList *obj_list, FILE *fp, int type);
326 void s_cue_output_lowlevel(TOPLEVEL *toplevel, OBJECT *object, int whichone, FILE *fp, int output_type);
327 void s_cue_output_lowlevel_midpoints(TOPLEVEL *toplevel, OBJECT *object, FILE *fp, int output_type);
328 void s_cue_output_single(TOPLEVEL *toplevel, OBJECT *object, FILE *fp, int type);
330 /* s_hierarchy.c */
331 PAGE *s_hierarchy_down_schematic_single(TOPLEVEL *toplevel, const gchar *filename, PAGE *parent, int page_control, int flag);
332 void s_hierarchy_down_symbol (TOPLEVEL *toplevel, const CLibSymbol *symbol, PAGE *parent);
333 PAGE *s_hierarchy_find_up_page(GedaPageList *page_list, PAGE *current_page);
334 GList* s_hierarchy_traversepages(TOPLEVEL *toplevel, PAGE *p_current, gint flags);
335 gint s_hierarchy_print_page(PAGE *p_current, void * data);
336 PAGE *s_hierarchy_find_prev_page(GedaPageList *page_list, PAGE *current_page);
337 PAGE *s_hierarchy_find_next_page(GedaPageList *page_list, PAGE *current_page);
339 /* s_log.c */
340 void s_log_init (const gchar *filename);
341 void s_log_close (void);
342 gchar *s_log_read (void);
344 /* s_menu.c */
345 int s_menu_return_num(void);
346 SCM s_menu_return_entry(int index, char **menu_name);
347 int s_menu_add_entry(char *new_menu, SCM menu_items);
348 void s_menu_print(void);
349 void s_menu_free(void);
350 void s_menu_init(void);
352 /* s_page.c */
353 PAGE *s_page_new (TOPLEVEL *toplevel, const gchar *filename);
354 void s_page_delete (TOPLEVEL *toplevel, PAGE *page);
355 void s_page_delete_list(TOPLEVEL *toplevel);
356 void s_page_weak_ref (PAGE *page, void (*notify_func)(void *, void *), void *user_data);
357 void s_page_weak_unref (PAGE *page, void (*notify_func)(void *, void *), void *user_data);
358 void s_page_add_weak_ptr (PAGE *page, void *weak_pointer_loc);
359 void s_page_remove_weak_ptr (PAGE *page, void *weak_pointer_loc);
360 void s_page_goto (TOPLEVEL *toplevel, PAGE *p_new);
361 PAGE *s_page_search (TOPLEVEL *toplevel, const gchar *filename);
362 PAGE *s_page_search_by_page_id (GedaPageList *list, int pid);
363 void s_page_print_all (TOPLEVEL *toplevel);
364 gint s_page_save_all (TOPLEVEL *toplevel);
365 gboolean s_page_check_changed (GedaPageList *list);
366 void s_page_clear_changed (GedaPageList *list);
367 void s_page_autosave_init(TOPLEVEL *toplevel);
368 gint s_page_autosave (TOPLEVEL *toplevel);
369 void s_page_append (TOPLEVEL *toplevel, PAGE *page, OBJECT *object);
370 void s_page_append_list (TOPLEVEL *toplevel, PAGE *page, GList *obj_list);
371 void s_page_remove (TOPLEVEL *toplevel, PAGE *page, OBJECT *object);
372 void s_page_replace (TOPLEVEL *toplevel, PAGE *page, OBJECT *object1, OBJECT *object2);
373 void s_page_delete_objects (TOPLEVEL *toplevel, PAGE *page);
374 const GList *s_page_objects (PAGE *page);
375 GList *s_page_objects_in_region (TOPLEVEL *toplevel, PAGE *page, int min_x, int min_y, int max_x, int max_y);
376 GList *s_page_objects_in_regions (TOPLEVEL *toplevel, PAGE *page, BOX *rects, int n_rects);
378 /* s_papersizes.c */
379 int s_papersizes_add_entry(char *new_papersize, int width, int height);
380 void s_papersizes_print(void);
381 int s_papersizes_uniq(char *name);
382 void s_papersizes_free(void);
383 void s_papersizes_init(void);
384 char *s_papersizes_get(int counter);
385 void s_papersizes_get_size(char *string, int *width, int *height);
387 /* s_path.c */
388 PATH *s_path_parse (const char *path_str);
389 char *s_path_string_from_path (const PATH *path);
391 /* s_project.c */
392 TOPLEVEL *s_toplevel_new (void);
393 void s_toplevel_delete (TOPLEVEL *toplevel);
394 void s_toplevel_weak_ref (TOPLEVEL *toplevel, void (*notify_func)(void *, void *), void *user_data);
395 void s_toplevel_weak_unref (TOPLEVEL *toplevel, void (*notify_func)(void *, void *), void *user_data);
396 void s_toplevel_add_weak_ptr (TOPLEVEL *toplevel, void *weak_pointer_loc);
397 void s_toplevel_remove_weak_ptr (TOPLEVEL *toplevel, void *weak_pointer_loc);
399 /* s_slib.c */
400 int s_slib_add_entry(char *new_path);
401 int s_slib_search_for_dirname(char *dir_name);
402 char *s_slib_search_dirs(const char *basename);
403 char *s_slib_search_lowlevel(const char *basename);
404 char *s_slib_getbasename(const char *rawname);
405 char *s_slib_search(const char *filename, int flag);
406 char *s_slib_search_single(const char *filename);
407 void s_slib_free(void);
408 void s_slib_init(void);
409 char *s_slib_getdir(int index);
410 char *s_slib_getfiles(char *directory, int flag);
411 void s_slib_print(void);
412 int s_slib_uniq(char *path);
413 void s_slib_print_dirs(void);
415 /* s_slot.c */
416 char *s_slot_search_slot(OBJECT *object, OBJECT **return_found);
417 void s_slot_update_object(TOPLEVEL *toplevel, OBJECT *object);
419 /* s_tile.c */
420 void s_tile_update_object(TOPLEVEL *toplevel, OBJECT *object);
421 GList *s_tile_get_objectlists(TOPLEVEL *toplevel, PAGE *p_current, int world_x1, int world_y1, int world_x2, int world_y2);
423 /* s_undo.c */
424 UNDO *s_undo_return_tail(UNDO *head);
425 UNDO *s_undo_return_head(UNDO *tail);
426 UNDO *s_undo_new_head(void);
427 void s_undo_destroy_head(UNDO *u_head);
428 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);
429 void s_undo_print_all(UNDO *head);
430 void s_undo_destroy_all(TOPLEVEL *toplevel, UNDO *head);
431 void s_undo_remove(TOPLEVEL *toplevel, UNDO *head, UNDO *u_tos);
432 void s_undo_remove_rest(TOPLEVEL *toplevel, UNDO *head);
433 int s_undo_levels(UNDO *head);
434 void s_undo_init(PAGE *p_current);
435 void s_undo_free_all(TOPLEVEL *toplevel, PAGE *p_current);
437 /* u_basic.c */
438 char *u_basic_breakup_string(char *string, char delimiter, int count);
440 G_END_DECLS