1 /* 2 Functions used inside the liflines module 3 The high-level but not curses-specific portion of the program 4 screen.h is not included before this header, so UIWIN etc cannot 5 be used here (see screeni.h for declarations requiring screen.h). 6 */ 7 8 #ifndef llinesi_h_included 9 #define llinesi_h_included 10 11 #ifndef _GEDCOM_H 12 #include "gedcom.h" 13 #endif 14 15 #ifndef _INDISEQ_H 16 #include "indiseq.h" 17 #endif 18 19 typedef struct tag_llrect { 20 INT top; 21 INT bottom; 22 INT left; 23 INT right; 24 } *LLRECT; 25 26 struct tag_import_feedback; 27 #ifndef IMPORT_FEEDBACK_type_defined 28 typedef struct tag_import_feedback *IMPORT_FEEDBACK; 29 #define IMPORT_FEEDBACK_type_defined 30 #endif 31 32 struct tag_export_feedback; 33 34 /* add.c */ 35 RECORD add_family_by_edit(RECORD sprec1, RECORD sprec2, RECORD chrec, RFMT rfmt); 36 RECORD add_indi_by_edit(RFMT rfmt); 37 BOOLEAN add_indi_no_cache(NODE); 38 STRING get_unresolved_ref_error_string(INT count); 39 NODE prompt_add_child(NODE child, NODE fam, RFMT rfmt); 40 BOOLEAN prompt_add_spouse(RECORD spouse, RECORD fam, BOOLEAN conf); 41 42 /* advedit.c */ 43 void advanced_person_edit(NODE); 44 void advanced_family_edit(NODE); 45 46 /* ask.c */ 47 RECORD ask_for_any(STRING ttl, ASK1Q ask1); 48 INDISEQ ask_for_indiseq(CNSTRING ttl, char ctype, INT *prc); 49 50 /* browse.c */ 51 RECORD choose_any_event(void); 52 RECORD choose_any_other(void); 53 RECORD choose_any_source(void); 54 INT get_chist_len(void); 55 INDISEQ get_chistory_list(void); 56 INT get_vhist_len(void); 57 INDISEQ get_vhistory_list(void); 58 BOOLEAN handle_fam_mode_cmds(INT c, INT * mode); 59 BOOLEAN handle_indi_mode_cmds(INT c, INT * mode); 60 BOOLEAN handle_menu_cmds(INT c, BOOLEAN * reuse); 61 BOOLEAN handle_scroll_cmds(INT c, BOOLEAN * reuse); 62 void history_record_change(RECORD); 63 void init_browse_module(void); 64 void main_browse(RECORD, INT code); 65 NODE my_prompt_add_child(NODE child, NODE fam); 66 void term_browse_module(void); 67 68 /* delete.c */ 69 void choose_and_remove_indi(NODE indi, CONFIRMQ confirmq); 70 void choose_and_delete_family(void); 71 BOOLEAN choose_and_remove_child(RECORD irec, RECORD frec, BOOLEAN nolast); 72 BOOLEAN choose_and_remove_spouse(RECORD irec, RECORD frec, BOOLEAN nolast); 73 BOOLEAN choose_and_remove_any_record(RECORD rec, CONFIRMQ confirmq); 74 75 /* edit.c */ 76 BOOLEAN edit_family(RECORD frec1, RFMT rfmt); 77 BOOLEAN edit_indi(RECORD irec1, RFMT rfmt); 78 79 /* export.c */ 80 BOOLEAN archive_in_file (struct tag_export_feedback * efeed, FILE *fp); 81 82 /* import.c */ 83 BOOLEAN import_from_gedcom_file(IMPORT_FEEDBACK ifeed, FILE *fp); 84 85 /* lbrowse.c */ 86 INT browse_list(RECORD *prec1, RECORD *prec2, INDISEQ *pseq); 87 88 /* lines_usage.c */ 89 void print_lines_usage(CNSTRING exename); 90 91 92 /* merge.c */ 93 RECORD merge_two_indis(NODE, NODE, BOOLEAN); 94 RECORD merge_two_fams(NODE, NODE); 95 96 /* miscutls.c */ 97 void key_util(void); 98 void show_database_stats(void); 99 void who_is_he_she(void); 100 101 /* newrecs.c */ 102 RECORD edit_add_event(void); 103 RECORD edit_add_other(void); 104 RECORD edit_add_source(void); 105 BOOLEAN edit_any_record(RECORD rec, RFMT rfmt); 106 BOOLEAN edit_event(RECORD rec, RFMT rfmt); 107 BOOLEAN edit_other(RECORD rec, RFMT rfmt); 108 BOOLEAN edit_source(RECORD rec, RFMT rfmt); 109 110 /* pedigree.c */ 111 /* gedcom view mode */ 112 enum { GDVW_NORMAL, GDVW_EXPANDED, GDVW_TEXT }; 113 /* data for output canvas */ 114 /* NB: pedigree will adjust scroll if out of limits */ 115 struct tag_canvasdata; 116 /* callback to output a line */ 117 typedef void (*PEDLINE)(struct tag_canvasdata * canvas, INT x, INT y 118 , STRING string, INT overflow); 119 /* collection of data needed by pedigree */ 120 typedef struct tag_canvasdata { LLRECT rect; INT scroll; void * param; 121 PEDLINE line; } *CANVASDATA; 122 /* functions */ 123 void pedigree_draw_ancestors(RECORD rec, CANVASDATA canvasdata, BOOLEAN reuse); 124 void pedigree_draw_descendants(RECORD rec, CANVASDATA canvasdata, BOOLEAN reuse); 125 void pedigree_draw_gedcom(RECORD rec, INT gdvw, CANVASDATA canvasdata, BOOLEAN reuse); 126 void pedigree_increase_generations(INT delta); 127 void pedigree_toggle_mode(void); 128 129 /* scan.c */ 130 INDISEQ full_name_scan(STRING sts); 131 INDISEQ name_fragment_scan(STRING sts); 132 INDISEQ refn_scan(STRING sts); 133 INDISEQ scan_souce_by_author(STRING sts); 134 INDISEQ scan_souce_by_title(STRING sts); 135 136 /* screen.c */ 137 void clear_status_display(void); 138 139 /* searchui.c */ 140 INDISEQ invoke_search_menu(void); 141 142 /* swap.c */ 143 BOOLEAN swap_children(RECORD prnt, RECORD frec); 144 BOOLEAN reorder_child(RECORD prnt, RECORD frec, RFMT rfmt); 145 BOOLEAN swap_families(RECORD); 146 147 /* tandem.c */ 148 INT browse_tandem(RECORD *prec1, RECORD *prec2, INDISEQ *pseq); 149 INT browse_2fam(RECORD *prec1, RECORD *prec2, INDISEQ *pseq); 150 151 /* valgdcom.c */ 152 void addmissingkeys (INT); 153 int check_stdkeys (void); 154 BOOLEAN scan_header(FILE * fp, TABLE metadatatab, ZSTR * zerr); 155 BOOLEAN validate_gedcom(IMPORT_FEEDBACK ifeed, FILE*); 156 void validate_end_import(void); 157 INT validate_get_warning_count(void); 158 INT xref_to_index (STRING); 159 160 161 #endif /* llinesi_h_included */ 162