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
);
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
);
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
);
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
);
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
,
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
);
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
,
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
,
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
);
70 void libgeda_init(void);
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
);
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
);
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
);
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
);
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
);
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
);
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
,
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
);
222 void o_embed(TOPLEVEL
*toplevel
, OBJECT
*o_current
);
223 void o_unembed(TOPLEVEL
*toplevel
, OBJECT
*o_current
);
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
);
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
);
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
);
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
,
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
);
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
);
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 */
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
);
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
);
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
);
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
,
364 const CLibSource
*s_clib_add_command (const gchar
*list_cmd
,
365 const gchar
*get_cmd
,
367 const CLibSource
*s_clib_add_scm (SCM listfunc
, SCM getfunc
,
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
);
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
);
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
);
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
);
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
);
423 void s_log_init (const gchar
*filename
);
424 void s_log_close (void);
425 gchar
*s_log_read (void);
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);
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
);
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
);
458 TOPLEVEL
*s_toplevel_new (void);
459 void s_toplevel_delete (TOPLEVEL
*toplevel
);
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);
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
);
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
);
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
);
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
);