File: prototype.h

package info (click to toggle)
geda-gschem 20061020-2
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 4,764 kB
  • ctags: 2,308
  • sloc: ansic: 34,317; sh: 4,442; makefile: 595; lisp: 506; yacc: 316; sed: 16
file content (922 lines) | stat: -rw-r--r-- 55,022 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
/* $Id: prototype.h,v 1.147 2006/10/20 22:58:57 pbernaud Exp $ */

/* a_pan.c */
void a_pan_general(TOPLEVEL *w_current, double world_cx, double world_cy, double relativ_zoom_factor, int flags);
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, int pan_flags);
void a_zoom_extents(TOPLEVEL *w_current, OBJECT *o_current, int pan_flags);
void a_zoom_box(TOPLEVEL *w_current, int pan_flags);
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_postscript(SCM filename);
SCM g_funcs_image(SCM filename);
SCM g_funcs_exit(void);
SCM g_funcs_log(SCM msg);
SCM g_funcs_msg(SCM msg);
SCM g_funcs_confirm(SCM msg);
SCM g_funcs_filesel(SCM msg, SCM templ, SCM flags);
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);
SCM get_selected_component_attributes(TOPLEVEL *toplevel);
SCM get_selected_filename(TOPLEVEL *toplevel);
/* g_hook.c */
SCM g_make_attrib_smob_list(TOPLEVEL *curr_w, OBJECT *curr_object);
SCM g_set_attrib_value_x(SCM attrib_smob, SCM scm_value);
SCM g_add_attrib(SCM object, SCM attrib_name, 
		 SCM attrib_value, SCM scm_vis, SCM scm_show);
SCM g_get_pin_ends(SCM object);
SCM
g_set_attrib_text_properties(SCM attrib_smob, SCM scm_colorname, SCM scm_size, 
			     SCM scm_alignment, SCM scm_rotation, SCM scm_x,
			     SCM scm_y);
SCM g_get_object_bounds (SCM object_smob, SCM scm_inc_attribs);
SCM g_get_object_pins (SCM object_smob);
SCM g_add_component(SCM page_smob, SCM scm_comp_name, SCM scm_x, SCM scm_y, 
		    SCM scm_angle, SCM scm_selectable, SCM scm_mirror);
SCM g_get_objects_in_page(SCM page_smob);
/* g_keys.c */
void set_window_current_key(TOPLEVEL *w_current);
int g_keys_execute(int state, int keyval);
SCM g_keys_file_new(void);
SCM g_keys_file_new_window(void);
SCM g_keys_file_open(void);
SCM g_keys_file_script(void);
SCM g_keys_file_save(void);
SCM g_keys_file_save_as(void);
SCM g_keys_file_save_all(void);
SCM g_keys_file_print(void);
SCM g_keys_file_write_png(void);
SCM g_keys_file_close(void);
SCM g_keys_file_quit(void);
SCM g_keys_edit_undo(void);
SCM g_keys_edit_redo(void);
SCM g_keys_edit_select(void);
SCM g_keys_edit_copy(void);
SCM g_keys_edit_copy_hotkey(void);
SCM g_keys_edit_mcopy(void);
SCM g_keys_edit_mcopy_hotkey(void);
SCM g_keys_edit_move(void);
SCM g_keys_edit_move_hotkey(void);
SCM g_keys_edit_delete(void);
SCM g_keys_edit_rotate_90(void);
SCM g_keys_edit_rotate_90_hotkey(void);
SCM g_keys_edit_mirror(void);
SCM g_keys_edit_mirror_hotkey(void);
SCM g_keys_edit_slot(void);
SCM g_keys_edit_color(void);
SCM g_keys_edit_edit(void);
SCM g_keys_edit_text(void);
SCM g_keys_edit_lock(void);
SCM g_keys_edit_unlock(void);
SCM g_keys_edit_linetype(void);
SCM g_keys_edit_filltype(void);
SCM g_keys_edit_translate(void);
SCM g_keys_edit_embed(void);
SCM g_keys_edit_unembed(void);
SCM g_keys_edit_update(void);
SCM g_keys_edit_show_hidden(void);
SCM g_keys_edit_make_visible(void);
SCM g_keys_edit_find(void);
SCM g_keys_edit_show_text(void);
SCM g_keys_edit_hide_text(void);
SCM g_keys_edit_autonumber_text(void);
SCM g_keys_buffer_copy1(void);
SCM g_keys_buffer_copy2(void);
SCM g_keys_buffer_copy3(void);
SCM g_keys_buffer_copy4(void);
SCM g_keys_buffer_copy5(void);
SCM g_keys_buffer_cut1(void);
SCM g_keys_buffer_cut2(void);
SCM g_keys_buffer_cut3(void);
SCM g_keys_buffer_cut4(void);
SCM g_keys_buffer_cut5(void);
SCM g_keys_buffer_paste1(void);
SCM g_keys_buffer_paste2(void);
SCM g_keys_buffer_paste3(void);
SCM g_keys_buffer_paste4(void);
SCM g_keys_buffer_paste5(void);
SCM g_keys_buffer_paste1_hotkey(void);
SCM g_keys_buffer_paste2_hotkey(void);
SCM g_keys_buffer_paste3_hotkey(void);
SCM g_keys_buffer_paste4_hotkey(void);
SCM g_keys_buffer_paste5_hotkey(void);
SCM g_keys_view_redraw(void);
SCM g_keys_view_zoom_full(void);
SCM g_keys_view_zoom_extents(void);
SCM g_keys_view_zoom_in(void);
SCM g_keys_view_zoom_out(void);
SCM g_keys_view_zoom_in_hotkey(void);
SCM g_keys_view_zoom_out_hotkey(void);
SCM g_keys_view_zoom_box(void);
SCM g_keys_view_zoom_box_hotkey(void);
SCM g_keys_view_pan(void);
SCM g_keys_view_pan_left(void);
SCM g_keys_view_pan_right(void);
SCM g_keys_view_pan_up(void);
SCM g_keys_view_pan_down(void);
SCM g_keys_view_pan_hotkey(void);
SCM g_keys_view_update_cues(void);
SCM g_keys_page_manager(void);
SCM g_keys_page_next(void);
SCM g_keys_page_prev(void);
SCM g_keys_page_new(void);
SCM g_keys_page_close(void);
SCM g_keys_page_revert(void);
SCM g_keys_page_discard(void);
SCM g_keys_page_print(void);
SCM g_keys_add_component(void);
SCM g_keys_add_attribute(void);
SCM g_keys_add_attribute_hotkey(void);
SCM g_keys_add_net(void);
SCM g_keys_add_net_hotkey(void);
SCM g_keys_add_bus(void);
SCM g_keys_add_bus_hotkey(void);
SCM g_keys_add_text(void);
SCM g_keys_add_line(void);
SCM g_keys_add_line_hotkey(void);
SCM g_keys_add_box(void);
SCM g_keys_add_box_hotkey(void);
SCM g_keys_add_picture(void);
SCM g_keys_add_picture_hotkey(void);
SCM g_keys_add_circle(void);
SCM g_keys_add_circle_hotkey(void);
SCM g_keys_add_arc(void);
SCM g_keys_add_arc_hotkey(void);
SCM g_keys_add_pin(void);
SCM g_keys_add_pin_hotkey(void);
SCM g_keys_hierarchy_down_schematic(void);
SCM g_keys_hierarchy_down_symbol(void);
SCM g_keys_hierarchy_up(void);
SCM g_keys_hierarchy_documentation(void);
SCM g_keys_attributes_attach(void);
SCM g_keys_attributes_detach(void);
SCM g_keys_attributes_show_name(void);
SCM g_keys_attributes_show_value(void);
SCM g_keys_attributes_show_both(void);
SCM g_keys_attributes_visibility_toggle(void);
SCM g_keys_script_console(void);
SCM g_keys_options_text_size(void);
SCM g_keys_options_afeedback(void);
SCM g_keys_options_grid(void);
SCM g_keys_options_snap(void);
SCM g_keys_options_snap_size(void);
SCM g_keys_options_rubberband(void);
SCM g_keys_options_show_log_window(void);
SCM g_keys_options_show_coord_window(void);
SCM g_keys_misc(void);
SCM g_keys_misc2(void);
SCM g_keys_misc3(void);
SCM g_keys_help_about(void);
SCM g_keys_help_manual(void);
SCM g_keys_help_hotkeys(void);
SCM g_keys_cancel(void);
SCM g_get_selected_filename(void);
SCM g_get_selected_component_attributes(void);
/* g_rc.c */
void g_rc_parse_gtkrc();
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_attribute_name(SCM path);
SCM g_rc_scheme_directory(SCM path);
SCM g_rc_bitmap_directory(SCM path);
SCM g_rc_font_directory(SCM path);
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_image_size(SCM width, SCM height);
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);
SCM g_rc_enforce_hierarchy(SCM mode);
SCM g_rc_text_origin_marker(SCM mode);
SCM g_rc_fast_mousepan(SCM mode);
SCM g_rc_raise_dialog_boxes_on_expose(SCM mode);
SCM g_rc_attribute_promotion(SCM mode);
SCM g_rc_promote_invisible(SCM mode);
SCM g_rc_keep_invisible(SCM mode);
SCM g_rc_continue_component_place(SCM mode);
SCM g_rc_undo_levels(SCM levels);
SCM g_rc_undo_control(SCM mode);
SCM g_rc_undo_type(SCM mode);
SCM g_rc_draw_grips(SCM mode);
SCM g_rc_netconn_rubberband(SCM mode);
SCM g_rc_sort_component_library(SCM mode);
SCM g_rc_add_menu(SCM menu_name, SCM menu_items);
SCM g_rc_window_size(SCM width, SCM height);
SCM g_rc_warp_cursor(SCM mode);
SCM g_rc_toolbars(SCM mode);
SCM g_rc_handleboxes(SCM mode);
SCM g_rc_setpagedevice_orientation(SCM mode);
SCM g_rc_setpagedevice_pagesize(SCM mode);
SCM g_rc_bus_ripper_size(SCM size);
SCM g_rc_bus_ripper_type(SCM mode);
SCM g_rc_bus_ripper_symname(SCM scmsymname);
SCM g_rc_bus_ripper_rotation(SCM mode);
SCM g_rc_force_boundingbox(SCM mode);
SCM g_rc_grid_dot_size(SCM dotsize);
SCM g_rc_grid_mode(SCM mode);
SCM g_rc_grid_fixed_threshold(SCM spacing);
SCM g_rc_output_vector_threshold(SCM numlines);
SCM g_rc_add_attribute_offset(SCM offset);
SCM g_rc_auto_save_interval(SCM seconds);
SCM g_rc_drag_can_move(SCM mode);
SCM g_rc_mousepan_gain(SCM mode);
SCM g_rc_keyboardpan_gain(SCM mode);
SCM g_rc_print_command(SCM mode);
/* g_register.c */
void g_register_funcs(void);
/* globals.c */
/* gschem.c */
void gschem_quit(void);
void main_prog(void *closure, int argc, char *argv[]);
int main(int argc, char *argv[]);
/* i_basic.c */
void i_allow_expose(void);
void i_show_state(TOPLEVEL *w_current, const char *message);
void i_set_state(TOPLEVEL *w_current, enum x_states newstate);
void i_set_state_msg(TOPLEVEL *w_current, enum x_states newstate, const char *message);
void i_update_left_button(const char *string);
void i_update_middle_button(TOPLEVEL *w_current, void *func_ptr, const char *string);
void i_update_right_button(const char *string);
void i_update_toolbar(TOPLEVEL *w_current);
void i_update_menus(TOPLEVEL *w_current);
void i_update_cursor(TOPLEVEL *w_current);
void i_set_filename(TOPLEVEL *w_current, const char *string);
/* i_callbacks.c */
void i_callback_file_new(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_toolbar_file_new(GtkWidget *widget, gpointer data);
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_toolbar_file_open(GtkWidget *widget, gpointer data);
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_toolbar_file_save(GtkWidget *widget, gpointer data);
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_undo(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_toolbar_edit_undo(GtkWidget *widget, gpointer data);
void i_callback_edit_redo(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_toolbar_edit_redo(GtkWidget *widget, gpointer data);
void i_callback_edit_select(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_toolbar_edit_select(GtkWidget *widget, gpointer data);
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_mcopy(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_mcopy_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_text(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_update(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_show_hidden(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_make_visible(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_find(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_hide_text(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_show_text(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_autonumber_text(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_linetype(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_edit_filltype(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_extents(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_left(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_view_pan_right(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_view_pan_up(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_view_pan_down(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_revert(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_buffer_copy1(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_buffer_copy2(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_buffer_copy3(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_buffer_copy4(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_buffer_copy5(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_buffer_cut1(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_buffer_cut2(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_buffer_cut3(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_buffer_cut4(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_buffer_cut5(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_buffer_paste1(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_buffer_paste2(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_buffer_paste3(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_buffer_paste4(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_buffer_paste5(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_buffer_paste1_hotkey(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_buffer_paste2_hotkey(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_buffer_paste3_hotkey(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_buffer_paste4_hotkey(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_buffer_paste5_hotkey(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_add_component(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_toolbar_add_component(GtkWidget *widget, gpointer data);
void i_callback_add_attribute(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_add_attribute_hotkey(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_toolbar_add_net(GtkWidget *widget, gpointer data);
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_toolbar_add_bus(GtkWidget *widget, gpointer data);
void i_callback_add_text(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_toolbar_add_text(GtkWidget *widget, gpointer data);
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_picture(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_add_picture_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_down_schematic(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_hierarchy_down_symbol(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_hierarchy_up(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_hierarchy_documentation(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_rubberband(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_misc2(gpointer data, guint callback_action, GtkWidget *widget);
void i_callback_misc3(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_manual(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);
gboolean i_callback_close_wm(GtkWidget *widget, GdkEvent *event, gpointer data);
/* 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_solid(GdkWindow *w, GdkGC *gc, GdkColor *color, GdkCapStyle cap, gint x, gint y, gint radius, gint angle1, gint angle2, gint arc_width, gint length, gint space);
void o_arc_draw_dotted(GdkWindow *w, GdkGC *gc, GdkColor *color, GdkCapStyle cap, gint x, gint y, gint radius, gint angle1, gint angle2, gint arc_width, gint length, gint space);
void o_arc_draw_dashed(GdkWindow *w, GdkGC *gc, GdkColor *color, GdkCapStyle cap, gint x, gint y, gint radius, gint angle1, gint angle2, gint arc_width, gint length, gint space);
void o_arc_draw_center(GdkWindow *w, GdkGC *gc, GdkColor *color, GdkCapStyle cap, gint x, gint y, gint radius, gint angle1, gint angle2, gint arc_width, gint length, gint space);
void o_arc_draw_phantom(GdkWindow *w, GdkGC *gc, GdkColor *color, GdkCapStyle cap, gint x, gint y, gint radius, gint angle1, gint angle2, gint arc_width, gint length, gint space);
void o_arc_erase(TOPLEVEL *w_current, OBJECT *o_current);
void o_arc_eraserubber(TOPLEVEL *w_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 x, int y);
void o_arc_end3(TOPLEVEL *w_current, int x, int y);
void o_arc_end4(TOPLEVEL *w_current, int start_angle, int end_angle);
void o_arc_rubberarc(TOPLEVEL *w_current, int x, int y, int whichone);
void o_arc_rubberarc_xor(TOPLEVEL *w_current);
void o_arc_draw_grips(TOPLEVEL *w_current, OBJECT *o_current);
void o_arc_erase_grips(TOPLEVEL *w_current, OBJECT *o_current);
/* o_attrib.c */
void o_attrib_add_selected(TOPLEVEL *w_current, SELECTION *selection_list, OBJECT *selected);
void o_attrib_toggle_visibility(TOPLEVEL *w_current, SELECTION *list);
void o_attrib_toggle_show_name_value(TOPLEVEL *w_current, SELECTION *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);
OBJECT *o_attrib_add_attrib(TOPLEVEL *w_current, char *text_string, int visibility, int show_name_value, OBJECT *object);
/* o_basic.c */
void o_redraw_all(TOPLEVEL *w_current);
void o_redraw_all_fast(TOPLEVEL *w_current);
void o_redraw(TOPLEVEL *w_current, OBJECT *object_list);
void o_unselect_all(TOPLEVEL *w_current);
void o_draw_list(TOPLEVEL *w_current, GList *list);
void o_draw_selected(TOPLEVEL *w_current);
void o_erase_selected(TOPLEVEL *w_current);
void o_erase_single(TOPLEVEL *w_current, OBJECT *object);
void o_drawbounding(TOPLEVEL *w_current, OBJECT *o_list, SELECTION *s_list, GdkColor *color, int firsttime);
void o_erasebounding(TOPLEVEL *w_current, OBJECT *o_list, SELECTION *s_list);
int o_erase_rubber(TOPLEVEL *w_current);
int o_redraw_cleanstates(TOPLEVEL *w_current);
/* o_box.c */
void o_box_draw(TOPLEVEL *w_current, OBJECT *o_current);
void o_box_draw_solid(GdkDrawable *w, GdkGC *gc, GdkColor *color, GdkCapStyle cap, gint filled, gint x, gint y, gint width, gint height, gint line_width, gint length, gint space);
void o_box_draw_dotted(GdkDrawable *w, GdkGC *gc, GdkColor *color, GdkCapStyle cap, gint filled, gint x, gint y, gint width, gint height, gint line_width, gint length, gint space);
void o_box_draw_dashed(GdkDrawable *w, GdkGC *gc, GdkColor *color, GdkCapStyle cap, gint filled, gint x, gint y, gint width, gint height, gint line_width, gint length, gint space);
void o_box_draw_center(GdkDrawable *w, GdkGC *gc, GdkColor *color, GdkCapStyle cap, gint filled, gint x, gint y, gint width, gint height, gint line_width, gint length, gint space);
void o_box_draw_phantom(GdkDrawable *w, GdkGC *gc, GdkColor *color, GdkCapStyle cap, gint filled, gint x, gint y, gint width, gint height, gint line_width, gint length, gint space);
void o_box_fill_hollow(GdkDrawable *w, GdkGC *gc, GdkColor *color, gint x, gint y, gint width, gint height, gint fill_width, gint angle1, gint pitch1, gint angle2, gint pitch2);
void o_box_fill_fill(GdkDrawable *w, GdkGC *gc, GdkColor *color, gint x, gint y, gint width, gint height, gint fill_width, gint angle1, gint pitch1, gint angle2, gint pitch2);
void o_box_fill_hatch(GdkDrawable *w, GdkGC *gc, GdkColor *color, gint x, gint y, gint width, gint height, gint fill_width, gint angle1, gint pitch1, gint angle2, gint pitch2);
void o_box_fill_mesh(GdkDrawable *w, GdkGC *gc, GdkColor *color, gint x, gint y, gint width, gint height, gint fill_width, gint angle1, gint pitch1, gint angle2, gint pitch2);
void o_box_erase(TOPLEVEL *w_current, OBJECT *o_current);
void o_box_eraserubber(TOPLEVEL *w_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);
void o_box_rubberbox_xor(TOPLEVEL *w_current);
void o_box_draw_grips(TOPLEVEL *w_current, OBJECT *o_current);
void o_box_erase_grips(TOPLEVEL *w_current, OBJECT *o_current);
/* o_buffer.c */
void o_buffer_copy(TOPLEVEL *w_current, int buf_num);
void o_buffer_cut(TOPLEVEL *w_current, int buf_num);
void o_buffer_paste_start(TOPLEVEL *w_current, int screen_x, int screen_y, int buf_num);
void o_buffer_paste_end(TOPLEVEL *w_current, int screen_x, int screen_y, int buf_num);
void o_buffer_paste_rubberpaste(TOPLEVEL *w_current, int buf_num);
void o_buffer_init(void);
void o_buffer_free(TOPLEVEL *w_current);
/* o_bus.c */
void o_bus_draw(TOPLEVEL *w_current, OBJECT *o_current);
void o_bus_erase(TOPLEVEL *w_current, OBJECT *o_current);
void o_bus_draw_xor(TOPLEVEL *w_current, int dx, int dy, OBJECT *o_current);
void o_bus_draw_xor_single(TOPLEVEL *w_current, int dx, int dy, int whichone, OBJECT *o_current);
void o_bus_start(TOPLEVEL *w_current, int x, int y);
int 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_fill_hollow(GdkDrawable *w, GdkGC *gc, GdkColor *color, gint x, gint y, gint radius, gint width, gint angle1, gint pitch1, gint angle2, gint pitch2);
void o_circle_fill_fill(GdkDrawable *w, GdkGC *gc, GdkColor *color, gint x, gint y, gint radius, gint width, gint angle1, gint pitch1, gint angle2, gint pitch2);
void o_circle_fill_hatch(GdkDrawable *w, GdkGC *gc, GdkColor *color, gint x, gint y, gint radius, gint width, gint angle1, gint pitch1, gint angle2, gint pitch2);
void o_circle_fill_mesh(GdkDrawable *w, GdkGC *gc, GdkColor *color, gint x, gint y, gint radius, gint width, gint angle1, gint pitch1, gint angle2, gint pitch2);
void o_circle_erase(TOPLEVEL *w_current, OBJECT *o_current);
void o_circle_eraserubber(TOPLEVEL *w_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);
void o_circle_rubbercircle_xor(TOPLEVEL *w_current);
void o_circle_draw_grips(TOPLEVEL *w_current, OBJECT *o_current);
void o_circle_erase_grips(TOPLEVEL *w_current, OBJECT *o_current);
/* o_complex.c */
void o_complex_draw(TOPLEVEL *w_current, OBJECT *o_current);
void o_complex_erase(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_place_rotate(TOPLEVEL *w_current);
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_display_selection(TOPLEVEL *w_current, int x1, int y1, SELECTION *head);
void o_complex_translate2(TOPLEVEL *w_current, int dx, int dy, OBJECT *object);
void o_complex_translate_all(TOPLEVEL *w_current, int offset);
void o_complex_translate_selection(TOPLEVEL *w_current, int dx, int dy, SELECTION *head);
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_copy.c */
void o_copy_start(TOPLEVEL *w_current, int x, int y);
void o_copy_end(TOPLEVEL *w_current);
/* o_cue.c */
void o_cue_redraw_all(TOPLEVEL *w_current, OBJECT *head);
void o_cue_draw_lowlevel(TOPLEVEL *w_current, OBJECT *object, int whichone);
void o_cue_erase_lowlevel(TOPLEVEL *w_current, OBJECT *object, int whichone);
void o_cue_draw_lowlevel_midpoints(TOPLEVEL *w_current, OBJECT *object);
void o_cue_draw_single(TOPLEVEL *w_current, OBJECT *object);
void o_cue_erase_single(TOPLEVEL *w_current, OBJECT *object);
void o_cue_undraw(TOPLEVEL *w_current, OBJECT *object);
void o_cue_undraw_complex(TOPLEVEL *w_current, OBJECT *object);
void o_cue_draw_list(TOPLEVEL *w_current, GList *object_list);
void o_cue_undraw_list(TOPLEVEL *w_current, GList *object_list);
void o_cue_undraw_objects(TOPLEVEL *w_current, OBJECT *list);
/* o_delete.c */
void o_delete_net(TOPLEVEL *w_current, OBJECT *obj);
void o_delete_bus(TOPLEVEL *w_current, OBJECT *obj);
void o_delete_complex(TOPLEVEL *w_current, OBJECT *obj);
void o_delete_text(TOPLEVEL *w_current, OBJECT *obj);
void o_delete(TOPLEVEL *w_current);
/* o_find.c */
gboolean o_find_object(TOPLEVEL *w_current, int screen_x, int screen_y,
		       gboolean deselect_afterwards);
gboolean o_find_selected_object(TOPLEVEL *w_current, int screen_x, int screen_y);
/* o_grips.c */
OBJECT *o_grips_search(TOPLEVEL *w_current, int x, int y, int *whichone);
OBJECT *o_grips_search_arc(TOPLEVEL *w_current, OBJECT *o_current, int x, int y, int size, int *whichone);
OBJECT *o_grips_search_box(TOPLEVEL *w_current, OBJECT *o_current, int x, int y, int size, int *whichone);
OBJECT *o_grips_search_picture(TOPLEVEL *w_current, OBJECT *o_current, int x, int y, int size, int *whichone);
OBJECT *o_grips_search_circle(TOPLEVEL *w_current, OBJECT *o_current, int x, int y, int size, int *whichone);
OBJECT *o_grips_search_line(TOPLEVEL *w_current, OBJECT *o_current, int x, int y, int size, int *whichone);
int o_grips_start(TOPLEVEL *w_current, int x, int y);
void o_grips_start_arc(TOPLEVEL *w_current, OBJECT *o_current, int x, int y, int whichone);
void o_grips_start_box(TOPLEVEL *w_current, OBJECT *o_current, int x, int y, int whichone);
void o_grips_start_picture(TOPLEVEL *w_current, OBJECT *o_current, int x, int y, int whichone);
void o_grips_start_circle(TOPLEVEL *w_current, OBJECT *o_current, int x, int y, int whichone);
void o_grips_start_line(TOPLEVEL *w_current, OBJECT *o_current, int x, int y, int whichone);
void o_grips_motion(TOPLEVEL *w_current, int x, int y);
void o_grips_motion_arc(TOPLEVEL *w_current, int x, int y, int whichone);
void o_grips_motion_box(TOPLEVEL *w_current, int x, int y, int whichone);
void o_grips_motion_picture(TOPLEVEL *w_current, int x, int y, int whichone);
void o_grips_motion_circle(TOPLEVEL *w_current, int x, int y, int whichone);
void o_grips_motion_line(TOPLEVEL *w_current, int x, int y, int whichone);
void o_grips_end(TOPLEVEL *w_current);
void o_grips_end_arc(TOPLEVEL *w_current, OBJECT *o_current, int whichone);
void o_grips_end_box(TOPLEVEL *w_current, OBJECT *o_current, int whichone);
void o_grips_end_picture(TOPLEVEL *w_current, OBJECT *o_current, int whichone);
void o_grips_end_circle(TOPLEVEL *w_current, OBJECT *o_current, int whichone);
void o_grips_end_line(TOPLEVEL *w_current, OBJECT *o_current, int whichone);
int o_grips_size(TOPLEVEL *w_current);
void o_grips_draw(TOPLEVEL *w_current, int x, int y);
void o_grips_erase(TOPLEVEL *w_current, int x, int y);
/* o_line.c */
void o_line_draw(TOPLEVEL *w_current, OBJECT *o_current);
void o_line_draw_solid(GdkWindow *w, GdkGC *gc, GdkColor *color, GdkCapStyle cap, gint x1, gint y1, gint x2, gint y2, gint line_width, gint length, gint space);
void o_line_draw_dotted(GdkWindow *w, GdkGC *gc, GdkColor *color, GdkCapStyle cap, gint x1, gint y1, gint x2, gint y2, gint line_width, gint length, gint space);
void o_line_draw_dashed(GdkWindow *w, GdkGC *gc, GdkColor *color, GdkCapStyle cap, gint x1, gint y1, gint x2, gint y2, gint line_width, gint length, gint space);
void o_line_draw_center(GdkWindow *w, GdkGC *gc, GdkColor *color, GdkCapStyle cap, gint x1, gint y1, gint x2, gint y2, gint line_width, gint length, gint space);
void o_line_draw_phantom(GdkWindow *w, GdkGC *gc, GdkColor *color, GdkCapStyle cap, gint x1, gint y1, gint x2, gint y2, gint line_width, gint length, gint space);
void o_line_erase(TOPLEVEL *w_current, OBJECT *o_current);
void o_line_eraserubber(TOPLEVEL *w_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);
void o_line_rubberline_xor(TOPLEVEL *w_current);
void o_line_draw_grips(TOPLEVEL *w_current, OBJECT *o_current);
void o_line_erase_grips(TOPLEVEL *w_current, OBJECT *o_current);
/* o_misc.c */
void o_edit(TOPLEVEL *w_current, SELECTION *list);
void o_lock(TOPLEVEL *w_current);
void o_unlock(TOPLEVEL *w_current);
void o_rotate_90(TOPLEVEL *w_current, SELECTION *list, 
		 int centerx, int centery);
void o_embed(TOPLEVEL *w_current, OBJECT *o_current);
void o_unembed(TOPLEVEL *w_current, OBJECT *o_current);
void o_mirror(TOPLEVEL *w_current, SELECTION *list, int centerx, int centery);
void o_edit_show_hidden_lowlevel(TOPLEVEL *w_current, OBJECT *o_list);
void o_edit_show_hidden(TOPLEVEL *w_current, OBJECT *o_list);
void o_edit_make_visible(TOPLEVEL *w_current, OBJECT *o_list);
int o_edit_find_text(TOPLEVEL *w_current, OBJECT *o_list, char *stext, int descend, int skip);
int autonumber_sort_numbers(gconstpointer a, gconstpointer b);
int autonumber_sort_xy(gconstpointer a, gconstpointer b);
int autonumber_sort_yx(gconstpointer a, gconstpointer b);
int autonumber_sort_diagonal(gconstpointer a, gconstpointer b);
void autonumber_find(TOPLEVEL * w_current, OBJECT * o_list, char *stext, GSList ** used_numbers, int skip);
void autonumber_text(TOPLEVEL *w_current, char *stext, GSList **used, int *currentnumber, int unnumbered, int searchfocus, int sortorder);
void o_edit_autonumber_text(TOPLEVEL * w_current, char * searchtext, int startnumber_i,int searchfocus, int unnumbered, int sortorder);
void o_edit_hide_specific_text(TOPLEVEL *w_current, OBJECT *o_list, char *stext);
void o_edit_show_specific_text(TOPLEVEL *w_current, OBJECT *o_list, char *stext);
void o_update_component(TOPLEVEL *w_current, OBJECT *o_current);
void o_autosave_backups(TOPLEVEL *toplevel);
/* o_move.c */
void o_move_start(TOPLEVEL *w_current, int x, int y);
void o_move_end_lowlevel(TOPLEVEL *w_current, OBJECT *list, int type, int diff_x, int diff_y, int screen_diff_x, int screen_diff_y, GList **other_objects, GList **connected_objects);
void o_move_end(TOPLEVEL *w_current);
int o_move_return_whichone(OBJECT *object, int x, int y);
void o_move_check_endpoint(TOPLEVEL *w_current, OBJECT *object);
void o_move_prep_rubberband(TOPLEVEL *w_current);
int o_move_zero_length(OBJECT *object);
void o_move_end_rubberband(TOPLEVEL *w_current, int world_diff_x, int world_diff_y, GList **objects, GList **other_objects, GList **connected_objects);
void o_move_stretch_rubberband(TOPLEVEL *w_current);
/* o_net.c */
void o_net_draw(TOPLEVEL *w_current, OBJECT *o_current);
void o_net_erase(TOPLEVEL *w_current, OBJECT *o_current);
void o_net_draw_xor(TOPLEVEL *w_current, int dx, int dy, OBJECT *o_current);
void o_net_draw_xor_single(TOPLEVEL *w_current, int dx, int dy, int whichone, OBJECT *o_current);
void o_net_start(TOPLEVEL *w_current, int x, int y);
int 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);
int o_net_add_busrippers(TOPLEVEL *w_current, OBJECT *net_obj, GList *other_objects);
/* o_picture.c */
void o_picture_start(TOPLEVEL *w_current, int x, int y);
void o_picture_end(TOPLEVEL *w_current, int x, int y);
void picture_selection_ok (GtkWidget *widget, TOPLEVEL *w_current);
void picture_selection_cancel (GtkWidget *widget, TOPLEVEL *w_current);
void picture_selection_dialog (TOPLEVEL *w_current);
void o_picture_eraserubber(TOPLEVEL *w_current);
void o_picture_rubberbox_xor(TOPLEVEL *w_current);
void o_picture_rubberbox(TOPLEVEL *w_current, int x, int y);
void o_picture_draw(TOPLEVEL *w_current, OBJECT *o_current);
void o_picture_draw_grips(TOPLEVEL *w_current, OBJECT *o_current);
void o_picture_erase_grips(TOPLEVEL *w_current, OBJECT *o_current);
void o_picture_erase(TOPLEVEL *w_current, OBJECT *o_current);
void o_picture_draw_xor(TOPLEVEL *w_current, int dx, int dy, OBJECT *o_current);void picture_change_selection_cancel (GtkWidget *widget, TOPLEVEL *w_current);
void picture_change_selection_ok (GtkWidget *widget, TOPLEVEL *w_current);
void picture_change_filename_dialog (TOPLEVEL *w_current);

/* o_pin.c */
void o_pin_draw(TOPLEVEL *w_current, OBJECT *o_current);
void o_pin_erase(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);
void o_pin_eraserubber(TOPLEVEL *w_current);
/* o_select.c */
void o_select_run_hooks(TOPLEVEL *w_current, OBJECT *o_current, int flag);
void o_select_object(TOPLEVEL *w_current, OBJECT *o_current, int type, int count);
void o_select_box_start(TOPLEVEL *w_current, int x, int y);
void o_select_box_end(TOPLEVEL *w_current, int x, int y);
void o_select_box_rubberband(TOPLEVEL *w_current, int x, int y);
void o_select_box_search(TOPLEVEL *w_current);
OBJECT *o_select_return_first_object(TOPLEVEL *w_current);
int o_select_selected(TOPLEVEL *w_current);
void o_select_unselect_all(TOPLEVEL *w_current);
/* o_slot.c */
void o_slot_start(TOPLEVEL *w_current, OBJECT *list);
void o_slot_end(TOPLEVEL *w_current, char *string, int len);
/* o_text.c */
void o_text_draw_lowlevel(TOPLEVEL *w_current, OBJECT *o_current);
void o_text_draw_rectangle(TOPLEVEL *w_current, OBJECT *o_current);
void o_text_draw(TOPLEVEL *w_current, OBJECT *o_current);
void o_text_erase(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, int text_alignment);
void o_text_change(TOPLEVEL *w_current, OBJECT *object, char *string, int visibility, int show);
void o_text_place_rotate(TOPLEVEL *w_current);
/* o_undo.c */
void o_undo_init(void);
void o_undo_savestate(TOPLEVEL *w_current, int flag);
char *o_undo_find_prev_filename(UNDO *start);
OBJECT *o_undo_find_prev_object_head(UNDO *start);
void o_undo_callback(TOPLEVEL *w_current, int type);
void o_undo_cleanup(void);
void o_undo_remove_last_undo(TOPLEVEL *w_current);
/* parsecmd.c */
void usage(char *cmd);
int parse_commandline(int argc, char *argv[]);
/* x_attribedit.c */
gint option_menu_get_history(GtkOptionMenu *option_menu);
int attrib_edit_dialog_keypress(GtkWidget *widget, GdkEventKey *event, TOPLEVEL *w_current);
void attrib_edit_dialog_ok(GtkWidget *w, TOPLEVEL *w_current);
void attrib_edit_dialog_cancel(GtkWidget *w, TOPLEVEL *w_current);
void attrib_edit_dialog_delete(GtkWidget *w, TOPLEVEL *w_current);
void attrib_edit_dialog(TOPLEVEL *w_current, OBJECT *list, int flag);
/* 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);
void x_basic_warp_cursor(GtkWidget *widget, gint x, gint y, gboolean relative);
/* x_color.c */
void x_color_allocate_all(void);
GdkColor *x_get_color(int color);
GdkColor *x_get_darkcolor(int color);
gchar *x_color_get_name(int index);
/* x_dialog.c */
int text_view_calculate_real_tab_width(GtkTextView *textview, int tab_size);
void select_all_text_in_textview(GtkTextView *textview);
void destroy_window(GtkWidget *widget, GtkWidget **window);
int text_input_dialog_keypress(GtkWidget *widget, GdkEventKey *event, TOPLEVEL *w_current);
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);
gint change_alignment(GtkWidget *w, TOPLEVEL *w_current);
int text_edit_dialog_keypress(GtkWidget *widget, GdkEventKey *event, 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, int text_alignment);
void line_type_dialog(TOPLEVEL *w_current, GList *objects);
void fill_type_dialog(TOPLEVEL *w_current, GList *objects);
int arc_angles_dialog_keypress(GtkWidget *widget, GdkEventKey *event, 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);
int translate_dialog_keypress(GtkWidget *widget, GdkEventKey *event, 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);
int text_size_dialog_keypress(GtkWidget *widget, GdkEventKey *event, 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);
int snap_size_dialog_keypress(GtkWidget *widget, GdkEventKey *event, 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);
int slot_edit_dialog_keypress(GtkWidget *widget, GdkEventKey *event, 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);
int about_dialog_keypress(GtkWidget *widget, GdkEventKey *event, TOPLEVEL *w_current);
void about_dialog_close(GtkWidget *w, TOPLEVEL *w_current);
void about_dialog(TOPLEVEL *w_current);
int coord_dialog_keypress(GtkWidget *widget, GdkEventKey *event, 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);
int color_edit_dialog_keypress(GtkWidget *widget, GdkEventKey *event, TOPLEVEL *w_current);
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);
int x_dialog_hotkeys_keypress(GtkWidget *widget, GdkEventKey *event, 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);
void x_dialog_raise_all(TOPLEVEL *w_current);

void generic_msg_dialog(const char *);
int generic_confirm_dialog(const char *);
char * generic_filesel_dialog(const char *, const char *, gint);

void generic_text_input_ok(GtkWidget *w, TOPLEVEL *w_current);
void generic_text_input_dialog(TOPLEVEL *w_current);
int find_text_keypress(GtkWidget *widget, GdkEventKey *event, TOPLEVEL *w_current);
void find_text_ok(GtkWidget *w, TOPLEVEL *w_current);
void find_text_done(GtkWidget *w, TOPLEVEL *w_current);
void find_text_dialog(TOPLEVEL *w_current);
int hide_text_keypress(GtkWidget *widget, GdkEventKey *event, TOPLEVEL *w_current);
void hide_text_ok(GtkWidget *w, TOPLEVEL *w_current);
void hide_text_done(GtkWidget *w, TOPLEVEL *w_current);
void hide_text_dialog(TOPLEVEL *w_current);
int show_text_keypress(GtkWidget *widget, GdkEventKey *event, TOPLEVEL *w_current);
void show_text_ok(GtkWidget *w, TOPLEVEL *w_current);
void show_text_done(GtkWidget *w, TOPLEVEL *w_current);
void show_text_dialog(TOPLEVEL *w_current);
int autonumber_text_keypress(GtkWidget *widget, GdkEventKey *event, TOPLEVEL *w_current);
void autonumber_text_ok(GtkWidget *w, TOPLEVEL *w_current);
void autonumber_text_done(GtkWidget *w, TOPLEVEL *w_current);
void autonumber_text_dialog(TOPLEVEL *w_current);
void major_changed_dialog(TOPLEVEL* w_current);
void x_dialog_close_changed_page (TOPLEVEL *toplevel, PAGE *page);
gboolean x_dialog_close_window (TOPLEVEL *toplevel);
/* 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);
gboolean x_event_configure (GtkWidget *widget, GdkEventConfigure *event, gpointer user_data);
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);
gboolean x_event_key_press(GtkWidget *widget, GdkEventKey *event, TOPLEVEL *w_current);
gint x_event_scroll(GtkWidget *widget, GdkEventScroll *event, TOPLEVEL *w_current);
/* x_compselect.c */
void x_compselect_open (TOPLEVEL *toplevel);
void x_compselect_close (TOPLEVEL *toplevel);
/* x_fileselect.c */
void x_fileselect_open(TOPLEVEL *toplevel);
void x_fileselect_save(TOPLEVEL *toplevel);
int x_fileselect_load_backup(TOPLEVEL *toplevel, GString *message);
/* x_grid.c */
void x_grid_draw(TOPLEVEL *w_current);
void x_draw_tiles(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 image_3200(GtkWidget *w, TOPLEVEL *w_current);
void x_image_lowlevel(TOPLEVEL *w_current, const char* filename);
gint x_image_write(GtkWidget *w, TOPLEVEL *w_current);
gint x_image_cancel(GtkWidget *w, TOPLEVEL *w_current);
int x_image_keypress(GtkWidget *widget, GdkEventKey *event, TOPLEVEL *w_current);
void x_image_setup(TOPLEVEL *w_current, char *filename);
GdkPixbuf *x_image_get_pixbuf (TOPLEVEL *w_current);
/* x_log.c */
void x_log_open ();
void x_log_close ();
void x_log_message (const gchar *message);
/* x_menus.c */
void get_main_menu(TOPLEVEL *w_current, GtkWidget **menubar);
GtkWidget *get_main_popup(TOPLEVEL *w_current);
gint do_popup(TOPLEVEL *w_current, GdkEventButton *event);
void x_menus_sensitivity(TOPLEVEL *w_current, const char *buf, int flag);
void x_menus_popup_sensitivity(TOPLEVEL *w_current, const char *buf, int flag);
/* x_multiattrib.c */
void x_multiattrib_open (TOPLEVEL *toplevel, OBJECT *object);
/* x_multimulti.c */
/* x_pagesel.c */
void x_pagesel_open (TOPLEVEL *toplevel);
void x_pagesel_close (TOPLEVEL *toplevel);
void x_pagesel_update (TOPLEVEL *toplevel);
GtkWidget *e_gtk_button_new_with_icon(const char *text, const char *stock);
/* x_preview.c */
/* x_print.c */
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 */
void x_window_setup (TOPLEVEL *toplevel);
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);
void x_window_close(TOPLEVEL *w_current);
void x_window_close_all(TOPLEVEL *w_current);
TOPLEVEL *x_window_get_ptr(int wid);
TOPLEVEL *x_window_search_page_clist(GtkWidget *findme);
PAGE *x_window_open_untitled_page (TOPLEVEL *toplevel);
PAGE *x_window_open_page (TOPLEVEL *toplevel, const gchar *filename);
void x_window_set_current_page (TOPLEVEL *toplevel, PAGE *page);
gint x_window_save_page (TOPLEVEL *toplevel, PAGE *page, const gchar *filename);
void x_window_close_page (TOPLEVEL *toplevel, PAGE *page);