/* a_pan.c */
void a_pan_calc(TOPLEVEL *w_current, int x, int y);
void a_pan(TOPLEVEL *w_current, int x, int y);
void a_pan_mouse(TOPLEVEL *w_current, int diff_x, int diff_y);
/* a_zoom.c */
void a_zoom(TOPLEVEL *w_current, int dir, int selected_from);
void a_zoom_limits(TOPLEVEL *w_current, OBJECT *o_current);
void a_zoom_box(TOPLEVEL *w_current);
void a_zoom_box_start(TOPLEVEL *w_current, int x, int y);
void a_zoom_box_end(TOPLEVEL *w_current, int x, int y);
void a_zoom_box_rubberband(TOPLEVEL *w_current, int x, int y);
void correct_aspect(TOPLEVEL *w_current);
/* g_funcs.c */
SCM g_funcs_print(SCM filename);
SCM g_funcs_exit(void);
SCM g_funcs_use_rc_values(void);
SCM g_funcs_key_name(SCM keystring);
SCM g_funcs_key_value(SCM keystring);
SCM g_funcs_key_done(void);
/* g_key.c */
void set_window_current_key(TOPLEVEL *w_current);
void g_key_execute(int state, int keyval);
SCM g_key_file_new(void);
SCM g_key_file_new_window(void);
SCM g_key_file_open(void);
SCM g_key_file_script(void);
SCM g_key_file_save(void);
SCM g_key_file_save_as(void);
SCM g_key_file_save_all(void);
SCM g_key_file_print(void);
SCM g_key_file_write_png(void);
SCM g_key_file_close(void);
SCM g_key_file_quit(void);
SCM g_key_edit_select(void);
SCM g_key_edit_copy(void);
SCM g_key_edit_copy_hotkey(void);
SCM g_key_edit_move(void);
SCM g_key_edit_move_hotkey(void);
SCM g_key_edit_delete(void);
SCM g_key_edit_rotate_90(void);
SCM g_key_edit_rotate_90_hotkey(void);
SCM g_key_edit_mirror(void);
SCM g_key_edit_mirror_hotkey(void);
SCM g_key_edit_stretch(void);
SCM g_key_edit_stretch_hotkey(void);
SCM g_key_edit_slot(void);
SCM g_key_edit_color(void);
SCM g_key_edit_edit(void);
SCM g_key_edit_lock(void);
SCM g_key_edit_unlock(void);
SCM g_key_edit_translate(void);
SCM g_key_edit_embed(void);
SCM g_key_edit_unembed(void);
SCM g_key_edit_show_hidden(void);
SCM g_key_view_redraw(void);
SCM g_key_view_zoom_full(void);
SCM g_key_view_zoom_limits(void);
SCM g_key_view_zoom_in(void);
SCM g_key_view_zoom_out(void);
SCM g_key_view_zoom_in_hotkey(void);
SCM g_key_view_zoom_out_hotkey(void);
SCM g_key_view_zoom_box(void);
SCM g_key_view_zoom_box_hotkey(void);
SCM g_key_view_pan(void);
SCM g_key_view_pan_hotkey(void);
SCM g_key_view_update_cues(void);
SCM g_key_page_manager(void);
SCM g_key_page_next(void);
SCM g_key_page_prev(void);
SCM g_key_page_new(void);
SCM g_key_page_close(void);
SCM g_key_page_discard(void);
SCM g_key_page_print(void);
SCM g_key_add_component(void);
SCM g_key_add_attribute(void);
SCM g_key_add_net(void);
SCM g_key_add_net_hotkey(void);
SCM g_key_add_bus(void);
SCM g_key_add_bus_hotkey(void);
SCM g_key_add_text(void);
SCM g_key_add_line(void);
SCM g_key_add_line_hotkey(void);
SCM g_key_add_box(void);
SCM g_key_add_box_hotkey(void);
SCM g_key_add_circle(void);
SCM g_key_add_circle_hotkey(void);
SCM g_key_add_arc(void);
SCM g_key_add_arc_hotkey(void);
SCM g_key_add_pin(void);
SCM g_key_add_pin_hotkey(void);
SCM g_key_hierarchy_open_symbol(void);
SCM g_key_attributes_attach(void);
SCM g_key_attributes_detach(void);
SCM g_key_attributes_show_name(void);
SCM g_key_attributes_show_value(void);
SCM g_key_attributes_show_both(void);
SCM g_key_attributes_visibility_toggle(void);
SCM g_key_script_console(void);
SCM g_key_options_text_size(void);
SCM g_key_options_afeedback(void);
SCM g_key_options_grid(void);
SCM g_key_options_snap(void);
SCM g_key_options_snap_size(void);
SCM g_key_options_show_log_window(void);
SCM g_key_options_show_coord_window(void);
SCM g_key_misc(void);
SCM g_key_help_about(void);
SCM g_key_help_hotkeys(void);
SCM g_key_cancel(void);
/* g_rc.c */
void g_rc_parse(void);
SCM g_rc_gschem_version(SCM version);
SCM g_rc_override_net_color(SCM index, SCM color, SCM outline_color, SCM ps_color, SCM ir, SCM ig, SCM ib);
SCM g_rc_override_bus_color(SCM index, SCM color, SCM outline_color, SCM ps_color, SCM ir, SCM ig, SCM ib);
SCM g_rc_override_pin_color(SCM index, SCM color, SCM outline_color, SCM ps_color, SCM ir, SCM ig, SCM ib);
SCM g_rc_attribute_color(SCM index, SCM color, SCM outline_color, SCM ps_color, SCM ir, SCM ig, SCM ib);
SCM g_rc_detachedattr_color(SCM index, SCM color, SCM outline_color, SCM ps_color, SCM ir, SCM ig, SCM ib);
SCM g_rc_text_color(SCM index, SCM color, SCM outline_color, SCM ps_color, SCM ir, SCM ig, SCM ib);
SCM g_rc_net_color(SCM index, SCM color, SCM outline_color, SCM ps_color, SCM ir, SCM ig, SCM ib);
SCM g_rc_bus_color(SCM index, SCM color, SCM outline_color, SCM ps_color, SCM ir, SCM ig, SCM ib);
SCM g_rc_pin_color(SCM index, SCM color, SCM outline_color, SCM ps_color, SCM ir, SCM ig, SCM ib);
SCM g_rc_graphic_color(SCM index, SCM color, SCM outline_color, SCM ps_color, SCM ir, SCM ig, SCM ib);
SCM g_rc_grid_color(SCM index, SCM color, SCM outline_color, SCM ps_color, SCM ir, SCM ig, SCM ib);
SCM g_rc_background_color(SCM index, SCM color, SCM outline_color, SCM ps_color, SCM ir, SCM ig, SCM ib);
SCM g_rc_select_color(SCM index, SCM color, SCM outline_color, SCM ps_color, SCM ir, SCM ig, SCM ib);
SCM g_rc_boundingbox_color(SCM index, SCM color, SCM outline_color, SCM ps_color, SCM ir, SCM ig, SCM ib);
SCM g_rc_zoom_box_color(SCM index, SCM color, SCM outline_color, SCM ps_color, SCM ir, SCM ig, SCM ib);
SCM g_rc_net_endpoint_color(SCM index, SCM color, SCM outline_color, SCM ps_color, SCM ir, SCM ig, SCM ib);
SCM g_rc_logic_bubble_color(SCM index, SCM color, SCM outline_color, SCM ps_color, SCM ir, SCM ig, SCM ib);
SCM g_rc_lock_color(SCM index, SCM color, SCM outline_color, SCM ps_color, SCM ir, SCM ig, SCM ib);
SCM g_rc_output_color_background(SCM index, SCM color, SCM outline_color, SCM ps_color, SCM ir, SCM ig, SCM ib);
SCM g_rc_stroke_color(SCM index, SCM color, SCM outline_color, SCM ps_color, SCM ir, SCM ig, SCM ib);
SCM g_rc_freestyle_color(SCM index, SCM color, SCM outline_color, SCM ps_color, SCM ir, SCM ig, SCM ib);
SCM g_rc_net_endpoint_mode(SCM mode);
SCM g_rc_net_midpoint_mode(SCM mode);
SCM g_rc_net_style(SCM mode);
SCM g_rc_bus_style(SCM mode);
SCM g_rc_pin_style(SCM mode);
SCM g_rc_action_feedback_mode(SCM mode);
SCM g_rc_zoom_with_pan(SCM mode);
SCM g_rc_text_feedback(SCM mode);
SCM g_rc_text_display_zoomfactor(SCM zoomfactor);
SCM g_rc_scrollbar_update(SCM mode);
SCM g_rc_object_clipping(SCM mode);
SCM g_rc_logging(SCM mode);
SCM g_rc_embed_components(SCM mode);
SCM g_rc_text_size(SCM size);
SCM g_rc_text_caps_style(SCM mode);
SCM g_rc_snap_size(SCM size);
SCM g_rc_logging_destination(SCM mode);
SCM g_rc_default_series_name(SCM name);
SCM g_rc_untitled_name(SCM name);
SCM g_rc_component_library(SCM path);
SCM g_rc_source_library(SCM path);
SCM g_rc_attribute_name(SCM path);
SCM g_rc_scheme_directory(SCM path);
SCM g_rc_font_directory(SCM path);
SCM g_rc_world_size(SCM width, SCM height, SCM border);
SCM g_rc_scrollbars(SCM mode);
SCM g_rc_paper_size(SCM width, SCM height);
SCM g_rc_paper_sizes(SCM papername, SCM scm_width, SCM scm_height);
SCM g_rc_output_text(SCM mode);
SCM g_rc_output_type(SCM mode);
SCM g_rc_output_orientation(SCM mode);
SCM g_rc_image_color(SCM mode);
SCM g_rc_output_color(SCM mode);
SCM g_rc_output_capstyle(SCM mode);
SCM g_rc_log_window(SCM mode);
SCM g_rc_log_window_type(SCM mode);
SCM g_rc_third_button(SCM mode);
SCM g_rc_middle_button(SCM mode);
SCM g_rc_net_consolidate(SCM mode);
SCM g_rc_file_preview(SCM mode);
/* g_register.c */
void g_register_funcs(void);
/* globals.c */
/* gschem.c */
void gschem_quit(void);
void main_prog(int argc, char *argv[]);
int main(int argc, char *argv[]);
/* i_basic.c */
void i_update_status(TOPLEVEL *w_current, char *string);
void i_update_status2(TOPLEVEL *w_current, char *string);
void i_update_left_button(char *string);
void i_update_middle_button(TOPLEVEL *w_current, void *func_ptr, char *string);
void i_update_right_button(char *string);
void i_set_filename(TOPLEVEL *w_current, char *string);
/* i_callbacks.c */
void i_callback_file_new(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_file_new_window(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_file_open(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_file_script(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_file_save(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_file_save_all(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_file_save_as(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_file_print(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_file_write_png(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_file_close(gpointer data, guint callback_action, GtkWidget *widget);
int i_callback_close(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_file_quit(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_select(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_copy(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_copy_hotkey(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_move(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_move_hotkey(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_delete(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_edit(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_stretch(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_stretch_hotkey(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_slot(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_color(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_rotate_90(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_rotate_90_hotkey(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_mirror(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_mirror_hotkey(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_lock(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_unlock(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_translate(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_embed(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_unembed(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_show_hidden(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_view_redraw(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_view_zoom_full(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_view_zoom_limits(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_view_zoom_box(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_view_zoom_box_hotkey(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_view_zoom_in(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_view_zoom_out(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_view_zoom_in_hotkey(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_view_zoom_out_hotkey(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_view_pan(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_view_pan_hotkey(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_view_update_cues(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_page_manager(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_page_next(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_page_prev(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_page_new(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_page_close(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_page_discard(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_page_print(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_add_component(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_add_attribute(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_add_net(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_add_net_hotkey(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_add_bus(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_add_bus_hotkey(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_add_text(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_add_line(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_add_line_hotkey(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_add_box(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_add_box_hotkey(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_add_circle(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_add_circle_hotkey(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_add_arc(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_add_arc_hotkey(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_add_pin(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_add_pin_hotkey(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_hierarchy_open_symbol(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_attributes_attach(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_attributes_detach(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_attributes_show_name(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_attributes_show_value(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_attributes_show_both(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_attributes_visibility_toggle(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_script_console(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_options_text_size(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_options_snap_size(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_options_afeedback(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_options_grid(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_options_snap(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_options_show_log_window(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_misc(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_cancel(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_help_about(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_help_hotkeys(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_options_show_coord_window(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_close_wm(GtkWidget *widget, GdkEvent *event, gpointer data);
/* i_sbox.c */
void i_sbox_search(TOPLEVEL *w_current, int flag);
void i_sbox_start(TOPLEVEL *w_current, int x, int y);
void i_sbox_end(TOPLEVEL *w_current, int x, int y);
void i_sbox_rubberbox(TOPLEVEL *w_current, int x, int y);
/* i_vars.c */
void i_vars_set(TOPLEVEL *w_current);
void i_vars_setnames(TOPLEVEL *w_current);
/* o_arc.c */
void o_arc_draw(TOPLEVEL *w_current, OBJECT *o_current);
void o_arc_draw_xor(TOPLEVEL *w_current, int dx, int dy, OBJECT *o_current);
void o_arc_start(TOPLEVEL *w_current, int x, int y);
void o_arc_end1(TOPLEVEL *w_current, int x, int y);
void o_arc_end2(TOPLEVEL *w_current, int start_angle, int end_angle);
void o_arc_rubberline(TOPLEVEL *w_current, int x, int y);
/* o_attrib.c */
void deal_attr(TOPLEVEL *w_current, OBJECT *selected);
void o_attrib_toggle_visibility(TOPLEVEL *w_current, OBJECT *list);
void o_attrib_toggle_show_name_value(TOPLEVEL *w_current, OBJECT *list, int new_show_name_value);
void o_attrib_start(TOPLEVEL *w_current, int screen_x, int screen_y);
void o_attrib_end(TOPLEVEL *w_current);
void o_attrib_rubberattrib(TOPLEVEL *w_current);
/* o_basic.c */
void o_redraw_all(TOPLEVEL *w_current);
void o_redraw(TOPLEVEL *w_current, OBJECT *object_list);
void o_unselect_all(TOPLEVEL *w_current);
void o_find(TOPLEVEL *w_current, int x, int y);
void o_select(TOPLEVEL *w_current, OBJECT *selected);
void o_select_many(TOPLEVEL *w_current, OBJECT *selected, int count);
void o_redraw_selected(TOPLEVEL *w_current);
void o_unredraw_selected(TOPLEVEL *w_current);
void o_erase_selected(TOPLEVEL *w_current);
void o_erase_single(TOPLEVEL *w_current, OBJECT *object);
void o_unredraw_real(TOPLEVEL *w_current, OBJECT *list);
void o_redraw_real(TOPLEVEL *w_current, OBJECT *list);
void o_drawbounding(TOPLEVEL *w_current, OBJECT *o_current, GdkColor *color);
void o_erasebounding(TOPLEVEL *w_current, OBJECT *o_current);
/* o_box.c */
void o_box_draw(TOPLEVEL *w_current, OBJECT *o_current);
void o_box_draw_xor(TOPLEVEL *w_current, int dx, int dy, OBJECT *o_current);
void o_box_start(TOPLEVEL *w_current, int x, int y);
void o_box_end(TOPLEVEL *w_current, int x, int y);
void o_box_rubberbox(TOPLEVEL *w_current, int x, int y);
/* o_bus.c */
void o_bus_conn_erase(TOPLEVEL *w_current, OBJECT *o_current);
void o_bus_conn_erase_force(TOPLEVEL *w_current, OBJECT *o_current);
void o_bus_conn_draw(TOPLEVEL *w_current, OBJECT *o_current);
void o_bus_draw(TOPLEVEL *w_current, OBJECT *o_current);
void o_bus_draw_xor(TOPLEVEL *w_current, int dx, int dy, OBJECT *o_current);
void o_bus_start(TOPLEVEL *w_current, int x, int y);
void o_bus_end(TOPLEVEL *w_current, int x, int y);
void o_bus_rubberbus(TOPLEVEL *w_current, int x, int y);
void o_bus_eraserubber(TOPLEVEL *w_current);
void o_bus_xorrubber(TOPLEVEL *w_current);
/* o_circle.c */
void o_circle_draw(TOPLEVEL *w_current, OBJECT *o_current);
void o_circle_draw_xor(TOPLEVEL *w_current, int dx, int dy, OBJECT *o_current);
void o_circle_start(TOPLEVEL *w_current, int x, int y);
void o_circle_end(TOPLEVEL *w_current, int x, int y);
void o_circle_rubbercircle(TOPLEVEL *w_current, int x, int y);
/* o_complex.c */
void o_complex_draw(TOPLEVEL *w_current, OBJECT *o_current);
void o_complex_draw_xor(TOPLEVEL *w_current, int dx, int dy, OBJECT *complex);
void o_complex_start(TOPLEVEL *w_current, int screen_x, int screen_y);
void o_complex_end(TOPLEVEL *w_current, int screen_x, int screen_y);
void o_complex_rubbercomplex(TOPLEVEL *w_current);
void o_complex_translate_display(TOPLEVEL *w_current, int x1, int y1, OBJECT *complex);
void o_complex_translate_all(TOPLEVEL *w_current, int offset);
void o_complex_translate2(TOPLEVEL *w_current, int dx, int dy, OBJECT *object);
void o_complex_rotate(TOPLEVEL *w_current, int centerx, int centery, int angle, int angle_change, OBJECT *object);
int o_complex_mirror(TOPLEVEL *w_current, int centerx, int centery, OBJECT *object);
OBJECT *o_complex_mirror2(TOPLEVEL *w_current, OBJECT *list, int centerx, int centery, OBJECT *object);
/* o_conn.c */
void o_conn_draw_endpoint(TOPLEVEL *w_current, GdkGC *local_gc, int x, int y);
void o_conn_draw_midpoint(TOPLEVEL *w_current, GdkGC *local_gc, int x, int y);
void o_conn_draw_invalid(TOPLEVEL *w_current, GdkGC *local_gc, int x, int y);
void o_conn_draw_objects(TOPLEVEL *w_current, OBJECT *object);
void o_conn_draw_all(TOPLEVEL *w_current, OBJECT *object_list);
void o_conn_erase_all(TOPLEVEL *w_current, OBJECT *object_list);
OBJECT *o_conn_find_closest(OBJECT *object_list, int x, int y, int *whichone, int *prev_distance, int *prev_which);
int o_conn_draw_busmidpoint(TOPLEVEL *w_current, OBJECT *bus_object, GdkGC *local_gc, int x, int y, int other_wx, int other_wy);
/* o_copy.c */
void o_copy_start(TOPLEVEL *w_current, int x, int y);
void o_copy_end(TOPLEVEL *w_current);
/* o_delete.c */
void o_delete(TOPLEVEL *w_current);
/* o_line.c */
void o_line_draw(TOPLEVEL *w_current, OBJECT *o_current);
void o_line_draw_xor(TOPLEVEL *w_current, int dx, int dy, OBJECT *o_current);
void o_line_start(TOPLEVEL *w_current, int x, int y);
void o_line_end(TOPLEVEL *w_current, int x, int y);
void o_line_rubberline(TOPLEVEL *w_current, int x, int y);
/* o_misc.c */
void o_edit(TOPLEVEL *w_current, OBJECT *list);
void o_lock(TOPLEVEL *w_current);
void o_unlock(TOPLEVEL *w_current);
void o_rotate_90(TOPLEVEL *w_current, OBJECT *list, int centerx, int centery);
void o_embed(TOPLEVEL *w_current);
void o_unembed(TOPLEVEL *w_current);
void o_mirror(TOPLEVEL *w_current, OBJECT *list, int centerx, int centery);
void o_edit_show_hidden(TOPLEVEL *w_current, OBJECT *list);
/* o_move.c */
void o_move_start(TOPLEVEL *w_current, int x, int y);
void o_move_end(TOPLEVEL *w_current);
/* o_net.c */
void o_net_conn_erase(TOPLEVEL *w_current, OBJECT *o_current);
void o_net_conn_erase_force(TOPLEVEL *w_current, OBJECT *o_current);
void o_net_conn_draw(TOPLEVEL *w_current, OBJECT *o_current);
void o_net_draw(TOPLEVEL *w_current, OBJECT *o_current);
void o_net_draw_xor(TOPLEVEL *w_current, int dx, int dy, OBJECT *o_current);
void o_net_start(TOPLEVEL *w_current, int x, int y);
void o_net_end(TOPLEVEL *w_current, int x, int y);
void o_net_rubbernet(TOPLEVEL *w_current, int x, int y);
void o_net_eraserubber(TOPLEVEL *w_current);
void o_net_xorrubber(TOPLEVEL *w_current);
/* o_pin.c */
void o_pin_conn_erase(TOPLEVEL *w_current, OBJECT *o_current);
void o_pin_conn_draw(TOPLEVEL *w_current, OBJECT *o_current);
void o_pin_draw(TOPLEVEL *w_current, OBJECT *o_current);
void o_pin_draw_xor(TOPLEVEL *w_current, int dx, int dy, OBJECT *o_current);
void o_pin_start(TOPLEVEL *w_current, int x, int y);
void o_pin_end(TOPLEVEL *w_current, int x, int y);
void o_pin_rubberpin(TOPLEVEL *w_current, int x, int y);
/* o_slot.c */
void o_slot_start(TOPLEVEL *w_current, OBJECT *list);
void o_slot_end(TOPLEVEL *w_current, char *string, int len);
/* o_stretch.c */
int o_stretch_start(TOPLEVEL *w_current, int x, int y);
void o_stretch_end(TOPLEVEL *w_current);
void o_stretch_motion(TOPLEVEL *w_current, int x, int y);
/* o_text.c */
void o_text_draw(TOPLEVEL *w_current, OBJECT *o_current);
void o_text_draw_xor(TOPLEVEL *w_current, int dx, int dy, OBJECT *o_current);
void o_text_input(TOPLEVEL *w_current);
void o_text_start(TOPLEVEL *w_current, int screen_x, int screen_y);
void o_text_end(TOPLEVEL *w_current);
void o_text_rubberattrib(TOPLEVEL *w_current);
void o_text_edit(TOPLEVEL *w_current, OBJECT *o_current);
void o_text_edit_end(TOPLEVEL *w_current, char *string, int len, int text_size);
/* parsecmd.c */
void usage(char *cmd);
int parse_commandline(int argc, char *argv[]);
/* x_attrsel.c */
gint change_attr(GtkWidget *gtklist, TOPLEVEL *w_current);
gint attr_set_show_name(GtkWidget *w, TOPLEVEL *w_current);
gint attr_set_show_value(GtkWidget *w, TOPLEVEL *w_current);
gint attr_set_show_both(GtkWidget *w, TOPLEVEL *w_current);
gint attr_set_visible(GtkWidget *w, TOPLEVEL *w_current);
gint attr_set_invisible(GtkWidget *w, TOPLEVEL *w_current);
gint attr_apply(GtkWidget *w, TOPLEVEL *w_current);
gint attr_cancel(GtkWidget *w, TOPLEVEL *w_current);
void setup_attr_selector(TOPLEVEL *w_current);
/* x_basic.c */
void x_repaint_background(TOPLEVEL *w_current);
void x_hscrollbar_set_ranges(TOPLEVEL *w_current);
void x_hscrollbar_update(TOPLEVEL *w_current);
void x_vscrollbar_set_ranges(TOPLEVEL *w_current);
void x_vscrollbar_update(TOPLEVEL *w_current);
void x_scrollbars_update(TOPLEVEL *w_current);
GtkWidget *x_create_dialog_box(GtkWidget **out_vbox, GtkWidget **out_action_area);
GtkWidget *x_create_dialog_box_horiz(GtkWidget **out_hbox, GtkWidget **out_action_area);
/* x_color.c */
void x_color_allocate_all(void);
GdkColor *x_get_color(int color);
GdkColor *x_get_darkcolor(int color);
int x_color_get_name(int index, char *string);
/* x_dialog.c */
void destroy_window(GtkWidget *widget, GtkWidget **window);
void text_input_dialog_apply(GtkWidget *w, TOPLEVEL *w_current);
void text_input_dialog_close(GtkWidget *w, TOPLEVEL *w_current);
void text_input_dialog(TOPLEVEL *w_current);
void text_edit_dialog_ok(GtkWidget *w, TOPLEVEL *w_current);
void text_edit_dialog_cancel(GtkWidget *w, TOPLEVEL *w_current);
void text_edit_dialog(TOPLEVEL *w_current, char *string, int text_size);
void exit_dialog_ok(GtkWidget *w, TOPLEVEL *w_current);
void exit_dialog_cancel(GtkWidget *w, TOPLEVEL *w_current);
void exit_dialog(TOPLEVEL *w_current);
void arc_angles_dialog_ok(GtkWidget *w, TOPLEVEL *w_current);
void arc_angles_dialog_cancel(GtkWidget *w, TOPLEVEL *w_current);
void arc_angle_dialog(TOPLEVEL *w_current);
void translate_dialog_ok(GtkWidget *w, TOPLEVEL *w_current);
void translate_dialog_cancel(GtkWidget *w, TOPLEVEL *w_current);
void translate_dialog(TOPLEVEL *w_current);
void text_size_dialog_ok(GtkWidget *w, TOPLEVEL *w_current);
void text_size_dialog_cancel(GtkWidget *w, TOPLEVEL *w_current);
void text_size_dialog(TOPLEVEL *w_current);
void snap_size_dialog_ok(GtkWidget *w, TOPLEVEL *w_current);
void snap_size_dialog_cancel(GtkWidget *w, TOPLEVEL *w_current);
void snap_size_dialog(TOPLEVEL *w_current);
void slot_edit_dialog_ok(GtkWidget *w, TOPLEVEL *w_current);
void slot_edit_dialog_cancel(GtkWidget *w, TOPLEVEL *w_current);
void slot_edit_dialog(TOPLEVEL *w_current, char *string);
void about_dialog_close(GtkWidget *w, TOPLEVEL *w_current);
void about_dialog(TOPLEVEL *w_current);
void coord_dialog_close(GtkWidget *w, TOPLEVEL *w_current);
void coord_display_update(TOPLEVEL *w_current, int x, int y);
void coord_dialog(TOPLEVEL *w_current, int x, int y);
gint color_set(GtkWidget *w, gpointer data);
char *index2functionstring(int index);
void color_edit_dialog_close(GtkWidget *w, TOPLEVEL *w_current);
void color_edit_dialog_apply(GtkWidget *w, TOPLEVEL *w_current);
void color_edit_dialog(TOPLEVEL *w_current);
void x_dialog_hotkeys_close(GtkWidget *w, TOPLEVEL *w_current);
void x_dialog_hotkeys_free_all(void);
void x_dialog_hotkeys_fill(char *string);
void x_dialog_hotkeys(TOPLEVEL *w_current);
/* x_event.c */
gint x_event_expose(GtkWidget *widget, GdkEventExpose *event, TOPLEVEL *w_current);
gint x_event_button_pressed(GtkWidget *widget, GdkEventButton *event, TOPLEVEL *w_current);
gint x_event_button_released(GtkWidget *widget, GdkEventButton *event, TOPLEVEL *w_current);
gint x_event_motion(GtkWidget *widget, GdkEventMotion *event, TOPLEVEL *w_current);
gint x_event_configure(GtkWidget *widget, GdkEventConfigure *event, TOPLEVEL *w_current);
void x_manual_resize(TOPLEVEL *w_current);
void x_event_hschanged(GtkAdjustment *adj, TOPLEVEL *w_current);
void x_event_vschanged(GtkAdjustment *adj, TOPLEVEL *w_current);
gint x_event_enter(GtkWidget *widget, GdkEventCrossing *event, TOPLEVEL *w_current);
gint x_event_key_press(GtkWidget *widget, GdkEventKey *event, TOPLEVEL *w_current);
/* x_fileselect.c */
void x_fileselect_destroy_window(GtkWidget *widget, FILEDIALOG *f_current);
void x_fileselect_init_list_buffers(FILEDIALOG *f_current);
void x_fileselect_free_list_buffers(FILEDIALOG *f_current);
void x_fileselect_update_dirfile(FILEDIALOG *f_current, char *filename);
void x_fileselect_setup_list_buffers(FILEDIALOG *f_current, int num_files, int num_directories);
int x_fileselect_include_file(char *filename, int filter_type);
void x_fileselect_fill_lists(FILEDIALOG *f_current);
gint x_fileselect_sch_files(GtkWidget *w, FILEDIALOG *f_current);
gint x_fileselect_sym_files(GtkWidget *w, FILEDIALOG *f_current);
gint x_fileselect_both_files(GtkWidget *w, FILEDIALOG *f_current);
gint x_fileselect_all_files(GtkWidget *w, FILEDIALOG *f_current);
int x_fileselect_preview_checkbox(GtkWidget *widget, FILEDIALOG *f_current);
void x_fileselect_saveas_close(GtkWidget *w, FILEDIALOG *f_current);
void x_fileselect_saveas(GtkWidget *w, FILEDIALOG *f_current);
void x_fileselect_change_dir(FILEDIALOG *f_current, char *new_directory);
void x_fileselect_open_file(GtkWidget *w, FILEDIALOG *f_current);
void x_fileselect_dir_button(GtkWidget *widget, gint row, gint column, GdkEventButton *bevent, FILEDIALOG *f_current);
void x_fileselect_file_button(GtkWidget *widget, gint row, gint column, GdkEventButton *bevent, FILEDIALOG *f_current);
void x_fileselect_update_dirfile_saveas(FILEDIALOG *f_current, char *new_filename);
void x_fileselect_close(GtkWidget *w, FILEDIALOG *f_current);
void x_fileselect_search(GtkWidget *w, FILEDIALOG *f_current);
gint default_components(GtkWidget *w, TOPLEVEL *w_current);
gint embed_components(GtkWidget *w, TOPLEVEL *w_current);
gint include_components(GtkWidget *w, TOPLEVEL *w_current);
void x_fileselect_comp_fill_libs(FILEDIALOG *f_current);
void x_fileselect_comp_fill_components(FILEDIALOG *f_current, int row);
void x_fileselect_comp_update_current(FILEDIALOG *f_current, char *library, char *component);
void x_fileselect_change_clib(FILEDIALOG *f_current, char *new_clib, int row);
void x_fileselect_lib_select(GtkWidget *widget, gint row, gint column, GdkEventButton *bevent, FILEDIALOG *f_current);
void x_fileselect_comp_select(GtkWidget *widget, gint row, gint column, GdkEventButton *bevent, FILEDIALOG *f_current);
void x_fileselect_comp_apply(GtkWidget *w, FILEDIALOG *f_current);
void x_fileselect_comp_close(GtkWidget *w, FILEDIALOG *f_current);
int x_fileselect_search_library(FILEDIALOG *f_current, char *library, char *string);
void x_fileselect_comp_search(GtkWidget *w, FILEDIALOG *f_current);
void x_fileselect_setup(TOPLEVEL *w_current, int type, int filesel_type);
/* x_grid.c */
void x_grid_draw(TOPLEVEL *w_current);
/* x_image.c */
gint image_320(GtkWidget *w, TOPLEVEL *w_current);
gint image_640(GtkWidget *w, TOPLEVEL *w_current);
gint image_800(GtkWidget *w, TOPLEVEL *w_current);
gint image_1024(GtkWidget *w, TOPLEVEL *w_current);
gint image_1280(GtkWidget *w, TOPLEVEL *w_current);
gint image_1600(GtkWidget *w, TOPLEVEL *w_current);
gint x_image_write(GtkWidget *w, TOPLEVEL *w_current);
gint x_image_cancel(GtkWidget *w, TOPLEVEL *w_current);
void x_image_setup(TOPLEVEL *w_current, char *filename);
/* x_log.c */
void x_log_init(char *cwd, char *filename);
void x_log_read(void);
void x_log_update(char *buf);
void x_log_close(GtkWidget *w, TOPLEVEL *w_current);
void x_log_free(void);
void x_log_setup_win(TOPLEVEL *w_current);
/* x_menus.c */
void print_hello(gpointer data, guint callback_action, GtkWidget *widget);
void get_main_menu(TOPLEVEL *w_current, GtkWidget **menubar);
void get_main_popup(TOPLEVEL *w_current, GtkWidget **menu);
gint do_popup(TOPLEVEL *w_current, GdkEventButton *event);
/* x_pagesel.c */
void update_page_manager(GtkWidget *widget, TOPLEVEL *w_current);
gint save_page(GtkWidget *gtklist, TOPLEVEL *w_current);
gint file_new(GtkWidget *gtklist, TOPLEVEL *w_current);
gint file_open(GtkWidget *gtklist, TOPLEVEL *w_current);
gint page_close(GtkWidget *gtklist, TOPLEVEL *w_current);
gint page_discard(GtkWidget *gtklist, TOPLEVEL *w_current);
gint change_page(GtkWidget *widget, gint row, gint column, GdkEventButton *bevent);
void setup_page_selector(TOPLEVEL *w_current);
/* x_preview.c */
void x_preview_update(TOPLEVEL *preview, char *directory, char *filename);
void x_preview_close(TOPLEVEL *w_current);
gint x_preview_expose(GtkWidget *widget, GdkEventExpose *event, TOPLEVEL *w_current);
gint x_preview_button_pressed(GtkWidget *widget, GdkEventButton *event, TOPLEVEL *w_current);
gint x_preview_motion(GtkWidget *widget, GdkEventMotion *event, TOPLEVEL *w_current);
gint x_preview_key_press(GtkWidget *widget, GdkEventKey *event, TOPLEVEL *w_current);
void x_preview_create_drawing(GtkWidget *drawbox, TOPLEVEL *w_current);
void x_preview_setup_rest(TOPLEVEL *preview);
TOPLEVEL *x_preview_setup(GtkWidget *xfwindow, GtkWidget *drawbox);
/* x_print.c */
gint print_landscape(GtkWidget *w, TOPLEVEL *w_current);
gint print_portrait(GtkWidget *w, TOPLEVEL *w_current);
gint x_print_set_window(GtkWidget *w, TOPLEVEL *w_current);
gint x_print_set_limits(GtkWidget *w, TOPLEVEL *w_current);
gint x_print_change_size(GtkWidget *gtklist, TOPLEVEL *w_current);
gint x_print_print(GtkWidget *w, TOPLEVEL *w_current);
gint x_print_cancel(GtkWidget *w, TOPLEVEL *w_current);
void x_print_setup(TOPLEVEL *w_current, char *filename);
/* x_script.c */
void script_selection_ok(GtkWidget *w, TOPLEVEL *w_current);
void script_selection_cancel(GtkWidget *w, TOPLEVEL *w_current);
void setup_script_selector(TOPLEVEL *w_current);
/* x_stroke.c */
void x_stroke_add_point(TOPLEVEL *w_current, int x, int y);
void x_stroke_erase_all(TOPLEVEL *w_current);
void x_stroke_free_all(void);
int x_stroke_search_execute(char *sequence);
/* x_window.c */
TOPLEVEL *x_window_add(TOPLEVEL *w_head, TOPLEVEL *w_current);
void x_window_add_head(void);
void x_window_free_head(void);
void x_window_delete(TOPLEVEL *w_head, TOPLEVEL *w_current);
void x_window_setup_world(TOPLEVEL *w_current);
void x_window_setup_rest(TOPLEVEL *w_current);
void x_window_setup_colors(void);
void x_window_free_colors(TOPLEVEL *w_current);
void x_window_setup_gc(TOPLEVEL *w_current);
void x_window_free_gc(TOPLEVEL *w_current);
void x_window_create_drawing(GtkWidget *drawbox, TOPLEVEL *w_current);
void x_window_setup_draw_events(TOPLEVEL *w_current);
void x_window_create_main(TOPLEVEL *w_current);
TOPLEVEL *x_window_create_new(void);
void x_window_close(TOPLEVEL *w_current);
void x_window_close_all(void);
TOPLEVEL *x_window_get_ptr(int wid);
TOPLEVEL *x_window_search_page_clist(GtkWidget *findme);
