Updated and correct the gEDA/gaf man pages a little bit.
[geda-gaf.git] / libgeda / include / prototype.h
bloba4234a1a65e582709a7c85e8b81b6ee9035888a3
2 /* a_basic.c */
3 const gchar *o_file_format_header();
4 gchar *o_save_buffer(TOPLEVEL *toplevel);
5 int o_save(TOPLEVEL *toplevel, const char *filename);
6 OBJECT *o_read_buffer(TOPLEVEL *toplevel, OBJECT *object_list, char *buffer, const int size, const char *name);
7 OBJECT *o_read(TOPLEVEL *toplevel, OBJECT *object_list, char *filename, GError **err);
8 void o_scale(TOPLEVEL *toplevel, OBJECT *list, int x_scale, int y_scale);
10 /* f_basic.c */
11 gchar *f_get_autosave_filename (const gchar *filename);
12 gboolean f_has_active_autosave (const gchar *filename, GError **err);
13 int f_open(TOPLEVEL *toplevel, const gchar *filename, GError **err);
14 int f_open_flags(TOPLEVEL *toplevel, const gchar *filename,
15 const gint flags, GError **err);
16 void f_close(TOPLEVEL *toplevel);
17 void f_save_close(TOPLEVEL *toplevel, char *filename);
18 int f_save(TOPLEVEL *toplevel, const char *filename);
19 char* f_normalize_filename(const gchar *filename);
20 char *follow_symlinks (const gchar *filename, GError **error);
22 /* f_print.c */
23 int f_print_file (TOPLEVEL *toplevel, const char *filename);
24 int f_print_command (TOPLEVEL *toplevel, const char *command);
25 int f_print_stream(TOPLEVEL *toplevel, 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 int g_read_file(const gchar *filename);
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 gint g_rc_parse_general(TOPLEVEL *toplevel,
38 const gchar *fname,
39 const gchar *ok_msg, const gchar *err_msg);
40 const char *g_rc_parse_path(void);
41 gint g_rc_parse_system_rc(TOPLEVEL *toplevel, const gchar *rcname);
42 gint g_rc_parse_home_rc(TOPLEVEL *toplevel, const gchar *rcname);
43 gint g_rc_parse_local_rc(TOPLEVEL *toplevel, const gchar *rcname);
44 void g_rc_parse(TOPLEVEL *toplevel, const gchar* rcname,
45 const gchar* specified_rc_filename);
46 gint g_rc_parse_specified_rc(TOPLEVEL *toplevel, const gchar *rcfilename);
48 /* g_smob.c */
49 SCM g_make_attrib_smob(TOPLEVEL *curr_w, ATTRIB *curr_attr);
50 SCM g_set_attrib_value_internal(SCM attrib_smob, SCM scm_value, TOPLEVEL **world, OBJECT **o_attrib, char *new_string[]);
51 gboolean g_get_data_from_object_smob(SCM object_smob, TOPLEVEL **toplevel,
52 OBJECT **object);
53 SCM g_make_object_smob(TOPLEVEL *curr_w, OBJECT *object);
54 SCM g_get_object_attributes(SCM object_smob);
55 SCM g_make_page_smob(TOPLEVEL *curr_w, PAGE *page);
56 gboolean g_get_data_from_page_smob(SCM object_smob, TOPLEVEL **toplevel,
57 PAGE **object);
59 /* i_vars.c */
60 void i_vars_libgeda_set(TOPLEVEL *toplevel);
61 void i_vars_setnames(TOPLEVEL *toplevel);
62 void i_vars_freenames();
64 /* gdk-pixbuf-hacks.c */
65 GdkPixbuf *gdk_pixbuf_rotate (GdkPixbuf *pixbuf, guint angle);
66 void gdk_pixbuf_add (GdkPixbuf *pixbuf, int offset_x, int offset_y, GdkPixbuf *pixbuf_to_add);
67 GdkPixbuf *gdk_pixbuf_mirror_flip(GdkPixbuf *src, gint mirror, gint flip);
69 /* libgeda.c */
70 void libgeda_init(void);
72 /* m_basic.c */
73 int mil_x(TOPLEVEL *toplevel, int val);
74 int mil_y(TOPLEVEL *toplevel, int val);
75 int pix_x(TOPLEVEL *toplevel, int val);
76 int pix_y(TOPLEVEL *toplevel, int val);
77 void WORLDtoSCREEN(TOPLEVEL *toplevel, int x, int y, int *mil_x, int *mil_y);
78 void SCREENtoWORLD(TOPLEVEL *toplevel, int mx, int my, int *x, int *y);
79 int snap_grid(TOPLEVEL *toplevel, int input);
80 int SCREENabs(TOPLEVEL *toplevel, int val);
81 int WORLDabs(TOPLEVEL *toplevel, int val);
82 void set_window(TOPLEVEL *toplevel, PAGE *page, int xmin, int xmax, int ymin, int ymax);
83 int fix_x(TOPLEVEL *toplevel, int in);
84 int fix_y(TOPLEVEL *toplevel, int in);
85 int on_snap(int val);
86 int SCREENclip_change(TOPLEVEL *toplevel, int *x1, int *y1, int *x2, int *y2);
87 int clip_nochange(TOPLEVEL *toplevel, int x1, int y1, int x2, int y2);
88 int visible(TOPLEVEL *toplevel, int wleft, int wtop, int wright, int wbottom);
89 void rotate_point(int x, int y, int angle, int *newx, int *newy);
90 void rotate_point_90(int x, int y, int angle, int *newx, int *newy);
91 void PAPERSIZEtoWORLD(int width, int height, int border, int *right, int *bottom);
92 double round_5_2_1(double unrounded);
94 /* o_arc_basic.c */
95 OBJECT *o_arc_add(TOPLEVEL *toplevel, OBJECT *object_list, char type, int color, int x, int y, int radius, int start_angle, int end_angle);
96 OBJECT *o_arc_copy(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current);
97 void o_arc_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
98 void o_arc_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
99 void o_arc_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
100 void o_arc_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
101 void o_arc_recalc(TOPLEVEL *toplevel, OBJECT *o_current);
102 void world_get_arc_bounds(TOPLEVEL *toplevel, OBJECT *object, int *left, int *top, int *right, int *bottom);
104 /* o_attrib.c */
105 ATTRIB *o_attrib_search(GList *list, OBJECT *item);
106 void o_attrib_add(TOPLEVEL *toplevel, OBJECT *object, OBJECT *item);
107 void o_attrib_free(TOPLEVEL *toplevel, ATTRIB *current);
108 void o_attrib_attach(TOPLEVEL *toplevel, OBJECT *parent_list, OBJECT *text_object, OBJECT *object);
109 void o_attrib_free_all(TOPLEVEL *toplevel, GList *list);
110 void o_attrib_print(GList *attributes);
111 void o_attrib_remove(GList **list, OBJECT *remove);
112 int o_attrib_get_name_value(char *string, char **name, char **value);
113 void o_attrib_free_current(TOPLEVEL *toplevel);
114 void o_attrib_set_string(TOPLEVEL *toplevel, char *string);
115 void o_attrib_set_color(TOPLEVEL *toplevel, GList *attributes);
116 char *o_attrib_search_name(OBJECT *list, char *name, int counter);
117 OBJECT *o_attrib_search_string_list(OBJECT *list, char *string);
118 char *o_attrib_search_string_partial(OBJECT *object, char *search_for, int counter);
119 OBJECT *o_attrib_search_string_single(OBJECT *object, char *search_for);
120 OBJECT *o_attrib_search_attrib_value(GList *list, char *value, char *name, int counter);
121 char *o_attrib_search_attrib_name(GList *list, char *name, int counter);
122 char *o_attrib_search_toplevel(OBJECT *list, char *name, int counter);
123 char *o_attrib_search_name_single(OBJECT *object, char *name, OBJECT **return_found);
124 char *o_attrib_search_name_single_count(OBJECT *object, char *name, int counter);
125 char *o_attrib_search_slot(OBJECT *object, OBJECT **return_found);
126 char *o_attrib_search_numslots(OBJECT *object, OBJECT **return_found);
127 char *o_attrib_search_default_slot(OBJECT *object);
128 OBJECT *o_attrib_search_pinseq(OBJECT *list, int pin_number);
129 char *o_attrib_search_slotdef(OBJECT *object, int slotnumber);
130 char *o_attrib_search_component(OBJECT *object, char *name);
131 void o_attrib_slot_update(TOPLEVEL *toplevel, OBJECT *object);
132 void o_attrib_slot_copy(TOPLEVEL *toplevel, OBJECT *original, OBJECT *target);
133 char *o_attrib_search_toplevel_all(GedaPageList *page_list, char *name);
134 OBJECT **o_attrib_return_attribs(OBJECT *object_list, OBJECT *sel_object);
135 void o_attrib_free_returned(OBJECT **found_objects);
137 /* o_basic.c */
138 int inside_region(int xmin, int ymin, int xmax, int ymax, int x, int y);
139 void o_recalc_single_object(TOPLEVEL *toplevel, OBJECT *o_current);
140 void o_recalc_object_list(TOPLEVEL *toplevel, OBJECT *object_list);
141 void o_recalc_object_glist(TOPLEVEL *toplevel, GList *object_glist);
142 void o_set_line_options(TOPLEVEL *toplevel, OBJECT *o_current, OBJECT_END end, OBJECT_TYPE type, int width, int length, int space);
143 void o_set_fill_options(TOPLEVEL *toplevel, OBJECT *o_current, OBJECT_FILLING type, int width, int pitch1, int angle1, int pitch2, int angle2);
144 void o_translate_world (TOPLEVEL *toplevel, gint dx, gint dy, OBJECT *object);
145 void o_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
146 void o_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
147 /* o_box_basic.c */
148 OBJECT *o_box_add(TOPLEVEL *toplevel, OBJECT *object_list, char type, int color, int x1, int y1, int x2, int y2);
149 OBJECT *o_box_copy(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current);
150 void o_box_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
151 void o_box_translate_world(TOPLEVEL *toplevel, int x1, int y1, OBJECT *object);
152 void o_box_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
153 void o_box_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
154 void o_box_recalc(TOPLEVEL *toplevel, OBJECT *o_current);
155 void world_get_box_bounds(TOPLEVEL *toplevel, OBJECT *object, int *left, int *top, int *right, int *bottom);
157 /* o_bus_basic.c */
158 void world_get_bus_bounds(TOPLEVEL *toplevel, OBJECT *object, int *left, int *top, int *right, int *bottom);
159 OBJECT *o_bus_add(TOPLEVEL *toplevel, OBJECT *object_list, char type, int color, int x1, int y1, int x2, int y2, int bus_ripper_direction);
160 void o_bus_recalc(TOPLEVEL *toplevel, OBJECT *o_current);
161 void o_bus_translate_world(TOPLEVEL *toplevel, int x1, int y1, OBJECT *object);
162 OBJECT *o_bus_copy(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current);
163 void o_bus_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
164 void o_bus_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
165 int o_bus_orientation(OBJECT *object);
166 void o_bus_consolidate_lowlevel(OBJECT *object, OBJECT *del_object, int orient);
167 int o_bus_consolidate_segments(TOPLEVEL *toplevel, OBJECT *object);
168 void o_bus_consolidate(TOPLEVEL *toplevel);
169 void o_bus_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
171 /* o_circle_basic.c */
172 int dist(int x1, int y1, int x2, int y2);
173 OBJECT *o_circle_add(TOPLEVEL *toplevel, OBJECT *object_list, char type, int color, int x, int y, int radius);
174 OBJECT *o_circle_copy(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current);
175 void o_circle_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
176 void o_circle_translate_world(TOPLEVEL *toplevel, int x1, int y1, OBJECT *object);
177 void o_circle_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
178 void o_circle_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
179 void o_circle_recalc(TOPLEVEL *toplevel, OBJECT *o_current);
180 void world_get_circle_bounds(TOPLEVEL *toplevel, OBJECT *object, int *left, int *top, int *right, int *bottom);
182 /* o_complex_basic.c */
183 int world_get_single_object_bounds(TOPLEVEL *toplevel, OBJECT *o_current,
184 int *rleft, int *rtop,
185 int *rright, int *rbottom);
186 int world_get_object_list_bounds(TOPLEVEL *toplevel, OBJECT *complex,
187 int *left, int *top, int *right, int *bottom);
188 int world_get_object_glist_bounds(TOPLEVEL *toplevel, GList *o_list,
189 int *left, int *top,
190 int *right, int *bottom);
191 void world_get_complex_bounds(TOPLEVEL *toplevel, OBJECT *complex, int *left, int *top, int *right, int *bottom);
192 OBJECT *add_head(void);
193 int o_complex_is_eligible_attribute(TOPLEVEL *toplevel, OBJECT *object, int promote_invisible);
194 int o_complex_is_embedded(OBJECT *o_current);
195 OBJECT *o_complex_add(TOPLEVEL *toplevel, OBJECT *object_list,
196 GList **object_glist, char type, int color,
197 int x, int y, int angle, int mirror,
198 const CLibSymbol *clib_sym, const gchar *basename,
199 int selectable, int attribute_promotion);
200 OBJECT *o_complex_add_embedded(TOPLEVEL *toplevel, OBJECT *object_list, char type, int color, int x, int y, int angle, const gchar *basename, int selectable);
201 void o_complex_recalc(TOPLEVEL *toplevel, OBJECT *o_current);
202 void o_complex_set_filename(TOPLEVEL *toplevel, const char *basename);
203 void o_complex_free_filename(TOPLEVEL *toplevel);
204 void o_complex_translate_world(TOPLEVEL *toplevel, int x1, int y1, OBJECT *object);
205 OBJECT *o_complex_copy(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current);
206 OBJECT *o_complex_copy_embedded(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current);
207 void o_complex_delete(TOPLEVEL *toplevel, OBJECT *delete);
208 void o_complex_set_color(OBJECT *prim_objs, int color);
209 void o_complex_set_color_single(OBJECT *o_current, int color);
210 void o_complex_set_color_save(OBJECT *complex, int color);
211 void o_complex_unset_color(OBJECT *complex);
212 void o_complex_unset_color_single(OBJECT *o_current);
213 void o_complex_set_saved_color_only(OBJECT *complex, int color);
214 OBJECT *o_complex_return_nth_pin(OBJECT *o_list, int counter);
215 void o_complex_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
216 void o_complex_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
217 OBJECT *o_complex_return_pin_object(OBJECT *object, char *pin);
218 int o_complex_count_pins(OBJECT *object);
219 void o_complex_check_symversion(TOPLEVEL* toplevel, OBJECT* object);
221 /* o_embed.c */
222 void o_embed(TOPLEVEL *toplevel, OBJECT *o_current);
223 void o_unembed(TOPLEVEL *toplevel, OBJECT *o_current);
225 /* o_line_basic.c */
226 OBJECT *o_line_add(TOPLEVEL *toplevel, OBJECT *object_list, char type, int color, int x1, int y1, int x2, int y2);
227 OBJECT *o_line_copy(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current);
228 void o_line_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
229 void o_line_translate_world(TOPLEVEL *toplevel, int x1, int y1, OBJECT *object);
230 void o_line_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
231 void o_line_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
232 void o_line_recalc(TOPLEVEL *toplevel, OBJECT *o_current);
233 void world_get_line_bounds(TOPLEVEL *toplevel, OBJECT *object, int *left, int *top, int *right, int *bottom);
234 void o_line_scale_world(TOPLEVEL *toplevel, int x_scale, int y_scale, OBJECT *object);
235 int o_line_visible(TOPLEVEL *toplevel, LINE *line, int *x1, int *y1, int *x2, int *y2);
236 double o_line_length(OBJECT *object);
238 /* o_list.c */
239 OBJECT *o_list_copy_to(TOPLEVEL *toplevel, OBJECT *list_head, OBJECT *selected, int flag, OBJECT **return_end);
240 OBJECT *o_list_copy_all(TOPLEVEL *toplevel, OBJECT *src_list_head, OBJECT *dest_list_head, int flag);
241 GList *o_glist_copy_all_to_glist(TOPLEVEL *toplevel, GList *src_list, GList *dest_list, int flag);
242 OBJECT *o_list_search(OBJECT *list, OBJECT *current);
243 void o_list_delete(TOPLEVEL *toplevel, OBJECT *list, OBJECT *delete);
244 void o_list_delete_rest(TOPLEVEL *toplevel, OBJECT *list);
245 void o_list_translate_world(TOPLEVEL *toplevel, int x, int y, OBJECT *list);
246 void o_glist_translate_world(TOPLEVEL *toplevel, int x, int y, GList *list);
247 void o_list_rotate_world(TOPLEVEL *toplevel, int x, int y, int angle, OBJECT *list);
248 void o_glist_rotate_world(TOPLEVEL *toplevel, int x, int y, int angle, GList *list);
249 void o_list_mirror_world(TOPLEVEL *toplevel, int x, int y, OBJECT *list);
250 void o_glist_mirror_world(TOPLEVEL *toplevel, int x, int y, GList *list);
252 /* o_net_basic.c */
253 void world_get_net_bounds(TOPLEVEL *toplevel, OBJECT *object, int *left, int *top, int *right, int *bottom);
254 OBJECT *o_net_add(TOPLEVEL *toplevel, OBJECT *object_list, char type, int color, int x1, int y1, int x2, int y2);
255 void o_net_recalc(TOPLEVEL *toplevel, OBJECT *o_current);
256 void o_net_translate_world(TOPLEVEL *toplevel, int x1, int y1, OBJECT *object);
257 OBJECT *o_net_copy(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current);
258 void o_net_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
259 void o_net_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
260 int o_net_orientation(OBJECT *object);
261 void o_net_consolidate_lowlevel(OBJECT *object, OBJECT *del_object, int orient);
262 int o_net_consolidate_nomidpoint(OBJECT *object, int x, int y);
263 int o_net_consolidate_segments(TOPLEVEL *toplevel, OBJECT *object);
264 void o_net_consolidate(TOPLEVEL *toplevel);
265 void o_net_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
267 /* o_picture.c */
268 OBJECT *o_picture_add(TOPLEVEL *toplevel, OBJECT *list_tail, GdkPixbuf *pixbuf,
269 gchar *file_content, gsize file_length, char *filename,
270 double ratio, char type,
271 int x1, int y1, int x2, int y2, int angle, char mirrored,
272 char embedded);
273 void o_picture_recalc(TOPLEVEL *toplevel, OBJECT *o_current);
274 void world_get_picture_bounds(TOPLEVEL *toplevel, OBJECT *object, int *left, int *top, int *right, int *bottom);
275 void o_picture_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
276 void o_picture_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle,OBJECT *object);
277 void o_picture_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
278 void o_picture_translate_world(TOPLEVEL *toplevel, int x1, int y1, OBJECT *object);
279 OBJECT *o_picture_copy(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current);
280 guint8 *o_picture_rgb_data(GdkPixbuf *image);
281 guint8 *o_picture_mask_data(GdkPixbuf *image);
282 void o_picture_embed(TOPLEVEL *toplevel, OBJECT *object);
283 void o_picture_unembed(TOPLEVEL *toplevel, OBJECT *object);
284 GdkPixbuf *o_picture_pixbuf_from_buffer (gchar *file_content, gsize file_length, GError **err);
286 /* o_pin_basic.c */
287 void world_get_pin_bounds(TOPLEVEL *toplevel, OBJECT *object, int *left, int *top, int *right, int *bottom);
288 OBJECT *o_pin_add(TOPLEVEL *toplevel, OBJECT *object_list, char type, int color, int x1, int y1, int x2, int y2, int pin_type, int whichend);
289 void o_pin_recalc(TOPLEVEL *toplevel, OBJECT *o_current);
290 void o_pin_translate_world(TOPLEVEL *toplevel, int x1, int y1, OBJECT *object);
291 OBJECT *o_pin_copy(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current);
292 void o_pin_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
293 void o_pin_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
294 void o_pin_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
295 void o_pin_update_whichend(TOPLEVEL *toplevel, OBJECT *object_list, int num_pins);
297 /* o_selection.c */
298 SELECTION *o_selection_new( void );
299 void o_selection_add(SELECTION *selection, OBJECT *o_selected);
300 void o_selection_print_all(const SELECTION *selection);
301 void o_selection_remove(SELECTION *selection, OBJECT *o_selected);
302 void o_selection_select(OBJECT *object, int color); /* DEPRECATED */
303 void o_selection_unselect(OBJECT *object); /* DEPRECATED */
305 /* o_text_basic.c */
306 int world_get_text_bounds(TOPLEVEL *toplevel, OBJECT *o_current, int *left, int *top, int *right, int *bottom);
307 OBJECT *o_text_add_head(void);
308 void o_text_init(void);
309 void o_text_print_set(void);
310 OBJECT *o_text_load_font(TOPLEVEL *toplevel, gunichar needed_char);
311 int o_text_num_lines(char *string);
312 int o_text_height(char *string, int size);
313 int o_text_width(TOPLEVEL *toplevel, char *string, int size);
314 OBJECT *o_text_create_string(TOPLEVEL *toplevel, OBJECT *object_list, char *string, int size, int color, int x, int y, int alignment, int angle);
315 OBJECT *o_text_add(TOPLEVEL *toplevel, OBJECT *object_list, char type, int color, int x, int y, int alignment, int angle, char *string, int size, int visibility, int show_name_value);
316 void o_text_recalc(TOPLEVEL *toplevel, OBJECT *o_current);
317 void o_text_set_info_font(char buf[]);
318 void o_text_recreate(TOPLEVEL *toplevel, OBJECT *o_current);
319 void o_text_translate_world(TOPLEVEL *toplevel, int x1, int y1, OBJECT *o_current);
320 OBJECT *o_text_copy(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current);
321 void o_text_freeallfonts(TOPLEVEL *toplevel);
322 void o_text_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
323 void o_text_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
325 /* s_attrib.c */
326 int s_attrib_add_entry(char *new_attrib);
327 void s_attrib_print(void);
328 int s_attrib_uniq(char *name);
329 void s_attrib_free(void);
330 void s_attrib_init(void);
331 char *s_attrib_get(int counter);
333 /* s_basic.c */
334 void error_if_called(void);
335 void exit_if_null(void *ptr);
336 OBJECT *return_tail(OBJECT *head);
337 OBJECT *return_head(OBJECT *tail);
338 OBJECT *s_basic_init_object(char *name);
339 OBJECT *s_basic_link_object(OBJECT *new_node, OBJECT *ptr);
340 void print_struct_forw(OBJECT *ptr);
341 void print_struct_back(OBJECT *ptr);
342 void print_struct(OBJECT *ptr);
343 void s_delete_object(TOPLEVEL *toplevel, OBJECT *o_current);
344 void s_delete(TOPLEVEL *toplevel, OBJECT *o_current);
345 void s_delete_list_fromstart(TOPLEVEL *toplevel, OBJECT *start);
346 void s_delete_object_glist(TOPLEVEL *toplevel, GList *list);
347 OBJECT *s_remove(TOPLEVEL *toplevel, OBJECT *object);
348 void string_toupper(char *in, char *out);
349 void string_tolower(char *in, char *out);
350 int colornametovalue(char *string);
351 char *remove_nl(char *string);
352 char *remove_last_nl(char *string);
353 char *remove_string(char *string, int start, int end);
354 char *insert_string(char *string, int start, char *insert_string);
355 char *expand_env_variables(char *string);
357 /* s_clib.c */
358 void s_clib_free (void);
359 GList *s_clib_get_sources (const gboolean sorted);
360 const CLibSource *s_clib_get_source_by_name (const gchar *name);
361 void s_clib_refresh ();
362 const CLibSource *s_clib_add_directory (const gchar *directory,
363 const gchar *name);
364 const CLibSource *s_clib_add_command (const gchar *list_cmd,
365 const gchar *get_cmd,
366 const gchar *name);
367 const CLibSource *s_clib_add_scm (SCM listfunc, SCM getfunc,
368 const gchar *name);
369 const gchar *s_clib_source_get_name (const CLibSource *source);
370 GList *s_clib_source_get_symbols (const CLibSource *source);
371 const gchar *s_clib_symbol_get_name (const CLibSymbol *symbol);
372 gchar *s_clib_symbol_get_filename (const CLibSymbol *symbol);
373 const CLibSource *s_clib_symbol_get_source (const CLibSymbol *symbol);
374 gchar *s_clib_symbol_get_data (const CLibSymbol *symbol);
375 GList *s_clib_search (const gchar *pattern, const CLibSearchMode mode);
376 void s_clib_flush_search_cache ();
377 void s_clib_flush_symbol_cache ();
378 const CLibSymbol *s_clib_get_symbol_by_name (const gchar *name);
379 gchar *s_clib_symbol_get_data_by_name (const gchar *name);
380 GList *s_toplevel_get_symbols (const TOPLEVEL *toplevel);
382 /* s_color.c */
383 int s_color_request(int color_index, char *color_name, char *outline_color_name, char *ps_color_string, int image_red, int image_green, int image_blue);
384 void s_color_destroy_all(void);
385 int s_color_image_int(int color);
386 int s_color_get_name(int index, char *string);
387 int s_color_get_index(char *string);
389 /* s_conn.c */
390 CONN *s_conn_return_new(OBJECT *other_object, int type, int x, int y, int whichone, int other_whichone);
391 int s_conn_uniq(GList *conn_list, CONN *input_conn);
392 int s_conn_remove_other(TOPLEVEL *toplevel, OBJECT *other_object, OBJECT *to_remove);
393 void s_conn_remove(TOPLEVEL *toplevel, OBJECT *to_remove);
394 void s_conn_remove_complex(TOPLEVEL *toplevel, OBJECT *to_remove);
395 OBJECT *s_conn_check_midpoint(OBJECT *o_current, int x, int y);
396 void s_conn_update_object(TOPLEVEL *toplevel, OBJECT *object);
397 void s_conn_update_complex(TOPLEVEL *toplevel, OBJECT *complex);
398 void s_conn_print(GList *conn_list);
399 int s_conn_net_search(OBJECT* new_net, int whichone, GList * conn_list);
400 GList *s_conn_return_others(GList *input_list, OBJECT *object);
401 GList *s_conn_return_complex_others(GList *input_list, OBJECT *object);
403 /* s_cue.c */
404 void s_cue_postscript_fillbox(TOPLEVEL *toplevel, FILE *fp, int x, int y);
405 void s_cue_postscript_fillcircle(TOPLEVEL *toplevel, FILE *fp, int x, int y, int size_flag);
406 void s_cue_output_all(TOPLEVEL *toplevel, OBJECT *head, FILE *fp, int type);
407 void s_cue_output_lowlevel(TOPLEVEL *toplevel, OBJECT *object, int whichone, FILE *fp, int output_type);
408 void s_cue_output_lowlevel_midpoints(TOPLEVEL *toplevel, OBJECT *object, FILE *fp, int output_type);
409 void s_cue_output_single(TOPLEVEL *toplevel, OBJECT *object, FILE *fp, int type);
411 /* s_hierarchy.c */
412 int s_hierarchy_down_schematic_single(TOPLEVEL *toplevel, const gchar *filename, PAGE *parent, int page_control, int flag);
413 void s_hierarchy_down_schematic_multiple (TOPLEVEL *toplevel, const gchar *filename, PAGE *parent);
414 void s_hierarchy_down_symbol (TOPLEVEL *toplevel, const CLibSymbol *symbol, PAGE *parent);
415 void s_hierarchy_up(TOPLEVEL *toplevel, int pid);
416 GList* s_hierarchy_traversepages(TOPLEVEL *toplevel, gint flags);
417 gint s_hierarchy_print_page(PAGE *p_current, void * data);
418 PAGE *s_hierarchy_find_prev_page(GedaPageList *page_list, PAGE *current_page, int page_control);
419 PAGE *s_hierarchy_find_next_page(GedaPageList *page_list, PAGE *current_page, int page_control);
420 PAGE *s_hierarchy_find_page(GedaPageList *page_list, int pid);
422 /* s_log.c */
423 void s_log_init (const gchar *filename);
424 void s_log_close (void);
425 gchar *s_log_read (void);
427 /* s_menu.c */
428 int s_menu_return_num(void);
429 SCM s_menu_return_entry(int index, char **menu_name);
430 int s_menu_add_entry(char *new_menu, SCM menu_items);
431 void s_menu_print(void);
432 void s_menu_free(void);
433 void s_menu_init(void);
435 /* s_page.c */
436 PAGE *s_page_new (TOPLEVEL *toplevel, const gchar *filename);
437 void s_page_delete (TOPLEVEL *toplevel, PAGE *page);
438 void s_page_delete_list(TOPLEVEL *toplevel);
439 void s_page_goto (TOPLEVEL *toplevel, PAGE *p_new);
440 PAGE *s_page_search (TOPLEVEL *toplevel, const gchar *filename);
441 void s_page_print_all (TOPLEVEL *toplevel);
442 gint s_page_save_all (TOPLEVEL *toplevel);
443 gboolean s_page_check_changed (GedaPageList *list);
444 void s_page_clear_changed (GedaPageList *list);
445 void s_page_autosave_init(TOPLEVEL *toplevel);
446 gint s_page_autosave (TOPLEVEL *toplevel);
448 /* s_papersizes.c */
449 int s_papersizes_add_entry(char *new_papersize, int width, int height);
450 void s_papersizes_print(void);
451 int s_papersizes_uniq(char *name);
452 void s_papersizes_free(void);
453 void s_papersizes_init(void);
454 char *s_papersizes_get(int counter);
455 void s_papersizes_get_size(char *string, int *width, int *height);
457 /* s_project.c */
458 TOPLEVEL *s_toplevel_new (void);
459 void s_toplevel_delete (TOPLEVEL *toplevel);
461 /* s_slib.c */
462 int s_slib_add_entry(char *new_path);
463 int s_slib_search_for_dirname(char *dir_name);
464 char *s_slib_search_dirs(const char *basename);
465 char *s_slib_search_lowlevel(const char *basename);
466 char *s_slib_getbasename(const char *rawname);
467 char *s_slib_search(const char *filename, int flag);
468 char *s_slib_search_single(const char *filename);
469 void s_slib_free(void);
470 void s_slib_init(void);
471 char *s_slib_getdir(int index);
472 char *s_slib_getfiles(char *directory, int flag);
473 void s_slib_print(void);
474 int s_slib_uniq(char *path);
475 void s_slib_print_dirs(void);
477 /* s_stretch.c */
478 STRETCH *s_stretch_return_tail(STRETCH *head);
479 STRETCH *s_stretch_return_head(STRETCH *tail);
480 STRETCH *s_stretch_new_head(void);
481 void s_stretch_destroy_head(STRETCH *s_head);
482 STRETCH *s_stretch_add(STRETCH *head, OBJECT *object, CONN *connection, int whichone);
483 void s_stretch_remove(STRETCH *head, OBJECT *object);
484 void s_stretch_remove_most(TOPLEVEL *toplevel, STRETCH *head);
485 void s_stretch_print_all(STRETCH *head);
486 void s_stretch_destroy_all(STRETCH *head);
488 /* s_tile.c */
489 void s_tile_init(TOPLEVEL *toplevel, PAGE *p_current);
490 TILE_LOC *s_tile_new_loc(int i, int j);
491 void s_tile_add_object(TOPLEVEL *toplevel, OBJECT *object, int world_x1, int world_y1, int world_x2, int world_y2);
492 void s_tile_remove_object_all_crude(TOPLEVEL *toplevel, OBJECT *object);
493 void s_tile_remove_object_all(TOPLEVEL *toplevel, PAGE *p_current, OBJECT *object);
494 void s_tile_update_object(TOPLEVEL *toplevel, OBJECT *object);
495 void s_tile_print(TOPLEVEL *toplevel);
496 void s_tile_free_all(PAGE *p_current);
498 /* s_undo.c */
499 UNDO *s_undo_return_tail(UNDO *head);
500 UNDO *s_undo_return_head(UNDO *tail);
501 UNDO *s_undo_new_head(void);
502 void s_undo_destroy_head(UNDO *u_head);
503 UNDO *s_undo_add(UNDO *head, int type, char *filename, OBJECT *object_head, int left, int top, int right, int bottom, int page_control, int up);
504 void s_undo_print_all(UNDO *head);
505 void s_undo_destroy_all(TOPLEVEL *toplevel, UNDO *head);
506 void s_undo_remove(TOPLEVEL *toplevel, UNDO *head, UNDO *u_tos);
507 void s_undo_remove_rest(TOPLEVEL *toplevel, UNDO *head);
508 int s_undo_levels(UNDO *head);
509 void s_undo_init(PAGE *p_current);
510 void s_undo_free_all(TOPLEVEL *toplevel, PAGE *p_current);
512 /* u_basic.c */
513 char *u_basic_breakup_string(char *string, char delimiter, int count);
514 void u_basic_strip_trailing(char *string, char c);
515 int u_basic_has_trailing(char *string, char c);
516 int u_basic_count_char(const char *string, char character);